diff --git a/.agents/skills/nx-generate/SKILL.md b/.agents/skills/nx-generate/SKILL.md index af7ba80a445..f16d8b99597 100644 --- a/.agents/skills/nx-generate/SKILL.md +++ b/.agents/skills/nx-generate/SKILL.md @@ -1,6 +1,6 @@ --- name: nx-generate -description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a ... app, create a ... lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. +description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a new app, create a new lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. --- # Run Nx Generator diff --git a/.agents/skills/nx-workspace/SKILL.md b/.agents/skills/nx-workspace/SKILL.md index 2b01d45353e..4b5110ad05b 100644 --- a/.agents/skills/nx-workspace/SKILL.md +++ b/.agents/skills/nx-workspace/SKILL.md @@ -245,7 +245,8 @@ Example output: }, "dependencies": { "my-app": [ - { "source": "my-app", "target": "shared-ui", "type": "static" }], + { "source": "my-app", "target": "shared-ui", "type": "static" } + ], "shared-ui": [] } } diff --git a/.cursor/skills/link-workspace-packages/SKILL.md b/.cursor/skills/link-workspace-packages/SKILL.md index de1313497a3..eaa3bc0fd07 100644 --- a/.cursor/skills/link-workspace-packages/SKILL.md +++ b/.cursor/skills/link-workspace-packages/SKILL.md @@ -58,7 +58,7 @@ yarn workspace @org/app add @org/ui Result in `package.json`: ```json -{ "dependencies": { "@org/ui": "workspace:^" } } +{ "dependencies": { "@org/ui": "workspace:*" } } ``` --- diff --git a/.github/skills/nx-generate/SKILL.md b/.github/skills/nx-generate/SKILL.md index af7ba80a445..f16d8b99597 100644 --- a/.github/skills/nx-generate/SKILL.md +++ b/.github/skills/nx-generate/SKILL.md @@ -1,6 +1,6 @@ --- name: nx-generate -description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a ... app, create a ... lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. +description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a new app, create a new lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. --- # Run Nx Generator diff --git a/.github/skills/nx-workspace/SKILL.md b/.github/skills/nx-workspace/SKILL.md index 2b01d45353e..4b5110ad05b 100644 --- a/.github/skills/nx-workspace/SKILL.md +++ b/.github/skills/nx-workspace/SKILL.md @@ -245,7 +245,8 @@ Example output: }, "dependencies": { "my-app": [ - { "source": "my-app", "target": "shared-ui", "type": "static" }], + { "source": "my-app", "target": "shared-ui", "type": "static" } + ], "shared-ui": [] } } diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 91f22431065..d8c5c9caeba 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -58,7 +58,7 @@ jobs: nx_cloud_started=false while [ "$retries" -lt "$max_retries" ]; do - output=$(npx --yes nx-cloud start-ci-run --distribute-on="5 linux-medium-js" 2>&1) + output=$(npx --yes nx-cloud start-ci-run --distribute-on="10 linux-medium-js" 2>&1) exit_code=$? if echo "$output" | grep -qiE "401|sufficient access|unauthorized"; then diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index a4a27d824c1..811522e79c6 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -48,7 +48,7 @@ jobs: run: pnpm install - name: Initialize Nx Cloud - run: pnpm exec nx-cloud start-ci-run --distribute-on="5 linux-medium-js" + run: pnpm exec nx-cloud start-ci-run --distribute-on="10 linux-medium-js" - name: Build All Packages run: pnpm run build:ci diff --git a/.opencode/skills/nx-generate/SKILL.md b/.opencode/skills/nx-generate/SKILL.md index af7ba80a445..f16d8b99597 100644 --- a/.opencode/skills/nx-generate/SKILL.md +++ b/.opencode/skills/nx-generate/SKILL.md @@ -1,6 +1,6 @@ --- name: nx-generate -description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a ... app, create a ... lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. +description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a new app, create a new lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. --- # Run Nx Generator diff --git a/.opencode/skills/nx-workspace/SKILL.md b/.opencode/skills/nx-workspace/SKILL.md index 2b01d45353e..4b5110ad05b 100644 --- a/.opencode/skills/nx-workspace/SKILL.md +++ b/.opencode/skills/nx-workspace/SKILL.md @@ -245,7 +245,8 @@ Example output: }, "dependencies": { "my-app": [ - { "source": "my-app", "target": "shared-ui", "type": "static" }], + { "source": "my-app", "target": "shared-ui", "type": "static" } + ], "shared-ui": [] } } diff --git a/.planning/STATE.md b/.planning/STATE.md index 577f7d0a9a6..4f0b241823b 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,3 +5,61 @@ See: .planning/PROJECT.md (initialized) **Core value:** Provide a small, high-performance, and extensible particle engine that developers can integrate into web projects with minimal configuration. **Current focus:** Phase 1 — Developer Experience & Docs + +## Session Status — 2026-06-14 + +### Objective +Plan and implement wrapper reactivity (options/url/theme prop changes) across Vue 3, Vue 2, Angular, Solid, Qwik, and Astro wrappers, plus fix Vue 3 docs describing nonexistent `:init`/`@particles-init` features. + +### Outcome +**S1 (Vue 3 wrapper) completed**: wrapper reactivity implemented (`id`/`options`/`url` → destroy+reload, `theme` → safe `loadTheme`), demo aligned with reactive config switching, README fully documented. Plan remaining steps on `.planning/handovers/WRAPPER_REACTIVITY_PLAN.md`. + +**S2 (Vue 2 wrapper) completed**: wrapper reactivity + `tsParticles.init()` fix in event-bus + `theme` prop + fixed `particlesLoaded` type + removed stale `IParticlesProps` export. + +**S3 (Angular wrapper) completed**: added `OnChanges` for `id`/`options`/`url`/`theme` reactivity, `theme` `@Input()`, fixed `particlesLoaded` type to `Container | undefined`, added `tsParticles.init()` in service, demo has config switch button, README fully documented with API table and theme caveat. + +**S4 (Solid wrapper) completed**: wrapper reactivity with `createEffect`/`on` tracking `id`/`options`/`url`; `theme` prop added; `particlesLoaded` callback signature fixed to `(container?: Container) => void`; demo aligned removing conditional mount. + +**S5 (Qwik wrapper) completed**: wrapper reactivity implemented with `useVisibleTask$` + `track()` for prop changes; `theme` prop added; demo aligned (conditional removed, `initParticlesEngine` moved to module level); README fully documented with theme caveat. + +**S6 (Astro wrapper) completed**: wrapper rewritten from constructor-only to `connectedCallback` + `attributeChangedCallback` + `disconnectedCallback` pattern with `observedAttributes` (`data-id`, `data-options`, `data-url`, `data-theme`). Race-condition guard via `#loadId` counter. `theme` prop added with safe `loadTheme` call. Demo has interactive "Switch Config" button demonstrating attribute-driven reactivity. README updated with `theme` prop, reactivity contract, and optional theme plugin caveat. Build passes. + +**S11 (React docs) completed**: README props table updated with `particlesLoaded`, demo/template alignment verified. + +**S12 (Preact wrapper) completed**: wrapper reactivity (`theme` prop, `loadTheme` in `loadParticles` + selective `componentDidUpdate` without refresh for theme-only changes), `container` ref type fixed to `Container | undefined`, `particlesLoaded` callback fixed with optional container param, demo keeps original constructor init + conditional render (module-level init + unconditional render causes Preact page freeze — Preact-specific limitation), README updated with `theme` prop and plugin caveat. Build passes. + +### Key Findings (S22) +- `Container` type in `@tsparticles/engine` does not declare `loadTheme()` — it is injected at runtime by optional `@tsparticles/plugin-themes`. Any + theme-prop implementation must use a type cast (`as unknown as { loadTheme?: ... }`) or bracket access. +- `tsParticles.load()` returns `Container | undefined`. All `particlesLoaded` callbacks and + container-access code must guard against undefined. +- Six wrappers need modification: Vue 3 (Composition API), Vue 2 (class component + decorators), Angular (OnChanges), Solid (createEffect), Qwik (useVisibleTask$), Astro (custom element). +- Vue 3 guide (`websites/website/docs/guides/vue3.md`) references `:init`, `@particles-init`, and + `particlesInit` that do not exist on the wrapper component — these must be removed from both the English source and all 9 translations. +- `export type IParticlesProps = ISourceOptions` in `vue-particles.vue` (Vue 2) causes `TS2528: multiple default exports` in the SFC compiler context — must be removed or inlined. +- **S22 findings**: All 16 wrapper guide pages lack `theme` prop documentation (even though all wrappers now support it). Reactivity contracts (id/options/url → destroy+reload) are missing from 15/16 guides. Cleanup/teardown docs missing from 15/16 guides. Nuxt guide still documents stale `@particles-init`/`@particles-destroy` events removed in S18. Solid and Svelte guides describe reactivity incorrectly (as "targeted updates" or "without recreating the instance" vs actual destroy+reload). + +### Next Steps +1. ✅ **S1 Vue 3** — done +2. ✅ **S2 Vue 2** — done +3. ✅ **S3 Angular** — done +4. ✅ **S4 Solid** — done +5. ✅ **S5 Qwik** — done +6. ✅ **S6 Astro** — done: wrapper rewritten from constructor-only to `connectedCallback` + `attributeChangedCallback` + `disconnectedCallback` + `observedAttributes`, `theme` prop added, demo has reactive config switch button, README has reactivity docs. +7. ✅ **S7 Inferno** — done (callback invocation + theme support) +8. ✅ **S8 Lit** — done (theme property + particlesLoaded event + selective reactivity in update()) +9. ✅ **S9 Riot** — done (onUpdated/onUnmounted lifecycle hooks, theme support, loadId race guard, demo with config switch, README aligned) +10. ✅ **S10 WebComponents** — done (`data-id`/`data-theme` added to `observedAttributes`, `attributeChangedCallback` handles both, `id` setter syncs to `data-id`, deprecated `particlesInit` event removed, README documented with observed attributes table and theme caveat, build passes) +11. ✅ **S11 React docs** — README props table updated with `particlesLoaded`, demo/template check passed +12. ✅ **S12 Preact** — wrapper (theme prop, loadTheme, selective componentDidUpdate senza refresh per solo-theme), demo (constructor init + conditional render — module-level init freeze Preact, tenuto pattern originale), README aligned +13. ✅ **S13 Svelte** — wrapper reactivity (`theme` prop, `afterUpdate` → reactive `$:` statements with `loadKey`, `loadTheme` on initial load + theme change), demo alignment (`particlesInit` → `initParticlesEngine`, Svelte 5 `mount()` API, SSR-safe dynamic imports), README with props table, reactive behavior docs, theme plugin docs. Svelte demo + SvelteKit demo entrambi verificati funzionanti dall'utente. +14. ✅ **S14 Stencil** — done (`theme` prop + `particlesLoaded` event + `@Watch("theme")` + demo con theme toggle + `@tsparticles/plugin-themes` installato, build passa). +15. ✅ **S15 Ember** — done (`theme` prop, `#container` instance tracking per memory leak fix, `registerDestructor` chiamato una sola volta, `particlesLoaded` type corretto a `(container?: Container)`, template `particles.hbs` aggiornato con `theme=@theme`, demo con config switch + theme toggle buttons, README con tabella args e caveat plugin opzionale, build passa). +16. ✅ **S16 jQuery** — done (`setTheme` method added to `ParticlesResult` type, `WeakMap` for per-element container tracking, `load`/`ajax` track containers, `setTheme` method with safe `loadTheme?.()` optional plugin invocation, README updated with `setTheme` docs and theme plugin caveat, build passes). +17. ✅ **S17 Angular-fireworks** — done: `OnChanges` implemented for `id`/`options` reactivity, `#destroyed` guard prevents post-destroy execution, `#startFireworks` stops previous instance before creating new one, `ngOnDestroy` calls `.destroy()` (not `.stop()`), demo N/A (no standalone demo dir), templates N/A (no templates dir), README updated with `OnChanges` behavior docs, build passes. +18. ✅ **S18 EN docs (vue3.md)** — done: removed stale `:init`, `@particles-init`, `particlesInit` from EN guide (all examples + API table); removed Component-Level Init section; fixed `useParticles` → `useParticlesProvider`; added `theme` prop to API table with optional plugin caveat; added `theme` prop docs in Theme Switching section. File reduced from 622→575 lines. +19. ✅ **S19 9 translations (vue3.md)** — done: mirrored all S18 changes across zh, ja, hi, ru, pt, fr, de, es, it. Each file reduced from 622→~576 lines. Zero stale patterns remaining across all 10 files. +20. ✅ **S20 Validation** — done: all 13 affected wrappers build successfully, stale-pattern grep on Vue3 guides (EN + 9 translations) returns zero hits for `:init`/`@particles-init`/`particlesInit`; README consistency scan completed. All contract points documented in all 16 wrapper READMEs. +21. ✅ **S21 Final handoff** — done: README documentation gaps fixed for preact (reload contract + cleanup), stencil (safe no-op + reactivity + cleanup), ember (cleanup), jquery (reload + loaded callback + cleanup), angular-fireworks (lifecycle). All builds pass. +22. ✅ **S22 EN wrapper guide audit** — completed: all 16 EN wrapper guide pages audited against wrapper READMEs. Gap matrix produced: all 16 guides have missing `theme` prop docs, missing reactivity contracts, missing cleanup docs, or stale patterns (see S22 gap matrix in conversation). Vue3.md already clean from S18. Nuxt guide has stale `@particles-init`/`@particles-destroy` events. Solid and Svelte guides have misleading reactivity descriptions. +23. ✅ **S23 Translation alignment** — completed: all 16 EN wrapper guides fixed with `theme` prop docs, reactivity contract, cleanup docs, fixed `Container | undefined` callback types, stale Nuxt events removed, misleading Solid/Svelte descriptions corrected. Changes mirrored to all 9 translation directories (zh, ja, hi, ru, pt, fr, de, es, it) — 144 translation files updated. diff --git a/.planning/handovers/BACKGROUND_CANVAS_PLAN.md b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md new file mode 100644 index 00000000000..87f77823744 --- /dev/null +++ b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md @@ -0,0 +1,523 @@ +# Background Canvas Plan (v5.0 Agent-Ready) + +## Context + +Current `background` support is CSS-style only and applied to the particles DOM canvas style (`color`, `image`, `position`, `repeat`, `size`, `opacity`). + +That path is stable and must remain unchanged. + +This proposal adds an opt-in programmable background hook for advanced JS/TS users while preserving strict backward compatibility. + +## Product Goal + +Add two optional fields under `background`: + +- `background.element`: optional target canvas (`string` selector or `HTMLCanvasElement`) +- `background.draw`: optional callback called each frame with drawing context + delta + +The goal is custom background rendering (procedural, animated, layered) without rewriting the existing rendering pipeline. + +## Hard Product Constraints (non-negotiable) + +1. Use `background.element` only. Do not introduce `background.canvas`. +2. Both new options are optional and `undefined` by default. +3. Explicit precedence: + - highest: `background.draw` + - fallback target: `background.element` +4. Existing CSS `background.color` (and style background options) must continue working exactly as today. +5. If `draw` exists, do not add any automatic compose/copy step between external and internal canvases. + +## Scope and Non-Goals + +### In scope + +- Options/types additions for `element` and `draw` +- Runtime draw callback execution in the frame loop +- Target context resolution with fallback +- Warnings and safety guards +- Tests + docs/examples + +### Out of scope (for this version) + +- New lifecycle hooks (`init`, `resize`, `destroy`) for callback backgrounds +- New clear modes API +- Automatic sync/composition between multiple canvases +- Re-architecting plugin draw pipeline + +## Bundle Size and Architecture Decision (engine vs plugin) + +Because `background` lives in `@tsparticles/engine` today, we need an explicit decision gate before implementation finalization. + +### Current baseline (from existing dist artifacts) + +- `@tsparticles/engine` minified UMD: ~68,025 bytes (`engine/dist/tsparticles.engine.min.js`) +- Existing reference plugin (`@tsparticles/plugin-background-mask`) minified UMD: ~5,730 bytes (`plugins/backgroundMask/dist/tsparticles.plugin.background-mask.min.js`) + +These values are only reference points; they are not direct apples-to-apples for the new feature. + +### Why this matters + +- Implementing in engine keeps UX simple (no extra package) but increases base payload for everyone. +- Implementing as plugin keeps engine lean but adds integration and migration complexity. + +### Decision thresholds (pragmatic) + +After implementing a prototype (or spike) and measuring delta: + +- `LOW impact`: `< 1.0 KB` minified **and** `< 1.5%` engine minified growth + - Decision: keep in engine for now. +- `MEDIUM impact`: `1.0-2.5 KB` minified **or** `1.5-3.5%` growth + - Decision: keep in engine now, but open follow-up RFC for plugin extraction. +- `HIGH impact`: `> 2.5 KB` minified **or** `> 3.5%` growth + - Decision: strongly prefer extraction into `@tsparticles/plugin-background`. + +If thresholds conflict, prioritize percentage on `engine` minified artifact. + +### Measurement protocol (mandatory) + +1. Build baseline from current main/branch state. +2. Record size of: + - `engine/dist/tsparticles.engine.min.js` + - `engine/dist/tsparticles.engine.js` +3. Apply feature changes (spike or full). +4. Rebuild and record same files. +5. Compute byte and percentage deltas. +6. Add result table in PR/notes and take architecture decision using thresholds above. + +### Decision output format (for agent) + +Agent must produce a short block like: + +- `baseline_min`: X bytes +- `candidate_min`: Y bytes +- `delta_min`: +Z bytes (+N%) +- `decision`: engine-now | engine-now-with-followup | extract-plugin +- `rationale`: 2-4 bullets + +## Plugin extraction option (`@tsparticles/plugin-background`) - pros/cons + +### Pros + +- Smaller core payload for users not needing programmable backgrounds. +- Feature can evolve independently (hooks/lifecycle/diagnostics) with lower engine risk. +- Cleaner separation between core particle runtime and optional background rendering strategies. + +### Cons + +- Higher integration complexity (new plugin package, registration path, docs updates across bundles/wrappers). +- Potentially awkward split because style background options currently belong to engine core. +- More migration/documentation burden to avoid user confusion (`background` base vs plugin-enhanced behavior). +- Plugin ordering/interaction edge cases may appear and require extra tests. + +### Recommended strategy now + +- Keep base CSS background in engine regardless. +- Implement programmable callback path in engine first **only if** measured impact is LOW/MEDIUM. +- If impact is HIGH, pivot to plugin extraction where plugin owns `draw`/`element` behavior while engine retains style background fields. + +## Release Suitability (4.2.0 vs 4.3.0) + +This feature is additive and can be semver-minor **only if** risk remains controlled. + +### Semver classification for this feature + +- `minor-safe` when all are true: + - API is additive only (`background.element`, `background.draw` optional) + - existing behavior remains identical when options are not used + - no existing option semantics are changed + - no wrapper mandatory changes +- `not minor-safe` if any existing default/behavior changes for current users. + +### Branch-level release pressure (current repository state) + +From `v4.1.3..HEAD` (current `v4` branch snapshot): + +- commits: `98` +- changed files: `2019` +- diff stats: `+177,718 / -43,016` + +Interpretation: this is a large aggregate delta for a single minor train, independent of this specific feature. + +### Decision framework + +Use two independent gates: + +1. `Feature gate` (this background work): + - pass if additive + backward-compatible + tests green + bundle threshold decision recorded +2. `Release train gate` (overall 4.2.0 scope): + - pass if cumulative 4.2 changeset is still acceptable for a minor from maintainer risk tolerance + +Final release target: + +- `Ship in 4.2.0` only if **both** gates pass. +- `Move to 4.3.0` if feature gate passes but release-train gate fails (too much aggregate churn). + +### Go/No-Go checklist (explicit) + +Use this checklist before locking milestone. + +#### GO for `4.2.0` only if all are true + +- [ ] feature remains strictly additive (`background.element`/`background.draw` optional) +- [ ] zero regressions on legacy background behavior (automated + manual smoke) +- [ ] bundle impact decision completed and within accepted threshold for chosen path +- [ ] docs/examples updated with no ambiguity +- [ ] no blocker/high-severity open issues related to engine render loop from the 4.2 train +- [ ] release-train churn accepted by maintainer (explicit yes) + +#### NO-GO for `4.2.0` (defer to `4.3.0`) if any is true + +- [ ] implementation requires semantic tweaks that can surprise existing users +- [ ] unresolved instability in render loop / canvas layering paths +- [ ] bundle impact classified HIGH but plugin path not completed +- [ ] verification window is too short for confidence across wrappers/bundles +- [ ] aggregate 4.2 train is considered too broad/risky at freeze time + +### Practical recommendation for current situation + +Given current branch volume, default recommendation is: + +- keep implementation ready and mergeable, +- but be prepared to defer public release to `4.3.0` unless 4.2.0 scope is trimmed/frozen. + +Reason: even minor-safe features become risky when packed into a high-churn train. + +Additional evidence snapshot: + +- `engine/src` files changed since `v4.1.3`: `47` +- `engine/src/Core` changed: `9` +- `engine/src/Options` changed: `28` +- `wrappers` changed: `77` +- `plugins` changed: `96` +- `bundles` changed: `24` + +Recommendation right now: **provisionally target `4.3.0`**, and only pull into `4.2.0` if a hard freeze/triage confirms low residual risk. + +## Final API Proposal + +### `background.element` + +- Type: `string | HTMLCanvasElement` +- Optional: yes +- Default: `undefined` +- Semantics: + - `string`: CSS selector resolved in DOM-capable environments + - `HTMLCanvasElement`: direct reference + +### `background.draw` + +- Type: `(context: BackgroundDrawContext, delta: IDelta) => void` +- Optional: yes +- Default: `undefined` +- Semantics: callback executed each frame in the background phase + +### Supporting exported type + +Introduce and export a type alias for clarity and Offscreen support: + +- `type BackgroundDrawContext = OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D` + +Reason: internal engine rendering uses Offscreen contexts in many environments; callback typing must reflect runtime reality. + +### Serialization note + +- `element` can be expressed in JSON (selector string) +- `draw` is function-only and therefore JS/TS runtime config only + +## Behavior and Precedence + +1. No `draw`, no `element` + - unchanged behavior only (CSS background + standard particles rendering) + +2. `element` only + - no background callback execution + - no implicit rendering/compositing + - CSS background behavior unchanged + +3. `draw` only + - callback runs on internal render context + - CSS background behavior unchanged + +4. `draw` + `element` + - callback runs on resolved `element` context if valid + - otherwise callback falls back to internal render context + - no extra copy/composition between contexts + - CSS background behavior unchanged + +### Key interpretation + +`element` is only target selection. `draw` is rendering logic. There is no hidden strategy beyond that. + +## Engine Integration Design + +## 1) Options and type surface + +Target files: + +- `engine/src/Options/Interfaces/Background/IBackground.ts` +- `engine/src/Options/Classes/Background/Background.ts` +- `engine/src/export-types.ts` +- `engine/src/exports.ts` (only if a runtime type/class export is needed) + +Changes: + +- Add optional `element` and `draw` to `IBackground` +- Keep both undefined by default in class implementation +- Add exported callback context alias + callback type (or inline signature with alias) + +Rule: do not change existing background fields defaults or semantics. + +## 2) Runtime placement in frame loop (critical) + +Implement background callback in `RenderManager.drawParticles(delta)` with this order: + +1. `clear()` +2. Execute background callback phase (new) +3. Continue existing draw pipeline (`drawSettingsSetup`, plugin `draw`, particles, cleanup) + +This keeps background visuals behind particles/effects and avoids changing current plugin contract semantics. + +Important clarification: + +- CSS background style (`CanvasManager.initBackground`) is not a per-frame operation today and should remain so. +- Do not move CSS style writes into the hot loop. + +## 3) Context resolution and caching + +Resolve target context once and cache it; do not resolve selectors per frame. + +Resolution rules: + +1. If `element` is `HTMLCanvasElement`, try `getContext("2d")` +2. If `element` is `string` and DOM is available, resolve `document.querySelector` +3. If selected node is not a canvas, treat as invalid target +4. On any invalid/missing target, fallback to internal render context + +Cache invalidation events: + +- container init/start +- options reload/reset/refresh +- explicit background options change path (if applicable) + +No per-frame allocations from this feature. + +## 4) Safety and diagnostics + +### Callback exception handling + +- Wrap callback invocation in `try/catch` +- Keep animation loop alive +- Warn with deterministic message + +### Warning policy (must avoid log spam) + +- Warn once per container per warning key +- Suggested keys: + - `background-element-selector-not-found` + - `background-element-not-canvas` + - `background-element-context-unavailable` + - `background-draw-error` + +Implementation can use a small `Set` attached to container/render state. + +## 5) Environment constraints + +- In non-DOM environments, selector resolution is skipped safely. +- If an external canvas context cannot be obtained, fallback to internal context. +- No assumptions that external canvas size or DPR match internal canvas. +- External canvas sizing remains user responsibility (document this clearly). + +## Compatibility Model + +## Backward compatibility guarantees + +- Existing configs remain behavior-identical when new options are not used. +- Existing background style path remains unchanged. +- Feature is fully opt-in. + +## Wrapper compatibility + +- Engine type exports must include new types/options. +- No required runtime wrapper changes for baseline JS object configs. + +## JSON vs JS/TS expectations + +- JSON: `element` only +- JS/TS: `element` and `draw` +- Docs/examples must show both to avoid false expectations. + +## Test Plan + +## Unit tests + +1. Options loading + - new fields accepted + - defaults remain `undefined` + - legacy fields unchanged + +2. Resolution logic + - valid selector -> canvas context + - selector missing -> fallback + once warning + - non-canvas match -> fallback + once warning + - direct canvas without context -> fallback + once warning + +3. Precedence logic + - no `draw` -> callback never runs (even if `element` exists) + - `draw` only -> internal context used + - `draw` + valid `element` -> external context used + - `draw` + invalid `element` -> internal fallback + +4. Error resilience + - throwing callback does not break next frame + - warning is throttled (once-key behavior) + +5. Performance guard + - feature disabled path adds no measurable overhead in smoke benchmark + +## Integration/manual smoke + +1. Legacy style-only background visually unchanged +2. JS `draw` only renders animated background on internal canvas +3. JS `draw` + external `element` renders on external target +4. Invalid selector + `draw` safely falls back +5. Large particle count + lightweight callback remains stable + +## Acceptance Criteria (Definition of Done) + +1. API + - `background.element` and `background.draw` available and optional + - no `background.canvas` alias + +2. Behavior + - `draw` is the only trigger for custom background rendering + - `element` only selects callback target context + - no implicit compose/copy between canvases + - CSS style background path remains active and unchanged + +3. Stability + - invalid target gracefully falls back + - callback exceptions do not stop rendering + - warnings are deterministic and non-spammy + +4. Performance/compatibility + - unchanged behavior for legacy configs + - no meaningful overhead when callback is disabled + +5. Architecture decision + - bundle-size delta has been measured and documented + - decision (engine vs plugin path) follows defined thresholds + - final implementation matches recorded decision + +6. Release target decision + - feature-level minor-safety checklist completed + - release-train gate explicitly evaluated (`4.2.0` vs `4.3.0`) + - final target version documented with rationale + +## Execution Plan for Build Agent (phase-based) + +### Phase 0 - Baseline scan + +- Identify exact insertion points in `IBackground`, `Background`, `RenderManager` +- Confirm current draw order and options load flow +- Output: short notes with chosen hook points + +### Phase 1 - Bundle impact baseline and decision gate + +- Capture baseline engine artifact sizes +- Implement minimal spike (or use completed implementation) and capture candidate sizes +- Compute delta bytes/% and classify LOW/MEDIUM/HIGH +- Choose path: + - Path A: engine implementation (LOW/MEDIUM) + - Path B: plugin extraction (HIGH) +- Output: decision block with measurements and rationale + +### Phase 1b - Release-target gate (`4.2.0` vs `4.3.0`) + +- Evaluate feature-level semver safety checklist +- Evaluate branch/release-train risk (aggregate churn, open regressions, pending risky work) +- Propose target: + - `4.2.0` if both gates pass + - `4.3.0` if release-train gate fails +- Output: short release recommendation block with evidence + +### Phase 2 - Type contract + +- Add `element` + `draw` options types +- Add and export `BackgroundDrawContext` alias (and callback type if introduced) +- Output: compile passes for type surface + +Path note: + +- Path A (engine): change engine option surface directly. +- Path B (plugin): keep engine base types stable, add plugin options/types and plugin registration API. + +### Phase 3 - Runtime hook + +- Add background callback execution method in `RenderManager` +- Invoke it in `drawParticles` immediately after `clear()` +- Keep existing draw flow unchanged otherwise +- Output: callback runs in intended order + +Path note: + +- Path A: implement in engine render loop. +- Path B: implement via plugin container hooks (`canvasPaint`/`draw` strategy) without breaking existing plugin contracts. + +### Phase 4 - Target resolution/cache + +- Implement resolver + cached target context +- Implement fallback to internal context +- Hook cache refresh in init/refresh-reload paths +- Output: deterministic context selection without per-frame selector calls + +### Phase 5 - Error/warning handling + +- Add once-per-key warning mechanism +- Guard callback invocation +- Output: safe loop on callback errors, no log flood + +### Phase 6 - Tests + +- Add/update tests for load, precedence, fallback, warnings, resilience +- Output: tests green for new behavior and no regressions + +Path note: + +- Path B must include plugin integration tests and plugin-not-loaded behavior tests. + +### Phase 7 - Docs/examples + +- Update docs for API semantics, JSON limits, JS callback usage +- Add minimal examples for each mode +- Output: no ambiguity around `element` vs `draw` + +Path note: + +- Path B docs must clearly explain plugin installation/registration requirement. + +### Phase 8 - Validation gate + +- Run targeted engine tests and affected build/lint tasks +- Verify no behavior regressions in legacy background config +- Output: final checklist complete + +## Progress Checklist Template (for agent status updates) + +- [ ] Phase 0 complete: hook points identified +- [ ] Phase 1 complete: size delta measured and path chosen +- [ ] Phase 1b complete: release target (`4.2.0`/`4.3.0`) decided +- [ ] Phase 2 complete: API/types exported +- [ ] Phase 3 complete: frame hook integrated +- [ ] Phase 4 complete: context cache + fallback integrated +- [ ] Phase 5 complete: warning/error policy integrated +- [ ] Phase 6 complete: tests added and passing +- [ ] Phase 7 complete: docs/examples updated +- [ ] Phase 8 complete: validation commands passing + +## Notes for Build Agent + +- Keep the implementation additive and minimal. +- Do not alter existing CSS background semantics. +- Do not add hidden auto-composition behavior. +- Prefer explicit fallback logic over magic. +- If a choice is ambiguous, choose least-surprising behavior and document it in PR notes. diff --git a/.planning/handovers/FLUID_INTERACTION_PLAN.md b/.planning/handovers/FLUID_INTERACTION_PLAN.md new file mode 100644 index 00000000000..b849a98dd75 --- /dev/null +++ b/.planning/handovers/FLUID_INTERACTION_PLAN.md @@ -0,0 +1,1443 @@ +# Fluid Particle Interaction - Deep Technical Specification (Draft v2) + +## Document status + +- Scope: planning only (no implementation in this session) +- Target package: `interactions/particles/fluid` +- Engine policy: do not touch `engine` unless a missing extension point is proven +- Audience: implementation agent and maintainers +- Goal: convert a CodePen-style liquid behavior into a tsParticles-native interaction + +## Execution governance (critical) + +This plan is executed by an implementation agent under strict handoff control. + +Mandatory rule: + +- the implementation agent must NOT create commits; +- the implementation agent must NOT open PRs; +- the implementation agent must leave changes uncommitted so the maintainer can review and commit manually. + +Reason: + +- maintain full maintainer control over change review, commit boundaries, and final PR composition. + +## Versioning gate (blocking) + +Current baseline considered in this plan: + +- current line: `4.1.3` +- candidate target: `4.2.0` + +Semver assessment for this feature (default path): + +- expected classification: **minor** (`4.2.0`) because it introduces a new optional interaction/package without requiring breaking API changes; +- expected non-breaking behavior: existing configs continue to work unchanged when `particles.fluid` is not enabled. + +When this would become major instead: + +- any required engine API break; +- removal/rename/incompatible change of existing public contracts; +- mandatory behavior changes that alter existing scenes without opt-in. + +Blocking rule: + +- implementation can proceed only under the approved target version line; +- if during implementation evidence suggests this is not suitable for `4.2.0`, work must stop and the agent must request explicit maintainer confirmation before continuing on a new minor/major strategy; +- no "implicit go" is allowed. + +--- + +## Why this document exists + +The requested feature is not just another visual mode. It changes how particles move and how they influence each other every frame. That means we need: + +- simulation intent clearly defined; +- architectural boundaries (interaction vs plugin) explicit; +- constraints and fallback plans documented before coding; +- tuning ranges and test criteria ready to avoid endless trial-and-error. + +This spec turns the initial idea (fluid-like particles from the referenced CodePen) into a concrete and staged implementation plan that can be executed by another agent with minimal ambiguity. + +--- + +## Product intent + +Create a new `fluid` interaction where particles exhibit cohesive liquid-like behavior: + +- local clustering into blobs/streams; +- soft incompressibility (they should not collapse into one point); +- smooth collective motion under external forces; +- stable behavior with existing tsParticles interactions. + +Non-goals: + +- physically exact fluid dynamics; +- pressure projection on a continuous Eulerian grid; +- hard requirement for perfect determinism across all devices. + +--- + +## Source inspiration and extraction + +The provided CodePen sample is a particle-based visco-elastic fluid style simulation using: + +- a spatial hashing grid, +- three passes (`pass1`, `pass2`, `pass3`), +- double density relaxation, +- boundary clamping, +- velocity reconstruction from corrected positions. + +Important: we should **extract behavior**, not copy architecture blindly. + +### What to keep from the example + +- multi-pass frame approach; +- neighborhood-limited interactions (radius); +- pressure and near-pressure terms; +- symmetrical pair displacement; +- velocity rebuilt from position delta; +- optional pointer impulse. + +### What to adapt for tsParticles + +- use existing particle grid (`container.particles.grid`) instead of custom cell arrays; +- use existing interactor/plugin lifecycles; +- avoid per-frame re-allocation heavy buffers where possible; +- integrate with existing options model (`load` patterns, interfaces/classes); +- support compatibility with move/collisions/emitters/interactivity plugins. + +--- + +## CodePen to tsParticles mapping + +This section maps the conceptual phases from the source snippet to expected tsParticles behavior. + +| Source phase | Source intent | tsParticles counterpart | +|--------------|---------------|--------------------------| +| `pass1` | predict position from velocity + gravity + pointer force | pre-relaxation step in `FluidInteractor.interact(...)` or plugin-orchestrated frame step | +| `pass2` | density/near-density + displacement + bounds | main fluid relaxation loop using `queryCircle` neighbors | +| `pass3` | recalc velocity from corrected position | velocity correction pass; possibly integrated after displacement | + +### Source logic excerpt (trimmed and annotated) + +```js +// pass1: predict +particles_pprevx[n] = px; +particles_pprevy[n] = py; +particles_x[n] += particles_velx[n]; +particles_y[n] += particles_vely[n]; + +// pass2: density and pressure +var q = 1 - (vlen / rad); +pressure += q * q; +presnear += q * q * q; + +pressure = (pressure - 3) * 0.5; +presnear *= 0.5; + +// pair displacement +var p = pressure + presnear * particles_q[np]; +var dx = (particles_vxl[np] * p) * 0.5; +var dy = (particles_vyl[np] * p) * 0.5; +particles_x[np] += dx; +particles_y[np] += dy; +particles_x[n] -= dx; +particles_y[n] -= dy; + +// pass3: velocity reconstruction +particles_velx[n] = particles_x[n] - particles_pprevx[n]; +particles_vely[n] = particles_y[n] - particles_pprevy[n]; +``` + +Interpretation: + +- position-based correction is the heart of the fluid effect; +- velocity is derived from corrected positions, not only from forces; +- near-pressure makes short-range incompressibility feel "thicker". + +--- + +## Architecture decision + +### Preferred initial shape + +Implement as an interaction package under: + +- `interactions/particles/fluid` + +Publishing target: + +- `@tsparticles/interaction-particles-fluid` + +Option key: + +- `particles.fluid` + +Loader: + +- `loadParticlesFluidInteraction(engine)` + +Rationale: + +- semantically aligned with `interactions/particles/*` packages; +- lower integration burden for users; +- likely enough API surface in v4 already. + +### Escalation strategy + +If sequencing or shared frame-state becomes problematic: + +1. keep package in `interactions/particles/fluid`, +2. add internal plugin instance for orchestration, +3. only then evaluate migration to `plugins/fluid`. + +Escalate only with evidence (reproducible instability, persistent order artifacts, or inability to run required passes safely). + +--- + +## v4 readiness check + +Based on existing patterns (`collisions`, `attract`, `infection`, `move`), v4 appears ready for first implementation. + +Capabilities already present: + +- neighbor query via `container.particles.grid.queryCircle(...)`; +- particle mutation in interactors; +- container plugin `update(delta)` if needed; +- options loading and typed extension patterns. + +Potential gap to watch: + +- deterministic ordering between fluid correction and move integration. + +Proposed rule: + +- do not request engine changes up front; +- instrument first implementation; +- request minimal hook ordering support only if artifacts remain after interactor/plugin orchestration. + +--- + +## Entry points and package contracts + +### Must-have public API + +```ts +export async function loadParticlesFluidInteraction(engine: Engine): Promise; +``` + +### Must-have option contract + +`particles.fluid` should support enable + tuning options with safe defaults. + +### Should-have exports + +- `IFluid` and sub-interfaces; +- enum/string union types if modes are introduced; +- option classes consistent with repo style. + +--- + +## Proposed options model (detailed) + +```ts +export type FluidPointerMode = "push" | "pull"; + +export interface IFluidGravity { + enable?: boolean; + acceleration?: number; +} + +export interface IFluidPointer { + enable?: boolean; + radius?: number; + strength?: number; + mode?: FluidPointerMode; +} + +export interface IFluidDebug { + enable?: boolean; + drawRadius?: boolean; + drawDensity?: boolean; + drawNeighbors?: boolean; +} + +export interface IFluid { + enable?: boolean; + radius?: number; + stiffness?: number; + nearStiffness?: number; + restDensity?: number; + viscosity?: number; + iterations?: number; + maxForce?: number; + maxNeighbors?: number; + boundaryBounce?: number; + boundaryClamp?: boolean; + gravity?: IFluidGravity; + pointer?: IFluidPointer; + debug?: IFluidDebug; +} +``` + +### Defaults (candidate) + +```json +{ + "particles": { + "fluid": { + "enable": false, + "radius": 34, + "stiffness": 0.45, + "nearStiffness": 0.8, + "restDensity": 3, + "viscosity": 0.08, + "iterations": 2, + "maxForce": 2.5, + "maxNeighbors": 64, + "boundaryBounce": 0.2, + "boundaryClamp": true, + "gravity": { + "enable": true, + "acceleration": 0.01 + }, + "pointer": { + "enable": false, + "radius": 90, + "strength": 0.45, + "mode": "push" + }, + "debug": { + "enable": false, + "drawRadius": false, + "drawDensity": false, + "drawNeighbors": false + } + } + } +} +``` + +### Option semantics + +- `radius`: interaction support radius; larger means smoother but slower. +- `stiffness`: pressure response to density above `restDensity`. +- `nearStiffness`: near-field anti-compression; key for "liquid blob" feel. +- `restDensity`: target neighbor density equilibrium. +- `viscosity`: velocity blending/smoothing. +- `iterations`: correction loops per frame (1-4 reasonable). +- `maxForce`: hard clamp to avoid numerical explosions. +- `maxNeighbors`: perf safety cap. +- `boundaryBounce` + `boundaryClamp`: containment behavior near canvas edges. + +--- + +## Package structure (target) + +```text +interactions/particles/fluid/ + .browserslistrc + .npmignore + CHANGELOG.md + LICENSE + README.md + eslint.config.js + package.dist.json + package.json + rollup.config.js + tsconfig.base.json + tsconfig.browser.json + tsconfig.json + tsconfig.module.json + tsconfig.types.json + typedoc.json + src/ + browser.ts + index.lazy.ts + index.ts + Types.ts + FluidInteractor.ts + FluidMath.ts + FluidState.ts + Options/ + Classes/ + Fluid.ts + FluidDebug.ts + FluidGravity.ts + FluidPointer.ts + Interfaces/ + IFluid.ts + IFluidDebug.ts + IFluidGravity.ts + IFluidPointer.ts +``` + +Optional only-if-needed additions: + +```text + FluidPlugin.ts + FluidPluginInstance.ts +``` + +--- + +## Type design proposal + +```ts +import type { + IInteractivityParticlesOptions, + InteractivityParticle, + InteractivityParticlesOptions, +} from "@tsparticles/plugin-interactivity"; +import type { Fluid } from "./Options/Classes/Fluid.js"; +import type { IFluid } from "./Options/Interfaces/IFluid.js"; + +export type FluidParticle = InteractivityParticle & { + options: ParticlesFluidOptions; + fluid?: { + prevX?: number; + prevY?: number; + density?: number; + nearDensity?: number; + neighborCount?: number; + }; +}; + +export type IParticlesFluidOptions = IInteractivityParticlesOptions & { + fluid?: IFluid; +}; + +export type ParticlesFluidOptions = InteractivityParticlesOptions & { + fluid?: Fluid; +}; +``` + +Implementation note: + +- keep per-particle temp state compact; +- avoid wide object graphs allocated each frame; +- consider typed scratch buffers if profile justifies. + +--- + +## Loader and registration pattern + +Follow collision-style interactor registration. + +```ts +import { type InteractivityEngine, ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity"; +import { type Engine } from "@tsparticles/engine"; +import { FluidInteractor } from "./FluidInteractor.js"; + +declare const __VERSION__: string; + +export async function loadParticlesFluidInteraction(engine: Engine): Promise { + engine.checkVersion(__VERSION__); + + await engine.pluginManager.register((e: InteractivityEngine) => { + ensureInteractivityPluginLoaded(e); + + e.pluginManager.addInteractor?.("particlesFluid", container => { + return Promise.resolve(new FluidInteractor(container)); + }); + }); +} +``` + +If plugin orchestration is required, same loader can additionally register `FluidPlugin`. + +--- + +## Simulation model + +We model fluid cohesion with position-based relaxation inspired by DDR. + +### Phase A - pre-step + +For each eligible particle: + +- store previous position (`prevX`, `prevY`); +- apply optional fluid gravity; +- apply optional pointer impulse; +- optionally predict position (`x += vx`, `y += vy`) when using explicit prediction mode. + +### Phase B - density accumulation + +For each particle `i`: + +- query neighbors within `radius`; +- for each neighbor `j`: + - `r = distance(i, j)`; + - if `r < radius`, compute `q = 1 - r/radius`; + - accumulate: + - `density += q^2` + - `nearDensity += q^3` + +### Phase C - pressure solve + +Compute: + +- `pressure = stiffness * (density - restDensity)` +- `nearPressure = nearStiffness * nearDensity` + +Apply symmetric displacement along normalized neighbor direction: + +- displacement factor `D = pressure * q + nearPressure * q^2` +- split half-half between pair to preserve momentum-like behavior. + +### Phase D - constraints + +- clamp to canvas bounds when enabled; +- optional boundary bounce damping. + +### Phase E - velocity reconstruction + +- `vx = x - prevX` +- `vy = y - prevY` +- optional viscosity blend toward neighborhood average velocity. + +### Phase F - iteration + +Repeat phases B-E `iterations` times for improved stability. + +--- + +## Detailed pseudo-code (implementation-grade) + +```ts +for each particle p: + if !isFluidEnabled(p): continue + p.fluid.prevX = p.position.x + p.fluid.prevY = p.position.y + + if fluid.gravity.enable: + p.velocity.y += fluid.gravity.acceleration + + if fluid.pointer.enable and pointer.active: + applyPointerForce(p) + +for iter in [0..fluid.iterations): + for each particle p: + density = 0 + nearDensity = 0 + neighbors = queryCircle(p.position, fluid.radius) + + for each n in neighbors: + if n === p or !isFluidEnabled(n): continue + d = distance(p.position, n.position) + if d <= 0 or d >= fluid.radius: continue + q = 1 - d / fluid.radius + density += q * q + nearDensity += q * q * q + cacheNeighbor(p, n, q, direction) + + pressure = fluid.stiffness * (density - fluid.restDensity) + nearPressure = fluid.nearStiffness * nearDensity + + for each cached neighbor entry: + q = entry.q + dir = entry.direction + force = pressure * q + nearPressure * q * q + force = clamp(force, -fluid.maxForce, fluid.maxForce) + dx = dir.x * force * 0.5 + dy = dir.y * force * 0.5 + entry.neighbor.position.x += dx + entry.neighbor.position.y += dy + p.position.x -= dx + p.position.y -= dy + + applyBounds(p) + +for each particle p: + vx = p.position.x - p.fluid.prevX + vy = p.position.y - p.fluid.prevY + if fluid.viscosity > 0: + [vx, vy] = blendWithNeighborVelocity(p, vx, vy, fluid.viscosity) + p.velocity.x = vx + p.velocity.y = vy +``` + +--- + +## Numerical stability rules + +Hard constraints for implementation: + +1. never divide by near-zero distance without epsilon checks; +2. clamp pressure displacement; +3. skip destroyed/spawning particles; +4. cap neighbors per particle with deterministic truncation; +5. avoid accumulating stale neighbor cache between frames. + +Suggested constants: + +- `epsilon = 1e-6` +- `maxNeighbors = 64` default +- `iterations = 2` default +- `maxForce = 2.5` default + +--- + +## Interactions with existing tsParticles systems + +### `particles.move` + +Fluid should complement movement, not replace it. + +- move gives baseline motion; +- fluid modifies local coherence; +- reconstruction step should not permanently zero stylistic move vectors. + +### `particles.collisions` + +Potential over-constraint when both are strong. + +Recommendations: + +- reduce collision aggressiveness when fluid enabled; +- keep `fluid.stiffness` conservative; +- document presets for coexistence. + +### `particles.attract` + +Attract can create macro-flow direction while fluid preserves body coherence. + +Risk: + +- high attract + high nearStiffness can produce jitter/compression spikes. + +Mitigation: + +- clamp force; +- increase radius moderately; +- lower attract rotation force. + +### External interactivity (`repulse`, `grab`, `push`, `trail`) + +- repulse should produce local wave-like deformation in blob; +- push (new particles) must not break solver when density spikes; +- trail visuals should still render from particle motion deltas. + +### Emitters + +Emitters can feed fluid streams. Need spawn stabilization: + +- newly spawned particles may skip fluid for first frames (`spawning` guard); +- or start with reduced fluid influence ramp. + +--- + +## Bounds behavior + +From source snippet, boundary handling was critical. + +Required behavior when `boundaryClamp` is true: + +- keep particles inside canvas; +- apply soft displacement near edges; +- optional bounce damping on impact. + +Proposed logic: + +```ts +if (x < minX) { + x = minX; + vx *= -boundaryBounce; +} +if (x > maxX) { + x = maxX; + vx *= -boundaryBounce; +} +// same for y +``` + +Optional future option: + +- `boundaryMode: "clamp" | "wrap"` (not required v1) + +--- + +## Pointer coupling (fluid-specific) + +The source sample used pointer force to "stir" the fluid. + +We should support a fluid pointer mode independent from standard interactivity mode toggles, so users can get fluid stirring even without repulse config complexity. + +Pointer impulse candidate: + +```ts +const dx = p.x - pointer.x; +const dy = p.y - pointer.y; +const d = Math.hypot(dx, dy); + +if (d > 1 && d < pointerRadius) { + const inv = 1 / d; + const signed = pointerMode === "pull" ? -1 : 1; + p.velocity.x += signed * pointerStrength * dx * inv * (1 - d / pointerRadius); + p.velocity.y += signed * pointerStrength * dy * inv * (1 - d / pointerRadius); +} +``` + +--- + +## Option loading classes (pattern) + +Mirror existing packages: + +- interface files in `Options/Interfaces/*` +- classes in `Options/Classes/*` +- `load(...)` methods with null checks and property loaders. + +Example class skeleton: + +```ts +export class Fluid implements IFluid, IOptionLoader { + enable = false; + radius = 34; + stiffness = 0.45; + nearStiffness = 0.8; + restDensity = 3; + viscosity = 0.08; + iterations = 2; + maxForce = 2.5; + maxNeighbors = 64; + boundaryBounce = 0.2; + boundaryClamp = true; + readonly gravity = new FluidGravity(); + readonly pointer = new FluidPointer(); + readonly debug = new FluidDebug(); + + load(data?: RecursivePartial): void { + if (isNull(data)) { + return; + } + + loadProperty(this, "enable", data.enable); + loadNumeric(this, "radius", data.radius); + loadNumeric(this, "stiffness", data.stiffness); + loadNumeric(this, "nearStiffness", data.nearStiffness); + loadNumeric(this, "restDensity", data.restDensity); + loadNumeric(this, "viscosity", data.viscosity); + loadNumeric(this, "iterations", data.iterations); + loadNumeric(this, "maxForce", data.maxForce); + loadNumeric(this, "maxNeighbors", data.maxNeighbors); + loadNumeric(this, "boundaryBounce", data.boundaryBounce); + loadProperty(this, "boundaryClamp", data.boundaryClamp); + + this.gravity.load(data.gravity); + this.pointer.load(data.pointer); + this.debug.load(data.debug); + } +} +``` + +--- + +## `FluidInteractor` responsibilities + +The interactor should do exactly these things: + +1. `isEnabled(particle)` checks `particle.options.fluid?.enable`. +2. `loadParticlesOptions(...)` merges fluid options. +3. `interact(...)` executes fluid pass logic. +4. `maxDistance` returns active radius max for optimization. +5. `clear/init/reset` remain no-op unless internal caches require reset. + +Avoid adding rendering concerns here (no drawing), except debug hooks if plugin architecture requires it. + +--- + +## Per-frame orchestration decision tree + +### Path A (preferred): interactor-only + +Use interactor callbacks with local pass loops. + +Use when: + +- no frame-order artifact is visible; +- performance remains acceptable. + +### Path B: interactor + plugin instance + +Add plugin instance `update(delta)` to manage shared frame state and coordinated passes. + +Use when: + +- we need one global "frame pre-step" and "frame finalize" across all particles; +- interactor call order creates bias. + +### Path C: dedicated plugin package + +Use only when package needs persistent cross-system hooks not fitting interactions domain. + +--- + +## Engine extension policy + +Engine must remain untouched unless a concrete blocker exists. + +Possible blocker patterns: + +- no reliable pre-move/post-move ordering; +- no safe way to run one global fluid phase per frame; +- lifecycle missing for reset/resize coordination. + +If blocker confirmed, propose minimal extension only: + +- deterministic hook ordering labels, or +- one optional frame callback phase. + +No broad refactor request. + +--- + +## Performance budget and profiling plan + +Target scenarios: + +1. 300 particles, desktop: excellent (> 100 fps where possible) +2. 600 particles, desktop: smooth (~60 fps) +3. 1000 particles, desktop: acceptable with low iterations +4. 300 particles, mobile-ish profile: still fluid and stable + +Profile metrics: + +- average frame time; +- 95th percentile frame time; +- neighbor checks per frame; +- allocations per frame; +- NaN incidence (should be zero). + +Guardrails: + +- if `neighborsAvg > 50`, suggest lower radius; +- if frame time spikes > 16ms at 600 particles, degrade via iteration fallback. + +Potential adaptive fallback (optional): + +- dynamic `iterations` reduction when frame load exceeds threshold. + +--- + +## Memory and allocation policy + +Avoid these anti-patterns: + +- creating new arrays inside every neighbor loop; +- storing full neighbor objects for all particles persistently; +- repeated object literal allocation for vector temp math. + +Prefer: + +- reusable scratch arrays; +- fixed temporary vector structs reused per function; +- compact per-particle fluid state fields. + +--- + +## Compatibility matrix (expanded) + +| Feature | Expected status | Notes | +|---------|------------------|-------| +| `move.enable` | Required | Fluid is most meaningful with baseline movement | +| `collisions.enable` | Supported with caveats | May over-constrain; tune both systems | +| `attract.enable` | Supported | Useful for directional flow | +| `links.enable` | Visual only | Can reveal structure, may look non-fluid if too rigid | +| `emitters` | Supported | Great for fluid streams, validate spawn bursts | +| `infection` plugin | Untested initially | Should not conflict logically, but both mutate behavior | +| `trail` plugin | Supported | Good visual enhancement | +| `poisson` plugin | Depends | Sampling pattern may change initial fluid convergence | + +--- + +## Risks and mitigations (expanded) + +### Risk 1 - instability explosions + +Symptoms: + +- particles shoot to infinity; +- velocity spikes and NaN. + +Mitigation: + +- epsilon checks; +- force clamp; +- conservative defaults; +- iterative correction instead of one huge correction. + +### Risk 2 - mushy/no-fluid look + +Symptoms: + +- particles just look like attract/repulse; +- no blob coherence. + +Mitigation: + +- increase near-pressure role; +- add velocity reconstruction; +- tune restDensity and radius balance. + +### Risk 3 - over-clumping + +Symptoms: + +- one giant rigid blob; +- no dynamic deformation. + +Mitigation: + +- lower stiffness/nearStiffness; +- increase baseline move speed slightly; +- add mild viscosity only. + +### Risk 4 - order-dependent anisotropy + +Symptoms: + +- flow bias in iteration order direction. + +Mitigation: + +- pairwise symmetric displacement; +- optional pass randomization or alternate traversal; +- plugin-level orchestration if needed. + +### Risk 5 - perf collapse at high density + +Symptoms: + +- sudden frame drops with emitters or large radius. + +Mitigation: + +- `maxNeighbors` cap; +- reduce iterations; +- optional adaptive degradation. + +--- + +## Test strategy + +### Unit tests + +1. option class loading: + - defaults; + - partial load merge; + - nested gravity/pointer/debug load. +2. helper math: + - `q` computation boundaries; + - force clamp; + - epsilon-safe normalization. +3. guard behavior: + - disabled fluid returns early; + - destroyed/spawning skipped. + +### Integration tests + +1. fluid-only baseline scene: + - no NaN after N frames; + - visible local clustering metrics. +2. fluid + move + emitters: + - stable stream behavior. +3. fluid + collisions: + - no catastrophic jitter. +4. fluid + pointer stirring: + - localized deformation and recovery. + +### Soak test + +- run 20k+ frames simulation in headless mode (where feasible); +- assert no memory trend growth and no invalid values. + +--- + +## Acceptance criteria + +Feature is acceptable for first release when: + +1. visual effect clearly resembles fluid clustering (not plain attraction); +2. no NaN/Infinity positions or velocities under standard presets; +3. defaults are stable with 300-600 particles on common desktop browser; +4. docs include tuning guidance and caveats; +5. no engine changes required, or minimal engine change is justified by reproducible issue. + +--- + +## Suggested presets + +### Water-like + +```json +{ + "particles": { + "fluid": { + "enable": true, + "radius": 30, + "stiffness": 0.32, + "nearStiffness": 0.62, + "restDensity": 2.8, + "viscosity": 0.06, + "iterations": 2, + "maxForce": 2.1 + } + } +} +``` + +### Gel-like + +```json +{ + "particles": { + "fluid": { + "enable": true, + "radius": 36, + "stiffness": 0.52, + "nearStiffness": 1.0, + "restDensity": 3.4, + "viscosity": 0.14, + "iterations": 3, + "maxForce": 2.8 + } + } +} +``` + +### Performance-first + +```json +{ + "particles": { + "fluid": { + "enable": true, + "radius": 24, + "stiffness": 0.28, + "nearStiffness": 0.45, + "restDensity": 2.2, + "viscosity": 0.04, + "iterations": 1, + "maxNeighbors": 32, + "maxForce": 1.8 + } + } +} +``` + +--- + +## Example usage in tsParticles config + +```ts +import { tsParticles } from "@tsparticles/engine"; +import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity"; +import { loadParticlesFluidInteraction } from "@tsparticles/interaction-particles-fluid"; + +await loadInteractivityPlugin(tsParticles); +await loadParticlesFluidInteraction(tsParticles); + +await tsParticles.load({ + id: "tsparticles", + options: { + fpsLimit: 120, + particles: { + number: { value: 600 }, + color: { value: "#6ec6ff" }, + size: { value: 2 }, + move: { enable: true, speed: 1.2 }, + collisions: { enable: false }, + fluid: { + enable: true, + radius: 32, + stiffness: 0.4, + nearStiffness: 0.75, + restDensity: 3, + viscosity: 0.1, + iterations: 2, + maxForce: 2.4, + gravity: { enable: true, acceleration: 0.01 }, + pointer: { enable: true, radius: 100, strength: 0.4, mode: "push" } + } + }, + interactivity: { + events: { + onHover: { enable: true, mode: "repulse" } + } + } + } +}); +``` + +--- + +## Implementation sequence (execution roadmap, non-monolithic) + +This section is intentionally task-oriented so an implementation agent can execute in small, reviewable chunks. + +### Step 0 - repository alignment and constraints + +Goal: + +- confirm package conventions before writing code. + +Actions: + +1. inspect one mature interaction package under `interactions/particles/*` and mirror its file/layout conventions; +2. confirm required build/lint/test commands for that project in Nx; +3. capture exact naming (`particlesFluid`, package name, loader export) and freeze it; +4. confirm semver target remains `4.2.0` under non-breaking assumptions. + +Done when: + +- a short checklist is written in the implementation PR description and naming is no longer changing. +- a short semver note states why the change is still minor and does not require major. + +Stop condition (hard gate): + +- if this step reveals probable breaking changes, STOP before Step 1 and request explicit maintainer confirmation for version strategy change. + +### Step 1 - package skeleton only (no behavior) + +Goal: + +- create package scaffolding and registration entry points without simulation logic. + +Actions: + +1. scaffold `interactions/particles/fluid` with standard package files; +2. add `src/index.ts`, `src/index.lazy.ts`, `src/browser.ts`; +3. implement `loadParticlesFluidInteraction(engine)` with interactor registration; +4. add a noop `FluidInteractor` that compiles and returns early. + +Files expected: + +- package metadata/config files; +- loader files; +- `src/FluidInteractor.ts` placeholder. + +Verification gate: + +- package build passes; +- no runtime errors when loader is called in a minimal demo. + +### Step 2 - options contract and loaders + +Goal: + +- establish stable typed options before solver work. + +Actions: + +1. add interfaces under `Options/Interfaces/*`; +2. add classes under `Options/Classes/*` with `load(...)` semantics aligned to repo patterns; +3. wire `particles.fluid` option merge path in interactor option loading; +4. add unit tests for defaults + partial loading behavior. + +Verification gate: + +- option loader tests pass; +- options are reachable from particle options at runtime. + +### Step 3 - baseline fluid solver (DDR core) + +Goal: + +- implement the minimal useful fluid effect. + +Actions: + +1. add per-particle transient fluid state (`prevX`, `prevY`, density fields); +2. implement density/near-density accumulation with neighbor query radius; +3. implement pressure + near-pressure pair displacement (symmetric split); +4. reconstruct velocity from corrected position deltas. + +Hard rules for this step: + +- epsilon-safe normalization; +- clamp force by `maxForce`; +- skip invalid particles (`destroyed`/`spawning` guards). + +Verification gate: + +- visual blob coherence appears in a simple scene; +- no NaN/Infinity in short run (manual + automated assertion). + +### Step 4 - constraints and boundary behavior + +Goal: + +- make solver robust at edges and under high local density. + +Actions: + +1. add `boundaryClamp` and `boundaryBounce` behavior; +2. apply deterministic `maxNeighbors` cap; +3. ensure stale neighbor data is not reused between frames/iterations; +4. add tests for boundary handling and neighbor cap behavior. + +Verification gate: + +- edge collisions do not explode; +- behavior remains stable under emitter bursts near boundaries. + +### Step 5 - viscosity and pointer stirring + +Goal: + +- improve fluid feel and user interaction controls. + +Actions: + +1. add viscosity blend path (configurable by `viscosity`); +2. add fluid-specific pointer push/pull impulse; +3. ensure pointer logic is independent from standard interactivity mode complexity; +4. add integration test scenarios for pointer stirring. + +Verification gate: + +- stirring produces local deformation and smooth recovery; +- default settings remain stable with pointer disabled. + +### Step 6 - interoperability hardening + +Goal: + +- verify coexistence with existing systems and avoid regressions. + +Actions: + +1. validate combinations: fluid+move, fluid+emitters, fluid+repulse, fluid+collisions; +2. document known caveats and safe tuning ranges; +3. if ordering artifacts appear, document evidence and evaluate Path B (plugin instance orchestration). + +Verification gate: + +- compatibility matrix is validated and updated with real observations (not assumptions). + +### Step 7 - performance and soak validation + +Goal: + +- prove first-release viability under target particle counts. + +Actions: + +1. benchmark target scenarios (300/600/1000 desktop, 300 mobile-ish profile); +2. collect frame time, p95, neighbor counts, and allocation trends; +3. run long soak test and assert no NaN + no memory trend drift; +4. tune defaults only after measurements. + +Verification gate: + +- default preset meets acceptance thresholds or documented fallback tuning is provided. + +### Step 8 - docs, presets, and release readiness + +Goal: + +- make feature consumable and maintainable. + +Actions: + +1. finalize README (install/load/options/presets/troubleshooting); +2. include three tested presets (water-like, gel-like, performance-first); +3. update changelog/package metadata as required by repo policy; +4. ensure examples compile with the published loader name. + +Verification gate: + +- docs match implemented options exactly; +- no undocumented options remain. + +### Step 9 - optional advanced path (only with evidence) + +Goal: + +- handle architecture escalation without destabilizing v1. + +Actions: + +1. introduce plugin-level orchestration only if Step 6 shows reproducible ordering bias; +2. consider adaptive iterations if Step 7 proves necessary; +3. keep engine changes as last resort with minimal, reproducible justification. + +Verification gate: + +- escalation PR includes before/after evidence and does not change public options unexpectedly. + +--- + +## Logical slicing strategy (recommended) + +To avoid monolithic changes, implementation should be split into clearly isolated logical slices aligned with the steps above. + +Important: + +- these slices are planning/review units only; +- the implementation agent must not commit them and must not open a PR. + +Suggested slices: + +1. `feat(fluid): scaffold package and loader` +2. `feat(fluid): add options contracts and loader tests` +3. `feat(fluid): implement baseline DDR solver` +4. `feat(fluid): add boundaries, caps, and stability tests` +5. `feat(fluid): add viscosity and pointer stirring` +6. `docs(fluid): presets, compatibility notes, troubleshooting` + +Each slice must include: + +- what changed; +- how it was verified; +- measurable impact (visual/perf/stability) when relevant. + +--- + +## Debug and observability proposal + +Optional debug mode (off by default): + +- draw support radius around selected particles; +- color by local density; +- show neighbor count in dev logs (sampled); +- periodic warning when clamps trigger excessively. + +Possible internal counters (dev only): + +- `framesWithClampOveruse` +- `maxNeighborsObserved` +- `nanRecoveries` + +--- + +## Documentation deliverables + +When implementation happens, README should include: + +1. package intro and purpose; +2. install/load snippets (CDN + ESM/CJS pattern used in repo); +3. option reference table; +4. three presets; +5. compatibility caveats; +6. troubleshooting guide: + - jitter, + - no fluid effect, + - low performance. + +--- + +## Open technical questions (to validate during implementation) + +1. Is interactor callback order stable enough for multi-pass behavior? +2. Should velocity reconstruction happen every iteration or only final pass? +3. Do we need per-particle temporary arrays, or can we compute on the fly cheaply? +4. Is z-layer filtering required to avoid cross-depth fluid coupling? +5. Does collisions + fluid need an explicit "integration mode" option? + +These are not blockers for starting, but should be tracked during implementation. + +--- + +## Migration fallback criteria to `plugins/fluid` + +Move from interaction package to plugin package only if one or more is true after prototyping: + +1. interactor-only path cannot enforce stable frame sequencing; +2. shared state lifecycle is awkward/impossible in interaction boundary; +3. solver quality strongly depends on global pre/post passes unavailable in current setup. + +If migration is needed, maintain compatibility: + +- keep same option key (`particles.fluid` where possible); +- keep same loader name if feasible; +- provide clear changelog migration notes. + +--- + +## Final considerations and improvement ideas + +This section lists forward-looking enhancements beyond v1. + +### Improvement 1 - adaptive solver quality + +Automatically reduce/increase `iterations` based on frame time budget. + +Benefit: + +- keeps interaction smooth under variable load. + +### Improvement 2 - viscosity kernels + +Introduce selectable viscosity kernels (`linear`, `quadratic`) for different liquid feel. + +Benefit: + +- broader artistic control without major architecture changes. + +### Improvement 3 - flow fields coupling + +Integrate fluid correction with move path generators (where available). + +Benefit: + +- fluid streams can follow custom paths naturally. + +### Improvement 4 - vorticity-style enhancement + +Add optional swirl preservation term to avoid over-damped look. + +Benefit: + +- richer visual turbulence at low extra cost. + +### Improvement 5 - density-aware rendering hooks + +Expose local density for color/opacity modulation in compatible plugins. + +Benefit: + +- more convincing liquid visuals without changing physics core. + +### Improvement 6 - deterministic benchmark scene pack + +Ship internal benchmark configs to validate regressions quickly. + +Benefit: + +- easier long-term maintenance and tuning. + +--- + +## Go/No-Go for implementation start + +### Go now if + +- we accept interaction-first architecture; +- we accept DDR-inspired approximation over full fluid sim; +- we prioritize stability and integration over perfect physical accuracy. + +### Pause and redesign if + +- requirement changes to physically accurate CFD-like behavior; +- hard deterministic sync across environments becomes mandatory; +- engine-level ordering guarantees are required before any prototype. + +Current recommendation: **Go with `interactions/particles/fluid` prototype path immediately**. + +--- + +## Quick checklist for the implementing agent + +1. Build package skeleton matching existing interactions conventions. +2. Add options contracts and loaders with conservative defaults. +3. Implement baseline DDR-inspired solver with clamps and epsilon safety. +4. Verify with move + emitters + repulse + collisions scenarios. +5. Add README docs and presets. +6. Add tests for loading, guards, and numeric stability. +7. Profile and tune radius/iterations/maxNeighbors defaults. +8. Escalate architecture only if measurable blockers remain. + +This spec intentionally front-loads analysis so implementation can proceed with fewer architectural reversals. diff --git a/.planning/handovers/SHAPE_EFFECT_BOUNDS_OWNERSHIP_PLAN.md b/.planning/handovers/SHAPE_EFFECT_BOUNDS_OWNERSHIP_PLAN.md deleted file mode 100644 index f83326b891f..00000000000 --- a/.planning/handovers/SHAPE_EFFECT_BOUNDS_OWNERSHIP_PLAN.md +++ /dev/null @@ -1,184 +0,0 @@ -# Shape/Effect Bounds Ownership Plan - -## Context - -The current engine decides whether a particle is inside/outside the canvas with a generic check in `engine/src/Core/Particle.ts` (`isInsideCanvas()`), based on particle center + radius. This works for simple shapes, but it is insufficient for procedural shapes/effects whose visible geometry can extend far beyond the particle radius (for example `ribbon`). - -Result: visual artifacts near canvas edges (late resets, flicker, chaotic exits), because lifecycle and out-of-canvas decisions are detached from real rendered geometry. - -## Goal - -Let **shape drawers** and **effect drawers** optionally define how canvas-bounds are evaluated for their particles, while keeping backward compatibility for all existing shapes/effects. - -In short: - -- engine keeps a default generic bounds check; -- shape/effect can override/extend that check with geometry-aware logic; -- engine uses the resolved result for visibility/out-mode/lifecycle decisions. - -## Current Touchpoints - -- `engine/src/Core/Particle.ts` - - `isInsideCanvas()` is generic and radius-based. - - `isVisible()` delegates to `isInsideCanvas()`. -- `engine/src/Core/Interfaces/IShapeDrawer.ts` - - draw lifecycle exists, but no API for bounds ownership. -- `engine/src/Core/Interfaces/IEffectDrawer.ts` - - effect lifecycle exists, but no API for bounds ownership. -- `engine/src/Core/ParticlesManager.ts` - - update pipeline could consume a richer in/out-canvas status. - -## Proposed Design - -### 1) New shared type for bounds decisions - -Add a new engine type (name can vary): - -`IParticleCanvasBoundsResult` - -Recommended fields: - -- `inside: boolean` (required) -- `margin?: number` (optional, debug/telemetry) -- `reason?: "default" | "shape" | "effect" | "combined"` (optional) - -And a callback context type: - -`IParticleCanvasBoundsData` - -Suggested fields: - -- `particle: TParticle` -- `canvasSize: { width: number; height: number }` -- `radius: number` - -### 2) Extend shape drawer contract (optional) - -In `IShapeDrawer` add optional callback: - -- `isInsideCanvas?: (data: IParticleCanvasBoundsData) => boolean | IParticleCanvasBoundsResult` - -Behavior: - -- if missing, engine uses default radius check. -- if present, engine trusts it for shape-owned bounds semantics. - -### 3) Extend effect drawer contract (optional) - -In `IEffectDrawer` add optional callback: - -- `isInsideCanvas?: (data: IParticleCanvasBoundsData) => boolean | IParticleCanvasBoundsResult` - -Behavior: - -- effect can refine bounds when visual footprint is effect-driven. - -### 4) Resolution strategy in Particle - -Refactor `Particle.isInsideCanvas()` into a resolver pipeline: - -1. Compute default generic result (current behavior). -2. Read active shape drawer callback (if any). -3. Read active effect drawer callback (if any). -4. Resolve final value with deterministic precedence. - -Recommended precedence: - -- If only one override exists -> use it. -- If both exist -> combine with configurable policy. - -Recommended default combine policy: - -- `inside = shapeInside && effectInside` (conservative, avoids particles lingering offscreen). - -Alternative policy can be introduced later via options if needed. - -### 5) Keep backward compatibility strict - -- Existing shapes/effects require **no changes**. -- If new callbacks are absent, behavior remains exactly as today. -- No public API removals. - -## Implementation Plan (for the next plan/build agent) - -### Phase A — Engine contracts - -1. Add new bounds data/result types in engine exports. -2. Extend `IShapeDrawer` and `IEffectDrawer` with optional `isInsideCanvas` callback. -3. Update public type exports (`engine/src/export-types.ts` / `engine/src/exports.ts` if needed). - -### Phase B — Particle resolver - -1. In `Particle.isInsideCanvas()`, implement: - - default check extraction to helper (`getDefaultInsideCanvasResult`). - - callback discovery for active shape/effect drawers. - - normalized return handling (`boolean` or object). -2. Add internal helper methods: - - normalize callback result. - - merge shape/effect results with deterministic policy. - -### Phase C — First adopter (ribbon) - -1. Implement `isInsideCanvas` in `shapes/ribbon/src/RibbonDrawer.ts`. -2. Compute bounds from ribbon geometry (head/points/thickness), not particle radius. -3. Remove ribbon-specific lifecycle hacks that duplicate this decision in update loop (only if safe after tests). - -### Phase D — Tests and validation - -1. Engine unit tests for resolver behavior: - - no callbacks -> default logic. - - only shape callback. - - only effect callback. - - both callbacks with combine policy. -2. Ribbon regression test scenario: - - stable exit at canvas boundaries. - - no flicker/jitter from late out-of-canvas decisions. -3. Optional visual smoke in demo config `shapeRibbon`. - -## Acceptance Criteria - -- Shapes/effects can optionally control in/out-canvas semantics. -- Engine default behavior remains unchanged for unchanged plugins. -- Ribbon no longer relies on ad-hoc edge reset logic to avoid chaotic exits. -- No regressions in standard shapes (`circle`, `square`, `polygon`, `image`, etc.). - -## Risks and Mitigations - -### Risk 1: conflicting shape/effect results - -Mitigation: - -- single documented merge policy (start with AND). -- explicit tests for conflict cases. - -### Risk 2: performance impact per-particle per-frame - -Mitigation: - -- callbacks are optional and only called when present. -- keep callback payload minimal. -- avoid allocations in hot path. - -### Risk 3: plugin ecosystem breakage - -Mitigation: - -- optional interface extension only. -- no mandatory implementation. -- changelog note + migration snippet. - -## Suggested Task Breakdown (ready for planner) - -1. Define new engine types for bounds callbacks. -2. Extend shape/effect drawer interfaces. -3. Implement particle bounds resolver with merge policy. -4. Add resolver unit tests. -5. Implement ribbon bounds callback using true ribbon geometry. -6. Remove redundant ribbon exit hacks where possible. -7. Validate with Nx build/lint/tests and `shapeRibbon` visual check. - -## Notes for Build Agent - -- Treat this as an engine-level contract change first, ribbon fix second. -- Keep API additions minimal and optional. -- Prefer explicit helper functions over inline logic in `Particle.isInsideCanvas()` to keep reviewability high. diff --git a/.planning/handovers/WRAPPER_REACTIVITY_PLAN.md b/.planning/handovers/WRAPPER_REACTIVITY_PLAN.md new file mode 100644 index 00000000000..963e0c184b9 --- /dev/null +++ b/.planning/handovers/WRAPPER_REACTIVITY_PLAN.md @@ -0,0 +1,2613 @@ +# Wrapper Reactivity & Vue3 Docs Plan — Enriched + +> **Status**: Planning document (ready for agent execution) +> **Total wrappers in scope**: all wrappers in repository except `wordpress` +> **Previous version**: ~560 lines — this enriched version adds per-wrapper code analysis, type contracts, before/after code, and per-substep agent instructions. + +--- + +## Execution Summary (Supervisor View) + +Use this table as the single high-level progress board. Update it whenever a step changes state. + +| Step | Area | Status | Notes | +|------|---------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------| +| S1 | Vue 3 wrapper | Done | Wrapper + demo + template check + README + verification | +| S2 | Vue 2 wrapper | Done | Wrapper + demo + template check + README + verification | +| S3 | Angular wrapper | Done | Wrapper + demo + template check + README + verification | +| S4 | Solid wrapper | Done | Wrapper + demo + template check + README + verification | +| S5 | Qwik wrapper | Done | Wrapper + demo + template check + README + verification | +| S6 | Astro wrapper | Done | Wrapper + demo + template check + README + verification | +| S7 | Inferno wrapper | Done | Wrapper + demo/template check + README + verification | +| S8 | Lit wrapper | Done | Wrapper + demo/template check + README + verification | +| S9 | Riot wrapper | Done | Wrapper + demo/template check + README + verification | +| S10 | WebComponents wrapper | Done | Wrapper + demo/template check + README + verification | +| S11 | React docs | Done | README alignment + demo/template check | +| S12 | Preact wrapper | Done | Wrapper + demo/template check + README + verification | +| S13 | Svelte wrapper | Done | `theme` prop, selective `$:` reactivity, demo alignment, README | +| S14 | Stencil wrapper | Done | `theme` prop, `particlesLoaded` event, `@Watch("theme")`, demo with theme toggle + plugin-themes, README aligned | +| S15 | Ember wrapper | Done | `theme` prop, lifecycle fix, README alignment, build pass | +| S16 | jQuery wrapper | Done | `setTheme` method, `WeakMap` tracking, safe `loadTheme?.()`, README aligned, build pass | +| S17 | Angular-fireworks wrapper | Done | Implemented `OnChanges` + `#destroyed` guard + `#startFireworks`; N/A: no standalone demo or templates dir; README updated; build pass | +| S18 | EN docs | Done | Removed stale `:init`, `@particles-init`, `particlesInit`; removed Component-Level Init section; fixed `useParticles` → `useParticlesProvider`; added `theme` prop to API table with plugin caveat; added theme prop docs in Theme Switching section | +| S19 | 9 translations | Done | Mirrored all S18 changes across zh, ja, hi, ru, pt, fr, de, es, it — each file reduced from 622→~576 lines; zero stale patterns remaining | +| S20 | Validation | Done | Build + smoke + stale-pattern checks ✅ — all 13 wrappers build pass; stale patterns: zero; README gaps documented | +| S21 | Final handoff | Done | All artifacts aligned. README gaps fixed for preact, stencil, ember, jquery, angular-fireworks. Builds passing. Zero stale patterns. | +| S22 | EN wrapper guide audit | Done | Audit complete. All 16 guide files checked. Gap matrix produced: all 16 have missing `theme`/reactivity/cleanup docs. Nuxt has stale `@particles-init`/`@particles-destroy`. Solid/Svelte have misleading reactivity descriptions. Audit-only — no files edited. | +| S23 | Translation alignment | Done | All 16 EN guides fixed (theme prop, reactivity, cleanup, Container types, stale events, misleading descriptions). Mirrored to 9 translation directories (144 files). | + +Status legend: `Pending`, `In progress`, `Blocked`, `Partial`, `Done`, `N/A`. + +--- + +## ⚠️ CRITICAL: FILE TOUCH RULES FOR IMPLEMENTING AGENTS + +**You must NEVER modify files outside these allowed paths.** This is enforced by design — the engine and accessory libraries are stable and must not be changed by wrapper work. + +### ✅ ALLOWED (can create/edit) +| Path | Notes | +|-----------------------------------------------------------------------|------------------------------------------------------| +| `wrappers//**` | Wrapper package code, README, config | +| `demo//**` | Corresponding demo app | +| `websites/website/docs/guides/.md` | English docs (one per wrapper) | +| `websites/website/docs/{zh,ja,hi,ru,pt,fr,de,es,it}/guides/.md` | Translated docs (mirror EN) | +| `.planning/handovers/WRAPPER_REACTIVITY_PLAN.md` | This plan — update step statuses & execution records | +| `.planning/STATE.md` | Project state — update session outcome & next steps | + +### 🚫 FORBIDDEN (never touch) +| Path | Reason | +|-------------------|-----------------------------------------| +| `bundles/**` | Bundle assembly — stable, out of scope | +| `cli/**` | CLI — stable, out of scope | +| `effects/**` | Effects — stable, out of scope | +| `engine/**` | Core runtime — stable, out of scope | +| `integrations/**` | Integrations — stable, out of scope | +| `interactions/**` | Interactions — stable, out of scope | +| `palettes/**` | Palettes — stable, out of scope | +| `paths/**` | Path generators — stable, out of scope | +| `plugins/**` | Plugin packages — stable, out of scope | +| `presets/**` | Preset configs — stable, out of scope | +| `shapes/**` | Shape presets — stable, out of scope | +| `updaters/**` | Updaters — stable, out of scope | +| `utils/**` | Utility packages — stable, out of scope | + +**Violation policy**: If an agent touches a forbidden path, revert immediately and document the mistake. No exceptions. + +--- + +## Scope + +Implement reactive updates for wrapper components when `options`, `url`, or `theme` props change, and align Vue 3 guide docs with actual wrapper APIs. + +### In scope +- **Core wrappers**: `vue3`, `vue2`, `angular`, `solid`, `qwik`, `astro` +- **Website docs**: update all affected wrapper guide pages so behavior/docs match implemented v4 wrapper behavior (not only Vue 3). +- **Mandatory website set**: `websites/website/docs/guides/vue3.md` + all 9 translations under `websites/website/docs/{zh,ja,hi,ru,pt,fr,de,es,it}/guides/vue3.md`. +- **Wrapper READMEs**: update README files for all touched wrappers (`vue3`, `vue2`, `angular`, `solid`, `qwik`, `astro`) when behavior text is stale. + +### Extended alignment scope (mandatory audit + conditional implementation) +- Additional wrappers to audit and align when drift is found: `react`, `preact`, `svelte`, `stencil`, `lit`, `inferno`, `ember`, `riot`, `webcomponents`, `jquery`, `nextjs`, `nuxt2`, `nuxt3`, `nuxt4`, `angular-confetti`, `angular-fireworks`. +- These wrappers are not optional: each must be audited in execution, and if drift exists, implementation/demo/template/README alignment is required in-step. +- `wordpress` is explicitly excluded from this plan and is the only wrapper out of scope. + +### Out of scope +- New wrapper APIs beyond `theme` support already implied by runtime capability +- Engine-level typing changes for `Container` in this phase +- Unrelated guide files (React/Svelte/etc.) + +--- + +## Source of Truth (Critical) + +This project is on **v4** with breaking changes vs v3. + +Mandatory rules for implementing agents: +- **Do not rely on agent memory** for wrapper APIs or docs snippets. +- **Read the repository code first** (current branch state) before any change. +- Use tag **`v3.9.1` only as a comparison baseline** to understand what changed from v3 to v4. +- If memory and repository disagree, **repository wins**. + +**Critical finding from v3.9.1 diff**: The `wrappers/` directory does NOT exist in v3.9.1. All wrapper files are new in v4. There is no direct v3→v4 diff for wrapper files. The engine `Container.ts` was significantly refactored (`Canvas → CanvasManager`, `Particles → ParticlesManager`, new `ContainerParams`). Engine changes that affect wrappers: +- `tsParticles.load()` returns `Container | undefined` (v4) +- `Container` no longer has `loadTheme` (moved to optional plugin) +- Engine init now requires explicit `tsParticles.init()` call + +--- + +## Problem Statement + +Current wrapper behavior is inconsistent: +- Some wrappers only load particles on mount and ignore later prop changes +- `theme` support depends on optional plugin runtime injection (`@tsparticles/plugin-themes`) +- Vue 3 guide documents nonexistent component-level `:init` / `@particles-init` usage + +This creates broken expectations and stale examples. + +--- + +## Critical Constraints (Do Not Violate) + +1. **Theme plugin is optional (NON-NEGOTIABLE, MUST BE DOCUMENTED EVERYWHERE)** + - `container.loadTheme` exists **only** if `@tsparticles/plugin-themes` is loaded + - Without that plugin, `theme` must be a safe no-op (no crash, no throw) + - Must call safely with optional chaining + type narrowing/cast + - This caveat must be explicit in all updated docs/readmes touched by this work + +2. **`tsParticles.load()` can return `Container | undefined`** + - Must guard before emitting callbacks expecting `Container` + +3. **Vue 3 docs translation rule is mandatory** + - Any change in `websites/website/docs/guides/vue3.md` must be mirrored in all 9 translation files in the same PR + +4. **No fake APIs in docs** + - Remove `:init`, `@particles-init`, and any prose implying component-level `init` prop for Vue 3 wrapper + +5. **Wrapper behavior must be aligned (NON-NEGOTIABLE)** + - `id` change => destroy + reload particles + - `options` change => destroy + reload particles + - `url` change => destroy + reload particles + - This rule is mandatory for all 6 wrappers in scope; no wrapper-specific exceptions + +6. **Engine init must run once, components must wait** + - Engine/plugin init is one-time bootstrap work + - Particle components must wait until init is completed before calling `tsParticles.load` + +7. **Loaded callback timing is fixed** + - `particlesLoaded`/`loaded`/`onLoaded`/`onParticlesLoaded` must fire only **after** `tsParticles.load` resolves + - Callback must receive the resolved container (guarding `undefined` where needed) + +8. **Container cleanup on component destruction is mandatory** + - Component unmount/destroy must call container `destroy()` + - No orphan animations must remain active after component teardown + +--- + +## `loadTheme` Typing Contract (from Engine + Plugin) + +From `plugins/themes/src/types.ts`: +```ts +export type ThemesContainer = Container & { + actualOptions: ThemesOptions; + currentTheme?: string; + loadTheme?: (name?: string) => Promise; + // ... +}; +``` + +The `Container` class in `engine/src/Core/Container.ts` does NOT declare `loadTheme`. It is injected at runtime by `ThemesPluginInstance.init()` (line 55: `container.loadTheme = loadTheme`). + +**Safe invocation pattern (use in ALL wrappers):** +```ts +(container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(theme); +``` + +Note: The `as unknown as` double-cast is needed because `Container` and `ThemesContainer` are in different packages. Do NOT use global declaration merging — it causes cross-package type pollution. + +--- + +## Status Overview + +| Wrapper | Current Behavior | Reload `id/options/url` | `theme` prop | Loaded Callback | Destroy on Teardown | Priority | +|-------------|----------------------------------------|-----------------------------------------------|----------------------------|-----------------------------------------------------------------|-----------------------------------|----------| +| **Vue 3** | Mount-only load via provider gate | **Missing** (`theme` prop exists but ignored) | Prop exists, never applied | Emits `particlesLoaded` (ok) | Yes (`onUnmounted`) | **HIGH** | +| **Vue 2** | Mount-only load via `mounted` | **Missing** | **Missing** prop entirely | `particlesLoaded` prop (ok) | Yes (`beforeDestroy`) | **HIGH** | +| **Angular** | `ngAfterViewInit` only, no `OnChanges` | **Missing** | **Missing** `@Input` prop | `EventEmitter` (ok, but `Container` not `Container\|undefined`) | Yes (`ngOnDestroy`) | **HIGH** | +| **Solid** | `onMount` + `createResource`, one-shot | **Missing** (effect not tracked on props) | **Missing** prop | `particlesLoaded` fires (ok) | `onCleanup` | **HIGH** | +| **Qwik** | `useVisibleTask$`, one-shot | **Missing** (no tracking) | **Missing** prop | `loaded` QRL fires (ok) | `cleanup` | **HIGH** | +| **Astro** | Constructor load, one-shot | **Missing** (no observer) | **Missing** attribute | Global function call (ok) | No `disconnectedCallback` cleanup | **HIGH** | + +--- + +## Current State: Per-Wrapper Code Analysis + +### Vue 3 (`wrappers/vue3/src/components/vue-particles.vue`) — 72 lines + +**Current code**: +```vue + + + +``` + +**Current Props interface** (explicit via `defineProps`): +```ts +{ + id: string; // required + options?: ISourceOptions; + url?: string; + theme?: string; // EXISTS but NEVER USED +} +``` + +**Current Emits**: +```ts +{ + (e: "particlesLoaded", container?: Container): void; +} +``` + +**Provider**: `wrappers/vue3/src/components/particles-provider.ts` (92 lines) +- Uses `globalThis.__tsparticles_vue3_init_state__` singleton +- `initParticlesProvider()` calls `tsParticles.init()` after optional plugin registration +- `useParticlesProvider()` returns `{ loaded: boolean }` via Vue `inject` + +**Package entry**: `wrappers/vue3/src/components/index.ts` +- Exports: `VueParticles` (default), `IParticlesProviderContext`, `IParticlesProviderOptions`, `ParticlesPluginRegistrar` +- Does NOT export `useParticlesProvider` + +**Gaps**: +1. No watcher on `props.id` — changing id does nothing +2. No watcher on `props.options` — changing options does nothing +3. No watcher on `props.url` — changing url does nothing +4. `theme` prop exists but is never applied via `loadTheme` +5. `IParticlesProps` is `ISourceOptions` (wrong name — it shadows the props type) + +--- + +### Vue 2 (`wrappers/vue2/src/Particles/vue-particles.vue`) — 62 lines + +**Current code**: +```vue + + + +``` + +**Current props**: `id` (required), `options?`, `url?`, `particlesLoaded?` +**Missing `theme` prop**: not declared +**Gaps**: +1. No `theme` prop +2. No watchers on `id`, `options`, `url` +3. `export type IParticlesProps = ISourceOptions` — this creates `TS2528` (duplicate default export) in SFC compiler context because the component itself is the default export. Must be removed or inlined. +4. `particlesLoaded` callback type is `(container: Container) => void` but `tsParticles.load()` returns `Container | undefined` — type mismatch + +**Event bus** (`wrappers/vue2/src/Particles/event-bus.ts`): +- `ensureParticlesInitialization(init?)` — runs optional init callback, sets `initialized = true` +- Does NOT call `tsParticles.init()` — this is a v3→v4 gap! In v4, `tsParticles.init()` must be called after plugin registration + +--- + +### Angular (`wrappers/angular/projects/ng-particles/src/lib/ng-particles.component.ts`) — 55 lines + +**Current code**: +```ts +import { AfterViewInit, Component, EventEmitter, Inject, Input, OnDestroy, Output, PLATFORM_ID } from "@angular/core"; +import { isPlatformServer } from "@angular/common"; +import { tsParticles } from "@tsparticles/engine"; +import type { Container } from "@tsparticles/engine"; +import { IParticlesProps } from "./ng-particles.module"; +import { NgParticlesService } from "./ng-particles.service"; + +@Component({ + selector: "ngx-particles", + standalone: false, + template: '
', +}) +export class NgxParticlesComponent implements AfterViewInit, OnDestroy { + @Input() options?: IParticlesProps; + @Input() url?: string; + @Input() id = "tsparticles"; + @Output() particlesLoaded: EventEmitter = new EventEmitter(); + + #container?: Container; + #loadingPromise?: Promise; + readonly #particlesService: NgParticlesService; + + constructor( + @Inject(PLATFORM_ID) protected platformId: string, + particlesService: NgParticlesService, + ) { + this.#particlesService = particlesService; + } + + public ngAfterViewInit(): void { + if (isPlatformServer(this.platformId)) { return; } + this.#loadingPromise = this.#loadParticles(); + } + + public ngOnDestroy(): void { + this.#container?.destroy(); + this.#loadingPromise = undefined; + } + + async #loadParticles(): Promise { + await this.#particlesService.waitForInitialization(); + this.#particlesService.assertInitialized(); + this.#container?.destroy(); + const container = await tsParticles.load({ id: this.id, options: this.options, url: this.url }); + this.#container = container; + this.particlesLoaded.emit(container); // BUG: emits Container | undefined as Container + } +} +``` + +**Current `@Input()`**: `options?`, `url?`, `id` (default `"tsparticles"`) +**Missing `@Input()`**: `theme?` +**Missing interface**: `OnChanges` — no `ngOnChanges` implemented +**Gaps**: +1. No `ngOnChanges` — prop changes silently ignored +2. No `theme` input +3. `particlesLoaded` emitter is typed `EventEmitter` but should be `EventEmitter` (or emit guard) +4. Service (`ng-particles.service.ts`) does NOT call `tsParticles.init()` — v4 gap + +**Service** (`ng-particles.service.ts`): +```ts +public async init(particlesInit?: ParticlesPluginRegistrar): Promise { + // calls particlesInit(tsParticles) + // sets initialized = true + // Does NOT call tsParticles.init() — MISSING in v4 +} +``` + +--- + +### Solid (`wrappers/solid/src/Particles.tsx`) — 53 lines + +**Current code**: +```tsx +import { tsParticles } from "@tsparticles/engine"; +import { createEffect, createResource, JSX, mergeProps, on, onCleanup, onMount } from "solid-js"; +import type { IParticlesProps } from "./IParticlesProps"; +import { isParticlesEngineInitialized, waitForParticlesEngineInitialization } from "./initParticlesEngine"; + +const Particles = (props: IParticlesProps): JSX.Element => { + const config = mergeProps({ id: "tsparticles" }, props); + + onMount(() => { + const [container] = createResource( + () => ({ + id: config.id, + options: config.params ?? config.options ?? {}, + url: config.url, + }), + async data => { + await waitForParticlesEngineInitialization(); + if (!isParticlesEngineInitialized()) { + throw new Error("..."); + } + return tsParticles.load(data); + }, + ); + + createEffect( + on(container, container => { + if (!container) return; + config.particlesLoaded?.(container); + onCleanup(() => container.destroy()); + }), + ); + }); + + return ( +
+ +
+ ); +}; +``` + +**Current props** (`IParticlesProps.ts`): +```ts +export interface IParticlesProps { + id?: string; + width?: string; + height?: string; + options?: ISourceOptions; + url?: string; + params?: ISourceOptions; + style?: JSX.CSSProperties; + class?: string; + canvasClass?: string; + container?: { current: Container }; + particlesLoaded?: (container: Container) => Promise; +} +``` + +**Gaps**: +1. `onMount` is one-shot — no reactivity to prop changes +2. `createResource` is not keyed on `props.id`, `props.options`, `props.url` — no reload +3. No `theme` prop in `IParticlesProps` +4. `particlesLoaded` type is `(container: Container) => Promise` should be `(container?: Container) => Promise` +5. Cleanup via `onCleanup` inside `createEffect` only fires when container resource changes, not on component unmount proper. Need explicit `onCleanup` at top level. + +--- + +### Qwik (`wrappers/qwik/src/components/particles/particles.tsx`) — 63 lines + +**Current code**: +```tsx +import { NoSerialize, component$, noSerialize, useVisibleTask$ } from "@builder.io/qwik"; +import { Container, tsParticles } from "@tsparticles/engine"; +import type { IParticlesProps } from "./IParticlesProps"; +import { isParticlesEngineInitialized, waitForParticlesEngineInitialization } from "./initParticlesEngine"; + +const Particles = component$(props => { + const librarySig: { value: NoSerialize } = { value: undefined }; + const id = props.id ?? "tsparticles"; + const { class: className, canvasClassName, height, width, loaded } = props; + + useVisibleTask$(function Initializer({ cleanup }) { + void (async () => { + await waitForParticlesEngineInitialization(); + if (!isParticlesEngineInitialized()) { + throw new Error("..."); + } + const container = await tsParticles.load({ + url: props.url, id, options: props.options ?? props.params, + }); + if (props.container) { + props.container.value = noSerialize(container); + } + librarySig.value = noSerialize(container); + if (loaded) { + await loaded(container); + } + })(); + + cleanup(() => { + if (librarySig.value) { + librarySig.value.destroy(); + librarySig.value = undefined; + } + }); + }); + + // render... +}); +``` + +**Current props** (`IParticlesProps.ts`): +```ts +export interface IParticlesProps { + id?: string; + width?: number | string; + height?: number | string; + options?: ISourceOptions; + url?: string; + params?: ISourceOptions; + style?: CSSProperties; + class?: ClassList | Signal; + canvasClassName?: ClassList | Signal; + container?: Signal>; + loaded?: QRL<(container?: Container) => Promise>; +} +``` + +**Gaps**: +1. `useVisibleTask$` runs once when element becomes visible — does NOT re-run on prop changes +2. No `theme` prop in `IParticlesProps` +3. No tracking mechanism for `props.id`, `props.options`, `props.url` changes +4. In Qwik, signals must be tracked explicitly. Need `useVisibleTask$` with tracker function or `$track` to observe prop changes + +--- + +### Astro (`wrappers/astro/src/Particles.astro`) — 79 lines + +**Current code**: +```astro +--- +import type { Container, ISourceOptions } from "@tsparticles/engine"; + +export interface IParticlesProps { + id: string; + loaded?: string; + options?: ISourceOptions; + url?: string; +} + +const { id, loaded, options, url } = Astro.props as IParticlesProps; +--- + + + + + + +``` + +**Gaps**: +1. Constructor-only load — no `connectedCallback` or `attributeChangedCallback` +2. No `observedAttributes` — Astro particles are rendered via data attributes but changes are not observed +3. No `disconnectedCallback` — no cleanup when element is removed from DOM +4. No `theme` support (no `data-theme` attribute, no `loadTheme` call) +5. `dataset.options` is a JSON string — must re-parse on every attribute change +6. Async race: multiple constructor calls could overlap (the custom element constructor runs once, but attribute changes later have no handler) +7. The `globalStore` pattern for `loaded` callback is fragile — uses `window` global + +--- + +## Extended Wrappers: Current State (Inferno/Lit/Riot/WebComponents/React) + +### Inferno (`wrappers/inferno/src/Particles.tsx`) — ALREADY has reload! + +**Current state** (actually already has reactive reload via `componentDidUpdate`): +```tsx +componentDidUpdate(prevProps: IParticlesProps) { + if ( + prevProps.id !== this.props.id || + prevProps.url !== this.props.url || + prevProps.options !== this.props.options + ) { + void this.reloadContainer(); + } +} +``` + +**But**: No `theme` prop. `loaded` callback exists in props but is NOT called after load (only `particlesLoaded` — actually neither is called in current code!). `loadContainer()` does NOT fire any callback. + +**Gaps**: +1. No `loaded`/`particlesLoaded` callback invocation after `tsParticles.load` +2. No `theme` prop +3. No safe `loadTheme` apply + +**Props type** (`IParticlesProps.ts`): +```ts +export interface IParticlesProps { + id?: string; width?: string; height?: string; + options?: ISourceOptions; url?: string; params?: ISourceOptions; + className?: string; canvasClassName?: string; style?: Record; + container?: { current?: Container }; + loaded?: (container?: Container) => Promise | void; + particlesLoaded?: (container?: Container) => Promise | void; +} +``` + +--- + +### Lit (`wrappers/lit/src/lit-tsparticles.ts`) — ALREADY has reload! + +**Current state** (reload via `update()` lifecycle): +```ts +update(changedProperties: PropertyValues) { + super.update(changedProperties); + void this.#loadParticles(++this.#renderId); +} + +async #loadParticles(currentRenderId: number): Promise { + // ... destroy old, load new, check renderId for stale race +} +``` + +**Gaps**: +1. No `theme` property +2. No `loadTheme` invocation +3. No loaded notification event/callback (container assigned but no event fired) + +**Current properties**: `id`, `options`, `url` +**Missing**: `theme`, loaded notification + +--- + +### Riot (`wrappers/riot/src/riot-particles.riot`) — Mount-only + +**Current state**: +```riot +export default { + async onMounted(props) { + // ... one-shot load + } +} +``` + +**Gaps**: +1. No reactivity (Riot doesn't have built-in watchers; would need manual attribute observer) +2. No `theme` prop +3. `particlesLoaded` callback uses `tsParticles.dom().find(...)` for old container cleanup (v3 pattern) +4. Teardown: no explicit container destroy on unmount + +**Props**: `id`, `options`, `url`, `particlesLoaded` + +--- + +### WebComponents (`wrappers/webcomponents/src/Particles.ts`) — Partial reload + +**Current state** (has observers but incomplete): +```ts +static get observedAttributes(): string[] { + return ["url", "options"]; +} + +// Has setters: this.url, this.options — but they don't reload! +// Missing: "id" in observedAttributes +// Missing: theme attribute +``` + +**Gaps**: +1. `id` changes are NOT observed (missing from `observedAttributes`) +2. No `theme` attribute support +3. `attributeChangedCallback` stores values but doesn't trigger reload directly for all paths — setters DO trigger reload via `#loadParticles`, but attribute changes don't always propagate +4. Constructor dispatches `particlesInit` event with engine (but that event doesn't exist in v4) +5. `connectedCallback` calls `#loadParticles` — reload works for initial render + +--- + +### React (`wrappers/react/lib/Particles.tsx`) — Already reactive + +**Current state** (reload via `useEffect` dependencies): +```tsx +useEffect(() => { + if (!loaded) return; + tsParticles.load({ id: particleId, url, options }).then(c => { /* ... */ }); + return () => { containerRef.current?.destroy(); }; +}, [id, loaded, options, particlesLoaded, url]); +``` + +**Gaps**: +1. No `theme` prop or `loadTheme` support +2. `particlesLoaded` type in `IParticlesProps.ts` is `(container?: Container) => Promise | void` — ok, but docs/README props table is incomplete (missing `particlesLoaded` entry) + +--- + +## Canonical Wrapper Contract (Target Behavior) + +All wrappers must implement this behavior (framework syntax differs): + +### 1. Init contract +- Engine/plugin init is triggered once at app/bootstrap level. +- Wrapper components wait for init completion before loading particles. + +### 2. Reactivity contract +- `id` change => destroy + reload +- `options` change => destroy + reload +- `url` change => destroy + reload +- Reload path is deterministic and idempotent + +### 3. Theme contract +- `theme` prop/attribute exists in wrappers. +- `loadTheme` is optional runtime capability requiring `@tsparticles/plugin-themes`. +- Without plugin, `theme` updates are safe no-op. +- Invocation: `(container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(theme)` + +### 4. Loaded callback contract +- Event/callback (`particlesLoaded` / `loaded` / framework equivalent) is emitted after successful `tsParticles.load` resolution. +- Callback receives `Container | undefined`. + +### 5. Destroy contract +- On component teardown, wrapper calls `container.destroy()`. +- No orphan animations remain. + +--- + +## Implementation Steps + Status + +### Completion Rule (non-negotiable) + +Each wrapper step is considered **Done** only when all related artifacts are aligned together: + +1. Wrapper implementation (reactivity + theme + lifecycle) +2. Wrapper demo(s) aligned with final API and behavior +3. Wrapper template(s) checked and aligned (or explicitly marked N/A if none exist) +4. Wrapper README aligned with the implemented behavior + +This plan therefore uses **one wrapper per step**. No multi-wrapper implementation steps. + +Website docs are intentionally batched at the end for efficiency, while wrapper-specific context stays inside each wrapper step (README + demo + template checks are in-step requirements). + +### Per-step substep template (apply to every wrapper step S1-S17) + +- `a` Wrapper code changes (`id/options/url` reload, theme safety, teardown, init wait) +- `b` Demo alignment for that wrapper family +- `c` Template alignment check (or explicit N/A note) +- `d` Wrapper README alignment +- `e` Verification (`pnpm --filter build` + smoke behavior checks) + +No wrapper step can be marked complete unless all five substeps are complete. + +### A1 audit template (special step) + +`A1` is an upfront analysis step and uses this output contract: + +- Wrapper audited +- Drift found: `yes/no` +- Evidence (file refs + short rationale) +- Action: `queue X-step` or `no-change` +- If `queue X-step`: list exact files likely to change + +`A1` must complete before any `S12-S17` implementation step starts. + +### A1 Audit Decision Matrix (completed) + +| Wrapper | Drift | Evidence | Decision | +|---------|-------|----------|----------| +| preact | yes | `wrappers/preact/src/IParticlesProps.ts` callback typed `(container: Container)`; no `theme` prop | Activate `S12` | +| svelte | yes | `wrappers/svelte/src/lib/Particles.svelte` reloads on every `afterUpdate`; no `theme` handling | Done `S13` | +| stencil | yes | `wrappers/stencil/src/components/stencil-particles/stencil-particles.tsx` has no `theme` prop and no loaded callback/event | Activate `S14` | +| ember | yes | `wrappers/ember/addon/modifiers/particles.ts` no `theme`; repeated `modify()` may stack destructors without explicit pre-destroy | Activate `S15` | +| jquery | yes | `wrappers/jquery/src/particles.ts` has `load/ajax` only, no theme pathway nor theme docs alignment | Activate `S16` | +| nextjs | no | `wrappers/nextjs/lib/index.tsx` is thin client-only re-export over `@tsparticles/react` | Close `X6` as no-change | +| nuxt2 | no | `wrappers/nuxt2/lib/index.ts` only installs Vue3 plugin via module; no direct wrapper lifecycle | Close `X7` as no-change | +| nuxt3 | no | `wrappers/nuxt3/lib/index.ts` only installs Vue3 plugin via module; no direct wrapper lifecycle | Close `X8` as no-change | +| nuxt4 | no | `wrappers/nuxt4/lib/index.ts` only installs Vue3 plugin via module; no direct wrapper lifecycle | Close `X9` as no-change | +| angular-confetti | no | `wrappers/angular-confetti/projects/ng-confetti/src/lib/ng-confetti.component.ts` is event-like fire wrapper with explicit trigger semantics | Close `X10` as no-change | +| angular-fireworks | yes | `wrappers/angular-fireworks/projects/ng-fireworks/src/lib/ng-fireworks.component.ts` lacks `OnChanges`; input changes not reapplied | Activate `S17` | + +Implementation gate from A1: +- Execute: `S12`, `S13`, `S14`, `S15`, `S16`, `S17`. +- No-change (closed with evidence): `X6` (Next.js), `X7` (Nuxt 2), `X8` (Nuxt 3), `X9` (Nuxt 4), `X10` (Angular-confetti). + +## No-Change Summary (A1 Audit Closure) + +These wrappers were audited and require no implementation work. Evidence is documented in the A1 decision matrix above. + +| Wrapper | Evidence | +|---------|----------| +| Next.js (X6) | `wrappers/nextjs/lib/index.tsx` — thin client-only re-export of `@tsparticles/react`, no direct lifecycle | +| Nuxt 2 (X7) | `wrappers/nuxt2/lib/index.ts` — module only installs Vue3 plugin, no direct wrapper lifecycle | +| Nuxt 3 (X8) | Same pattern as Nuxt 2 | +| Nuxt 4 (X9) | Same pattern as Nuxt 2 | +| Angular-confetti (X10) | `wrappers/angular-confetti/projects/ng-confetti/src/lib/ng-confetti.component.ts` — event-like fire wrapper with explicit trigger semantics, not a generic particles component | + +These steps are **closed** and do not appear in any execution table. + +--- + +## Agent Execution Protocol (mandatory) + +This plan is designed for distributed execution by multiple agents. Follow this protocol to avoid drift and overlap. + +### 1) Ownership model +- One agent owns exactly one step at a time. +- No agent may edit files outside its owned step, except `S20` and `S21` owner agents. +- If cross-step edits are discovered as necessary, agent must report them as "Follow-up required" instead of editing outside ownership. + +### 2) Step completion contract +An agent can mark a step complete only if all are true: +- Wrapper implementation substep is complete. +- Demo alignment substep is complete (or explicit `N/A` with reason). +- Template alignment substep is complete (or explicit `N/A` with reason). +- README alignment substep is complete. +- Verification commands executed and passed (or failure documented with logs). + +### 3) Standard agent handoff output +Every agent must return results in this structure: + +```md +Step: Sx +Status: done | partial | blocked + +Files changed: +- path/to/file1 +- path/to/file2 + +Substep status: +- a Wrapper implementation: done/partial/blocked +- b Demo alignment: done/partial/blocked (or N/A: reason) +- c Template alignment: done/partial/blocked (or N/A: reason) +- d README alignment: done/partial/blocked +- e Verification: done/partial/blocked + +Verification executed: +- +- + +Behavior deltas: +- ... + +Known risks / follow-ups: +- ... +``` + +### 4) Parallelization waves (recommended) +- **Wave 1**: all wrapper implementation steps in parallel — `S1-S17`. +- **Wave 2**: `S18` then `S19` (strictly sequential — EN docs first, then 9 translations). +- **Wave 3**: `S20` validation. +- **Wave 4**: `S21` final handoff. + +### 5) Conflict avoidance +- `S18`/`S19` are the only steps allowed to edit `websites/website/docs/**/guides/vue3.md`. +- Each wrapper step edits only its wrapper package + mapped demo + mapped README. +- `S20` does not change implementation unless explicitly requested; it validates and reports. + +### 6) Failure policy +- If verification fails, step status is `partial` (not `done`). +- If blocked by external dependency, status is `blocked` with exact blocker and next action. +- Never silently skip demo/template/README substeps. + +--- + +## Per-Wrapper Implementation Details + +--- + +### S1 — Vue 3 wrapper ✅ COMPLETED + +**Files modified**: +| File | Change | +|------|--------| +| `wrappers/vue3/src/components/vue-particles.vue` | Added watchers for `id`/`options`/`url` → destroy+reload; added `theme` watcher + initial apply; removed stale `IParticlesProps` export | +| `demo/vue3/src/App.vue` | Rewrote with reactive config pills switching `:options` binding, `@particles-loaded` event, `:theme` prop binding | +| `wrappers/vue3/README.md` | Fully documented reactive behavior, theme plugin caveat, loaded callback, teardown | + +**Files unchanged (plan candidate, not needed)**: +- `wrappers/vue3/src/components/index.ts` — no export changes needed; `IParticlesProps` removal was sufficient + +**What was implemented**: + +| Requirement | Implementation | +|---|---| +| `id` change → destroy + reload | `watch(() => props.id, ...)` calls `loadParticles()` | +| `options` change → destroy + reload | `watch(() => props.options, ..., { deep: true })` calls `loadParticles()` | +| `url` change → destroy + reload | `watch(() => props.url, ...)` calls `loadParticles()` | +| `theme` change → safe `loadTheme` | `watch(() => props.theme, ...)` with `(container as unknown as { loadTheme?: ... }).loadTheme?.(newTheme)` | +| Initial theme applied after load | `if (container && props.theme) { ... loadTheme?.(props.theme) }` inside `loadParticles()` | +| `particlesLoaded` emit guard | Emit signature `(e: "particlesLoaded", container?: Container)` — already correct | +| Teardown destroys container | `onUnmounted(() => { container?.destroy(); container = undefined })` — already present, unchanged | + +**Substep verification**: +- a (wrapper code): ✅ — `vue-particles.vue` updated with all watchers + initial theme +- b (demo alignment): ✅ — `App.vue` rewritten with reactive pill-based config switching +- c (template check): ✅ — N/A (no Vue 3 templates exist in repo) +- d (README alignment): ✅ — full rewrite covering all contract points +- e (build): ✅ — `pnpm --filter @tsparticles/vue3 build` succeeds + +--- + +### S2 — Vue 2 wrapper (✅ DONE) + +**Files modified**: +- `wrappers/vue2/src/Particles/vue-particles.vue` +- `wrappers/vue2/src/Particles/event-bus.ts` + +**What was implemented**: + +| Requirement | Implementation | +|---|---| +| `id` change → destroy + reload | `@Watch("id")` calls `particlesInit(this)` when `this.container` exists | +| `options` change → destroy + reload | `@Watch("options")` calls `particlesInit(this)` when `this.container` exists | +| `url` change → destroy + reload | `@Watch("url")` calls `particlesInit(this)` when `this.container` exists | +| `theme` change → safe `loadTheme` | `@Watch("theme")` with `(this.container as unknown as { loadTheme?: ... }).loadTheme?.(newTheme)` | +| Initial theme applied after load | `if (container && component.theme) { ... loadTheme?.(component.theme) }` inside `particlesInit()` | +| `IParticlesProps` export removed | Removed `export type IParticlesProps = ISourceOptions;` — used `ISourceOptions` directly in prop type | +| `particlesLoaded` type guard | Changed prop type to `(container?: Container) => void`, cb guards `if (container && component.particlesLoaded)` | +| `tsParticles.init()` call | Added `.then(() => tsParticles.init())` in `ensureParticlesInitialization()` in event-bus.ts | +| Teardown destroys container | `beforeDestroy()` calls `this.container?.destroy()` — unchanged | + +**Substep verification**: +- a (wrapper code): ✅ — `vue-particles.vue` updated with all watchers + initial theme + event-bus init fix +- b (demo alignment): ✅ — `App.vue` rewritten with reactive pill-based config switching +- c (template check): ✅ — N/A (no Vue 2 templates exist in repo) +- d (README alignment): ✅ — full rewrite covering all contract points +- e (build): ✅ — `pnpm --filter @tsparticles/vue2 build` succeeds (2 pre-existing TS warnings) + +--- + +### S3 — Angular wrapper + +**Files to modify**: +- `wrappers/angular/projects/ng-particles/src/lib/ng-particles.component.ts` +- `wrappers/angular/projects/ng-particles/src/lib/ng-particles.service.ts` (add `tsParticles.init()`) +- `wrappers/angular/projects/ng-particles/src/lib/ng-particles.module.ts` (add `theme` to `IParticlesProps` if needed — it's `ISourceOptions` which doesn't have it) + +**Changes needed**: + +#### 4a: Implement `OnChanges` interface + +```ts +import { OnChanges, SimpleChanges } from "@angular/core"; + +export class NgxParticlesComponent implements AfterViewInit, OnDestroy, OnChanges { + // ... + public ngOnChanges(changes: SimpleChanges): void { + if (!this.#container) { + return; // not loaded yet; ngAfterViewInit will handle initial load + } + if (changes["id"] || changes["options"] || changes["url"]) { + void this.#loadParticles(); + } + if (changes["theme"]) { + (this.#container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(changes["theme"].currentValue); + } + } +} +``` + +**Risk**: `ngOnChanges` fires before `ngAfterViewInit`. Guard with `this.#container` check — if `#container` is undefined, skip reload (initial load happens in `ngAfterViewInit`). + +**Risk**: `ngOnChanges` with `options` object — Angular `OnChanges` uses reference equality for objects. This is fine IF the user provides a new options object reference. Does not support deep mutation detection. + +#### 4b: Add `theme` input + +```ts +@Input() theme?: string; +``` + +#### 4c: Fix `particlesLoaded` emitter type + +```ts +@Output() particlesLoaded: EventEmitter = new EventEmitter(); +``` + +Or guard: +```ts +const container = await tsParticles.load({ id: this.id, options: this.options, url: this.url }); +this.#container = container; +if (container) { + this.particlesLoaded.emit(container); +} +``` + +#### 4d: Fix service — add `tsParticles.init()` + +```ts +initPromise = (async () => { + if (particlesInit) { + await particlesInit(tsParticles); + } + await tsParticles.init(); // ADD THIS for v4 + initialized = true; +})().catch(...); +``` + +**Verification**: +- `pnpm --filter @tsparticles/angular build` +- Manual: change options binding, verify reload + +#### S3.b: Demo alignment +- Align `demo/angular/src/app/app.component.html` and `demo/angular/src/app/app.component.ts` with final behavior. +- Keep `*ngIf` only as optional visibility control (not as reactivity workaround). + +#### S3.c: Template alignment +- Verify whether Angular templates/scaffolds exist for this wrapper family. +- If none exist, record explicit `N/A` in implementation notes. + +#### S3.d: README alignment +- Update `wrappers/angular/README.md` with `theme` input and reload contract. + +#### S3.e: Completion gate +- Mark S3 complete only when S3.a-S3.d are done and verification passes. + +--- + +### S4 — Solid wrapper + +**Files to modify**: +- `wrappers/solid/src/Particles.tsx` +- `wrappers/solid/src/IParticlesProps.ts` + +**Changes needed**: + +#### 5a: Track `id`, `options`, `url` reactively + +```tsx +import { createEffect, createMemo, onCleanup } from "solid-js"; + +// Replace onMount with createEffect that tracks prop signals: +const loadParams = createMemo(() => ({ + id: props.id ?? "tsparticles", + options: props.options ?? props.params, + url: props.url, + theme: props.theme, +})); + +createEffect(async () => { + const params = loadParams(); + + // Clean up previous container first + // (onCleanup runs on disposal, but we need to destroy before creating a new one) + // Use a manual approach: + + // Actually in Solid, we need to use onCleanup inside the tracking scope + // or manage the container lifecycle manually +}); +``` + +**Recommended pattern** — use `on` with a merged key to observe changes: + +```tsx +let container: Container | undefined; +let previousId: string | undefined; + +createEffect(on( + () => [props.id, props.options, props.url] as const, + async ([id, options, url]) => { + // destroy previous + container?.destroy(); + + await waitForParticlesEngineInitialization(); + if (!isParticlesEngineInitialized()) throw new Error("..."); + + container = await tsParticles.load({ + id: id ?? "tsparticles", + options: options ?? props.params, + url, + }); + + props.particlesLoaded?.(container); + }, + { defer: false }, +)); + +// Theme effect +createEffect(on( + () => props.theme, + (theme) => { + if (!container || !theme) return; + (container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(theme); + }, +)); + +// Cleanup on unmount +onCleanup(() => { + container?.destroy(); +}); +``` + +#### 5b: Add `theme` to `IParticlesProps` + +```ts +export interface IParticlesProps { + // ... existing props + theme?: string; +} +``` + +#### 5c: Fix `particlesLoaded` type + +```ts +particlesLoaded?: (container?: Container) => Promise; +``` + +**Verification**: +- `pnpm --filter @tsparticles/solid build` + +#### S4.b: Demo alignment +- Align `demo/solid/src/App.tsx` by removing conditional mount workaround. +- Ensure demo shows runtime config switching via prop updates. + +#### S4.c: Template alignment +- Verify whether Solid templates exist for this wrapper family. +- If none exist, record explicit `N/A` in implementation notes. + +#### S4.d: README alignment +- Update `wrappers/solid/README.md` (including corrected `particlesLoaded` signature). + +#### S4.e: Completion gate +- Mark S4 complete only when S4.a-S4.d are done and verification passes. + +--- + +### S5 — Qwik wrapper + +**Files to modify**: +- `wrappers/qwik/src/components/particles/particles.tsx` +- `wrappers/qwik/src/components/particles/IParticlesProps.ts` + +**Changes needed**: + +#### 6a: Track `id`, `options`, `url` reactively in `useVisibleTask$` + +In Qwik, `useVisibleTask$` runs once. To track prop changes, use the `track` function or use `useTask$` from `@builder.io/qwik` (not `useVisibleTask$` only). + +```tsx +import { component$, useVisibleTask$, useTask$, $, noSerialize } from "@builder.io/qwik"; + +const Particles = component$(props => { + const librarySig = useSignal>(); + + // Use useTask$ to track prop changes (runs eagerly) + useTask$(({ track, cleanup }) => { + const id = track(() => props.id) ?? "tsparticles"; + const options = track(() => props.options); + const url = track(() => props.url); + + cleanup(() => { + const c = librarySig.value; + if (c) { + c.destroy(); + librarySig.value = undefined; + } + }); + + // Async loading... + const load = $(async () => { + await waitForParticlesEngineInitialization(); + if (!isParticlesEngineInitialized()) throw new Error("..."); + + // Destroy old before creating new + const old = librarySig.value; + if (old) { + old.destroy(); + librarySig.value = undefined; + } + + const container = await tsParticles.load({ + id, options: options ?? props.params, url, + }); + + librarySig.value = noSerialize(container); + if (props.loaded) { + await props.loaded(container); + } + }); + + void load(); + }); + + // Also track theme changes separately + useTask$(({ track }) => { + const theme = track(() => props.theme); + const container = librarySig.value; + + if (!container || !theme) return; + (container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(theme); + }); + + // Also do cleanup on unmount via useVisibleTask$ + useVisibleTask$(function Cleanup({ cleanup }) { + cleanup(() => { + const c = librarySig.value; + if (c) { + c.destroy(); + librarySig.value = undefined; + } + }); + }); +}); +``` + +**Important Qwik detail**: `useTask$` runs on the server too! Guard with `useVisibleTask$` for client-only code OR use `useTask$` with `{ eagerness: 'visible' }`. Better pattern: use `useTask$` with `{ eagerness: 'load' }` or combine strategies. + +**Alternative**: `useVisibleTask$` with a tracker: + +```tsx +useVisibleTask$(function Initializer({ track, cleanup }) { + const id = track(() => props.id) ?? "tsparticles"; + const options = track(() => props.options); + const url = track(() => props.url); + // ... load +}); +``` + +**But**: `useVisibleTask$` with `track()` is the correct Qwik pattern for reactive re-execution. When tracked values change, the cleanup runs, then the task re-executes. + +#### 6b: Add `theme` to `IParticlesProps` + +```ts +export interface IParticlesProps { + // ... existing props + theme?: string; +} +``` + +**Verification**: +- `pnpm --filter @tsparticles/qwik build` + +#### S5.b: Demo alignment +- Align `demo/qwik/src/root.tsx` by removing conditional mount workaround. +- Ensure demo demonstrates reactive updates without remount. + +#### S5.c: Template alignment +- Verify whether Qwik templates exist for this wrapper family. +- If none exist, record explicit `N/A` in implementation notes. + +#### S5.d: README alignment +- Update `wrappers/qwik/README.md` with theme caveat and reload contract. + +#### S5.e: Completion gate +- Mark S5 complete only when S5.a-S5.d are done and verification passes. + +--- + +### S6 — Astro wrapper + +**Files to modify**: +- `wrappers/astro/src/Particles.astro` + +**Changes needed**: + +#### 7a: Move from constructor-only to `connectedCallback` + `attributeChangedCallback` + +```astro + +``` + +#### 7b: Add `data-theme` attribute to template + +```astro + + + +``` + +#### 7c: Add `theme` to `IParticlesProps` in frontmatter + +```ts +export interface IParticlesProps { + id: string; + loaded?: string; + options?: ISourceOptions; + url?: string; + theme?: string; // ADD +} + +const { id, loaded, options, url, theme } = Astro.props as IParticlesProps; +``` + +**Risks**: +- `attributeChangedCallback` fires before `connectedCallback` for initial attributes. Guard with `this.isConnected`. +- `JSON.parse` on every attribute change is expensive for large options. Consider caching the parsed object. + +**Verification**: +- `pnpm --filter @tsparticles/astro build` +- Smoke test: change data attributes on the custom element, verify reload + +#### S6.b: Demo alignment +- Align `demo/astro/src/pages/index.astro` with attribute-driven reactivity. +- Verify connect/disconnect lifecycle behavior in navigation. + +#### S6.c: Template alignment +- Verify whether Astro templates exist for this wrapper family. +- If none exist, record explicit `N/A` in implementation notes. + +#### S6.d: README alignment +- Update `wrappers/astro/README.md` with `theme` prop and lifecycle/reload contract. + +#### S6.e: Completion gate +- Mark S6 complete only when S6.a-S6.d are done and verification passes. + +--- + +### S7 — Inferno wrapper + +#### S7.a: Wrapper implementation + +**File**: `wrappers/inferno/src/Particles.tsx` + +Current `loadContainer` does NOT invoke any loaded callback after `tsParticles.load`. Fix: + +```ts +async loadContainer() { + try { + await waitForParticlesEngineInitialization(); + if (this._cancelled) return; + + const { id, url, options, loaded, particlesLoaded } = this.props; + this._container = await tsParticles.load({ id: id ?? "tsparticles", url, options }); + + // Invoke loaded callbacks + if (this._container) { + await loaded?.(this._container); + await particlesLoaded?.(this._container); + } + } catch (e) { + getLogger().error("Particles: error during load", e); + } +} +``` + +Also add `theme` handling: +- Add `@Prop() theme?: string` to props interface +- In `componentDidUpdate`, check for theme change +- Safe `loadTheme` call + +#### S7.b: Demo alignment +- Verify inferno demo behavior (if present) is consistent with wrapper contract. +- If no inferno demo exists, record explicit `N/A`. + +#### S7.c: Template alignment +- Verify whether Inferno templates exist. +- If none exist, record explicit `N/A`. + +#### S7.d: README alignment +- Update `wrappers/inferno/README.md` to reflect callback semantics, optional theme plugin, and reload/teardown behavior. + +#### S7.e: Completion gate +- Mark S7 complete only when S7.a-S7.d are done and verification passes. + +### S8 — Lit wrapper + +#### S8.a: Wrapper implementation + +**File**: `wrappers/lit/src/lit-tsparticles.ts` + +Current `#loadParticles` assigns `this.container = container` but fires no event. Fix: + +```ts +async #loadParticles(currentRenderId: number): Promise { + // ... existing load logic ... + + this.container = container; + + if (container) { + // Dispatch loaded event + this.dispatchEvent(new CustomEvent("particlesLoaded", { + detail: container, + bubbles: true, + composed: true, + })); + } +} +``` + +#### S8.b: Demo alignment +- Verify lit demo behavior (if present) is aligned with the event contract. +- If no lit demo exists, record explicit `N/A`. + +#### S8.c: Template alignment +- Verify whether Lit templates exist. +- If none exist, record explicit `N/A`. + +#### S8.d: README alignment +- Update `wrappers/lit/README.md` with `particlesLoaded` event behavior and optional theme caveat. + +#### S8.e: Completion gate +- Mark S8 complete only when S8.a-S8.d are done and verification passes. + +Also add `theme` property: +```ts +@property({ type: String }) +theme?: string; +``` + +And a theme watcher in `update()`: +```ts +update(changedProperties: PropertyValues) { + super.update(changedProperties); + + if (changedProperties.has("theme") && this.container) { + const theme = changedProperties.get("theme") as string | undefined; + (this.container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(theme); + } + + if (changedProperties.has("options") || changedProperties.has("url") || changedProperties.has("id")) { + void this.#loadParticles(++this.#renderId); + } +} +``` + +### S9 — Riot wrapper + +#### S9.a: Wrapper implementation + +**File**: `wrappers/riot/src/riot-particles.riot` + +Current: no reload, no destroy on unmount. + +Fix: Riot components use `onMounted`, `onUnmounted`, `onUpdated` lifecycle hooks. The `export default { onMounted(props) { ... } }` only has `onMounted`. Need to add `onUpdated` for prop changes: + +```riot +export default { + async onMounted(props) { + // ... initial load (unchanged, but fix teardown) + }, + onUnmounted(props) { + // Destroy container + if (oldId) { + const oldContainer = tsParticles.dom().find((c) => c.id === oldId); + if (oldContainer) { + oldContainer.destroy(); + } + } + }, + onUpdated(props) { + // Check for prop changes and reload + if (oldId && (props.options !== oldId._options || props.url !== oldId._url)) { + // ... reload + } + } +} +``` + +**Riot caveat**: Riot components don't have automatic deep comparison. Manual tracking needed. + +#### S9.b: Demo alignment +- Verify riot demo behavior (if present) is aligned with reload + teardown contract. +- If no riot demo exists, record explicit `N/A`. + +#### S9.c: Template alignment +- Verify whether Riot templates exist. +- If none exist, record explicit `N/A`. + +#### S9.d: README alignment +- Update `wrappers/riot/README.md` with reactive reload and teardown behavior. + +#### S9.e: Completion gate +- Mark S9 complete only when S9.a-S9.d are done and verification passes. + +### S10 — WebComponents wrapper + +#### S10.a: Wrapper implementation + +**File**: `wrappers/webcomponents/src/Particles.ts` + +Add `"data-id"` and `"data-theme"` to `observedAttributes`: + +```ts +static get observedAttributes(): string[] { + return ["url", "options", "data-id", "data-theme"]; +} +``` + +The setter for `id` should trigger reload: +```ts +set id(value: string) { + this.setAttribute("data-id", value); +} +``` + +Or handle in `attributeChangedCallback`: +```ts +attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void { + if (name === "data-id") { + this.container.current?.destroy(); + void this.#loadParticles(++this.#loadId); + } else if (name === "data-theme") { + const container = this.container.current; + if (container && newValue) { + (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(newValue); + } + } + // ... existing options/url handling +} +``` + +Also remove the deprecated `particlesInit` custom event dispatch from constructor (v3 pattern). + +#### S10.b: Demo alignment +- Verify webcomponents demo behavior (if present) reflects observed attribute support (`id/options/url/theme`). +- If no webcomponents demo exists, record explicit `N/A`. + +#### S10.c: Template alignment +- Verify whether WebComponents templates exist. +- If none exist, record explicit `N/A`. + +#### S10.d: README alignment +- Update `wrappers/webcomponents/README.md` with observed attributes and theme caveat. + +#### S10.e: Completion gate +- Mark S10 complete only when S10.a-S10.d are done and verification passes. + +### S11 — React docs + +#### S11.a: README alignment + +**File**: `wrappers/react/README.md` + +Current props table lists only `id`, `options`, `url`, `style`, `className`. Missing `particlesLoaded`. + +Add to the table: +```markdown +| particlesLoaded | function | Callback invoked when the container is loaded, receives `(container?: Container)` | +``` + +Also note: React wrapper currently has NO `theme` prop — this remains out of scope for S11 (React is docs-only in this plan). Document existing behavior only. + +#### S11.b: Demo alignment check +- Verify `demo/react/src/App.jsx` remains aligned with documented API. + +#### S11.c: Template alignment +- Verify `wrappers/react/templates/` status and record `N/A` if still empty. + +#### S11.d: Completion gate +- Mark S11 complete only when S11.a-S11.c are done. + +--- + +### S12 — Preact wrapper + +**Files to modify**: +- `wrappers/preact/src/IParticlesProps.ts` +- `wrappers/preact/src/Particles.tsx` +- `wrappers/preact/src/IParticlesState.ts` (type fix for container) + +#### S12.a: Wrapper implementation + +**1. Add `theme` prop to `IParticlesProps`:** + +```ts +export interface IParticlesProps { + id?: string; + width?: string; + height?: string; + options?: ISourceOptions; + url?: string; + params?: ISourceOptions; + style?: CSSProperties; + className?: string; + canvasClassName?: string; + container?: RefObject; // FIX: add | undefined + particlesLoaded?: (container?: Container) => Promise; // FIX: add ? to container + theme?: string; // ADD +} +``` + +**2. Fix `container` ref type in state:** + +In `IParticlesState.ts`, the `library` type is `Container` — keep as-is (it's always assigned after successful load and is never `undefined` when set). The fix is in `IParticlesProps`. + +**3. Add `loadTheme` call in `loadParticles`:** + +```ts +private async loadParticles(): Promise { + if (!this.state.init) { return; } + + const cb = async (container?: Container) => { + if (this.props.container) { + (this.props.container as MutableRefObject).current = container; + } + + this.setState({ library: container }); + + // Apply theme after load if provided + if (container && this.props.theme) { + (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(this.props.theme); + } + + if (this.props.particlesLoaded) { + await this.props.particlesLoaded(container); + } + }; + + const container = await tsParticles.load({ + url: this.props.url, + options: this.props.options, + id: this.props.id, + }); + + await cb(container); +} +``` + +**4. Handle theme changes in `componentDidUpdate`:** + +The existing `componentDidUpdate` calls `this.refresh()` which destroys and reloads. But for `theme` changes, we shouldn't destroy+reload — just call `loadTheme`. Add theme check: + +```ts +componentDidUpdate(prevProps: Readonly): void { + // Theme change: apply without reload + if (prevProps.theme !== this.props.theme && this.state.library) { + (this.state.library as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(this.props.theme); + } + // Other prop changes: full reload + this.refresh(); +} +``` + +**Verification**: +- `pnpm --filter @tsparticles/preact build` + +#### S12.b: Demo alignment +- **Remove** `{this.state.particlesInitialized && }` conditional in `demo/preact/src/components/app.js` +- Move `initParticlesEngine` to module level (outside component lifecycle) +- Verify `` works standalone after init + +#### S12.c: Template alignment +- Verify whether Preact templates exist (`wrappers/preact/templates/`). +- If none exist, record explicit `N/A`. + +#### S12.d: README alignment +- Update `wrappers/preact/README.md` with `theme` prop documentation and optional plugin caveat. + +#### S12.e: Completion gate +- Mark S12 complete only when S12.a-S12.d are done and verification passes. + +--- + +### S13 — Svelte wrapper + +**Files to modify**: +- `wrappers/svelte/src/lib/Particles.svelte` + +#### S13.a: Wrapper implementation + +**1. Add `theme` prop:** + +```svelte +export let theme: string | undefined = undefined; +``` + +**2. Replace `afterUpdate` with selective reactivity:** + +Current: `afterUpdate(async () => { await loadParticles(); })` — reloads on EVERY update (class, style, etc.). + +Fix: use Svelte reactive statements to track only relevant props: + +```svelte +$: if (mounted) { + void loadParticles(); +} +// Trigger only when id, options, url, or theme change: +$: void (id, options, url, theme, loadParticlesOnChange()); +// Actually Svelte doesn't have a great pattern for selective trigger. +// Better approach: use a reactive hash and compare. +``` + +**Recommended pattern** — use a reactive `loadKey` that changes only when id/options/url change, and a separate reactive for theme: + +```svelte +$: loadKey = `${id}|${url}|${JSON.stringify(options)}`; + +$: if (mounted && loadKey) { + void loadParticles(); +} + +$: if (mounted && theme && currentContainer) { + (currentContainer as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(theme); +} +``` + +Then remove `afterUpdate` entirely. + +**3. Apply initial theme after `tsParticles.load`:** + +```svelte +const container = await tsParticles.load({ id, options, url }); +currentContainer = container; + +// Apply theme if provided +if (container && theme) { + (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(theme); +} + +cb(container); +``` + +**4. Add guard for container existence before dispatch:** + +```svelte +const cb = (container?: Container) => { + dispatch(particlesLoadedEvent, { + particles: container // already Container | undefined — correct + }); + oldId = id; +}; +``` + +**Verification**: +- `pnpm --filter @tsparticles/svelte build` + +#### S13.b: Demo alignment +- Rename `particlesInit` → `initParticlesEngine` in `demo/svelte/src/App.svelte` and `demo/svelte-kit/src/routes/+page.svelte` +- Verify reactive `options` changes work via prop binding + +#### S13.c: Template alignment +- Verify whether Svelte templates exist. +- If none exist, record explicit `N/A`. + +#### S13.d: README alignment +- Update `wrappers/svelte/README.md` with `theme` prop and reload contract. + +#### S13.e: Completion gate ✅ +- Completed: wrapper (`theme` prop, reactive `$:` statements, `loadTheme`), demos (Svelte 5 `mount()`, `initParticlesEngine` naming, SSR-safe dynamic imports in SvelteKit), README (props table, reactive behavior, theme docs). Build pass. User-verified both demos working. + +--- + +### S14 — Stencil wrapper + +**Files to modify**: +- `wrappers/stencil/src/components/stencil-particles/stencil-particles.tsx` + +#### S14.a: Wrapper implementation + +**1. Add `theme` prop and loaded event:** + +```ts +import { Component, type JSX, Prop, Watch, Event, EventEmitter, h } from "@stencil/core"; + +@Event() particlesLoaded!: EventEmitter; + +@Prop() theme?: string; +``` + +**2. Add `@Watch("theme")` for theme changes:** + +```ts +@Watch("theme") +protected async onThemeChange(): Promise { + if (!this.container) return; + (this.container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(this.theme); +} +``` + +**3. Emit loaded event after successful load:** + +```ts +private async loadParticles(currentRenderId: number): Promise { + // ... existing code ... + this.container = container; + + // Emit particlesLoaded event (NEW) + this.particlesLoaded.emit(container); + + // Apply theme if provided (NEW) + if (container && this.theme) { + (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(this.theme); + } +} +``` + +**4. Ensure `@Watch("theme")` doesn't fire before component is loaded:** + +The `@Watch` on `theme` will fire when the prop is first set (before `componentDidLoad`). Guard with `this.container` check — already done in `onThemeChange`. + +**Verification**: +- `pnpm --filter @tsparticles/stencil build` + +#### S14.b: Demo alignment +- Verify stencil demo (if present) is aligned with the new `particlesLoaded` event and `theme` prop. +- If no stencil demo exists, record explicit `N/A`. + +#### S14.c: Template alignment +- Verify whether Stencil templates exist. +- If none exist, record explicit `N/A`. + +#### S14.d: README alignment +- Update `wrappers/stencil/README.md` with `theme` prop, `particlesLoaded` event, and optional plugin note. + +#### S14.e: Completion gate +- Mark S14 complete only when S14.a-S14.d are done and verification passes. + +--- + +### S15 — Ember wrapper + +**Files to modify**: +- `wrappers/ember/addon/modifiers/particles.ts` + +#### S15.a: Wrapper implementation + +**1. Add `theme` to modifier signature:** + +```ts +interface ParticlesModifierSignature { + Args: { + Positional: []; + Named: { + options: Options; + url: string; + particlesLoaded: (container?: Container) => void; // FIX: undefined allowed + theme?: string; // ADD + }; + }; +} +``` + +**2. Fix memory leak — destroy previous container before creating new:** + +The modifier's `modify()` can be called multiple times when named arguments change. Currently each call creates a new container and registers a new destructor without cleaning up the old one. + +Fix: track the current container at the instance level: + +```ts +export default class ParticlesModifier extends Modifier { + #container?: Container; + #cleanupRegistered = false; + + async modify( + element: Element, + _: PositionalArgs, + { options, url, particlesLoaded, theme }: NamedArgs, + ) { + if (!element.id) { + throw new Error('The specified element must have an id attribute.'); + } + + await waitForParticlesEngineInitialization(); + if (!isParticlesEngineInitialized()) { + throw new Error('...'); + } + + // Destroy previous container before creating new one (FIX: memory leak) + this.#container?.destroy(); + this.#container = undefined; + + let container = await tsParticles.load({ + id: element.id, + options: options ?? {}, + url, + }); + + this.#container = container; + + // Apply theme if provided + if (container && theme) { + (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(theme); + } + + if (particlesLoaded && container) { + particlesLoaded(container); + } + + // Register destructor only once (FIX: avoid accumulation) + if (!this.#cleanupRegistered) { + registerDestructor(this, () => { + this.#container?.destroy(); + this.#container = undefined; + }); + this.#cleanupRegistered = true; + } + } +} +``` + +**3. Fix `particlesLoaded` type:** `(container: Container) => void` → `(container?: Container) => void` + +**Verification**: +- `pnpm --filter @tsparticles/ember build` + +#### S15.b: Demo alignment +- Verify Ember demo (if present) is aligned with the modified modifier API. +- If no Ember demo exists, record explicit `N/A`. + +#### S15.c: Template alignment +- Verify whether Ember templates exist. +- If none exist, record explicit `N/A`. + +#### S15.d: README alignment +- Update `wrappers/ember/README.md` with `theme` support, reload behavior, and optional plugin note. + +#### S15.e: Completion gate +- Mark S15 complete only when S15.a-S15.d are done and verification passes. + +--- + +### S16 — jQuery wrapper + +**Files to modify**: +- `wrappers/jquery/src/particles.ts` + +#### S16.a: Wrapper implementation + +**1. Add theme support to the jQuery API:** + +The current API has `load(options)` and `ajax(jsonUrl)`. Adding a separate `setTheme` method is cleaner than modifying the existing signatures: + +```ts +type ParticlesResult = { + load: (options: ISourceOptions) => Promise; + ajax: (jsonUrl: string) => Promise; + setTheme: (theme: string) => Promise; // ADD +}; +``` + +**2. Track containers per element for theme application:** + +```ts +// Add a WeakMap to track containers per element +const containers = new WeakMap(); + +// In the load function, after tsParticles.load(): +return await tsParticles.load({ id: element.id, options }).then(container => { + if (container) { + containers.set(element, container); + } + return container; +}); + +// Add setTheme method: +const setTheme = async (theme: string): Promise => { + for (const element of this) { + const container = containers.get(element); + if (container) { + await (container as unknown as { loadTheme?: (name?: string) => Promise }) + .loadTheme?.(theme); + } + } +}; +``` + +**3. Apply theme on initial load when passed via options?** No — jQuery's API doesn't have a `theme` parameter on `load()`/`ajax()`. The `setTheme` method is the appropriate API for theme control. + +**4. Update the return object:** + +```ts +return { load, ajax, setTheme }; +``` + +**Verification**: +- `pnpm --filter @tsparticles/jquery build` + +#### S16.b: Demo alignment +- Verify jQuery demo (if present) reflects the new `setTheme` API. +- If no jQuery demo exists, record explicit `N/A`. + +#### S16.c: Template alignment +- Verify whether jQuery templates exist. +- If none exist, record explicit `N/A`. + +#### S16.d: README alignment +- Update `wrappers/jquery/README.md` with `setTheme` method documentation and optional plugin note. + +#### S16.e: Completion gate +- Mark S16 complete only when S16.a-S16.d are done and verification passes. + +--- + +### S17 — Angular-fireworks wrapper + +**Files to modify**: +- `wrappers/angular-fireworks/projects/ng-fireworks/src/lib/ng-fireworks.component.ts` + +#### S17.a: Wrapper implementation + +**1. Implement `OnChanges` interface:** + +```ts +import { AfterViewInit, Component, Inject, Input, OnChanges, OnDestroy, PLATFORM_ID, SimpleChanges } from "@angular/core"; +import { FireworkOptions, fireworks } from "@tsparticles/fireworks"; + +@Component({ + selector: "ngx-fireworks", + standalone: false, + template: `
`, +}) +export class NgxFireworksComponent implements AfterViewInit, OnDestroy, OnChanges { + @Input() options?: FireworkOptions; + @Input() id = "tsparticles"; + + #fireworksInstance?: Awaited>; + #destroyed = false; + + constructor(@Inject(PLATFORM_ID) protected platformId: string) {} + + public ngAfterViewInit(): void { + if (isPlatformServer(this.platformId)) { return; } + void this.#startFireworks(); + } + + public ngOnChanges(changes: SimpleChanges): void { + if (isPlatformServer(this.platformId)) { return; } + if (this.#destroyed) { return; } + // Re-fire on options or id changes + if (changes["options"] || changes["id"]) { + void this.#startFireworks(); + } + // Note: theme is not applicable — fireworks uses @tsparticles/fireworks + // which is a standalone display, not the particles engine. + } + + public ngOnDestroy(): void { + this.#destroyed = true; + this.#fireworksInstance?.stop(); + this.#fireworksInstance = undefined; + } + + async #startFireworks(): Promise { + // Stop previous instance + this.#fireworksInstance?.stop(); + this.#fireworksInstance = undefined; + + this.#fireworksInstance = await fireworks(this.id, this.options); + } +} +``` + +**2. Note on destroy-guard**: The `#destroyed` flag prevents `ngOnChanges` from starting fireworks after the component is destroyed (since Angular can fire change detection after destroy in some edge cases). + +**Verification**: +- `pnpm --filter @tsparticles/angular-fireworks build` + +#### S17.b: Demo alignment +- Verify `demo/angular-fireworks/` demo reflects reactive input behavior. +- If no demo exists, record explicit `N/A`. + +#### S17.c: Template alignment +- Verify whether Angular-fireworks templates exist. +- If none exist, record explicit `N/A`. + +#### S17.d: README alignment +- Update `wrappers/angular-fireworks/README.md` with `OnChanges` behavior documentation. + +#### S17.e: Completion gate +- Mark S17 complete only when S17.a-S17.d are done and verification passes. + +--- + +## Docs Change Plan — Vue 3 Guide + +### Stale patterns found in `websites/website/docs/guides/vue3.md` (622 lines) + +| Pattern | Occurrences | Lines (EN) | Action | +|--------------------------|-------------|---------------------------------------------------------------------------|-------------------------------------------------------------------| +| `:init="particlesInit"` | 10 | 141, 166, 198, 232, 266, 442, 481, 482, 595 | Remove from ALL examples | +| `particlesInit` function | 15 | 126, 135, 141, 159, 166, 185, 198, 219, 232, 253, 266, 429, 442, 584, 595 | Remove function definitions (no longer needed at component level) | +| `@particles-init` event | 1 | 613 | Remove from API table | +| `:init` prose section | ~2 | 128-143, 477 | Remove "Using particlesInit with the Component" section | +| `useParticles()` | 1 | 492 | Wrong function name; should be `useParticlesProvider` | + +### Required changes to ALL 10 files (EN + 9 translations) + +1. **Remove lines 126-143**: Section "Using `particlesInit` with the Component" +2. **Remove `:init="particlesInit"`** from all code examples +3. **Remove `@particles-init`** from API reference table (line 613) +4. **Fix `useParticles()` → `useParticlesProvider()`** or remove if not publicly exported +5. **Remove `particlesInit` function definitions** from all code examples +6. **Ensure API table has `theme` prop** with note about optional plugin dependency +7. **Add note** about `@tsparticles/plugin-themes` requirement for `theme` prop + +### Exact file list +``` +websites/website/docs/guides/vue3.md (EN source) +websites/website/docs/zh/guides/vue3.md (Chinese) +websites/website/docs/ja/guides/vue3.md (Japanese) +websites/website/docs/hi/guides/vue3.md (Hindi) +websites/website/docs/ru/guides/vue3.md (Russian) +websites/website/docs/pt/guides/vue3.md (Portuguese) +websites/website/docs/fr/guides/vue3.md (French) +websites/website/docs/de/guides/vue3.md (German) +websites/website/docs/es/guides/vue3.md (Spanish) +websites/website/docs/it/guides/vue3.md (Italian) +``` + +### Agent execution order for S18+S19 +1. Edit EN file first (S18) +2. Mirror structural + code changes in all 9 translations (S19) +3. Preserve translated prose where possible; update only code blocks and section structure +4. Run stale-pattern grep to verify: no `:init`, no `@particles-init`, no `particlesInit` remains + +--- + +## README Changes Per Wrapper + +README work is **embedded in each wrapper step** (S1-S17) and is not a standalone late phase. + +For every wrapper step, the README must document: +1. `theme` support depends on optional `@tsparticles/plugin-themes` (if wrapper exposes `theme`) +2. Missing plugin ⇒ `theme` is safe no-op +3. `id`/`options`/`url` changes reload particles +4. Loaded callback/event fires only after `tsParticles.load` resolves +5. Component/element teardown destroys container + +Wrapper-specific known README gaps are listed in each wrapper section and must be closed inside that wrapper step. + +--- + +## Risk Register (Expanded) + +| Risk | Impact | Likelihood | Mitigation | +|---------------------------------------------------------|--------------------------------|:----------:|----------------------------------------------------------------------------------------------------------------------------------------| +| `loadTheme` type mismatch across 6 wrappers | Build failures | High | Use local cast at each call site: `(container as unknown as { loadTheme?: ... })` | +| `Container \| undefined` passed to strict callbacks | TS errors / runtime crashes | High | Guard before callback emit: `if (container) cb(container)` or type signature `(container?: Container) => void` | +| Over-triggered reload effects/watchers | Perf regression, flicker | Medium | Explicit dependency tracking + destroy-before-load | +| Vue 3 deep watcher on `options` firing too often | Performance | Medium | Use `{ deep: false }` and rely on reference comparison (user creates new object = good, mutation = not tracked — acceptable trade-off) | +| Angular `ngOnChanges` fires before `ngAfterViewInit` | Double load / error | High | Guard with `this.#container` check | +| Vue 2 `@Watch` decorator + SFC `export type` issue | Compile error | Medium | Remove `export type IParticlesProps = ISourceOptions` from SFC | +| Qwik `useTask$` running on server | SSR crash | High | Use `useVisibleTask$` instead, or guard with `isServer` | +| Astro attribute observer race (concurrent loads) | Wrong config shown | Medium | Use monotonic `#loadId` token (already planned) | +| Astro `JSON.parse` on every attribute change | Performance | Low | Cache parsed options, only re-parse when string changes | +| Agent applies v3 mental model on v4 code | Wrong API/docs | High | Mandatory repository-first audit + all wrappers are v4-only (no v3 history) | +| Translation edits break code blocks | Docs render issues | Medium | Manual spot-check after scripted edits | +| `IParticlesProps` naming in Vue3 shadows props type | Confusion / wrong usage | Medium | Fix: remove standalone `export type IParticlesProps = ISourceOptions` | +| Vue 2 event-bus missing `tsParticles.init()` | Runtime crash (v4 requirement) | High | Add `tsParticles.init()` call in `ensureParticlesInitialization` | +| Angular NgParticlesService missing `tsParticles.init()` | Runtime crash (v4 requirement) | High | Add `tsParticles.init()` call in `NgParticlesService.init()` | +| Solid `onCleanup` inside `createEffect` scope removal | Memory leak | Medium | Ensure top-level `onCleanup` for unmount, plus manual destroy in reactive effect | +| Riot `tsParticles.dom()` usage (v3 API) | Runtime error (v4) | Medium | Track container locally instead of querying `tsParticles.dom()` | + +--- + +## Validation Plan + +### Build validation +```bash +# Core wrappers +pnpm nx run-many -t build --projects=@tsparticles/vue3,@tsparticles/vue2,@tsparticles/angular,@tsparticles/solid,@tsparticles/qwik,@tsparticles/astro + +# Extended wrappers touched in S7-S10 +pnpm nx run-many -t build --projects=@tsparticles/inferno,@tsparticles/lit,@tsparticles/riot,@tsparticles/webcomponents +``` + +### Focused smoke checks (per wrapper) +1. Verify that changing `options` prop at runtime reloads particles without remounting component +2. Verify that changing `url` prop at runtime reloads particles +3. Verify that changing `id` prop at runtime destroys old container and creates new one with new id +4. Verify `theme` prop change is safe no-op (no crash) when `@tsparticles/plugin-themes` is NOT loaded +5. Verify `theme` prop change applies the theme when plugin IS loaded +6. Verify component unmount destroys the container (no orphan animations) +7. Verify `particlesLoaded`/`loaded` callback emits after successful load + +### Docs stale-pattern validation +```bash +# Check all Vue 3 guide files for stale patterns +grep -rn ":init" websites/website/docs/*/guides/vue3.md +grep -rn "particles-init" websites/website/docs/*/guides/vue3.md +grep -rn "particlesInit" websites/website/docs/*/guides/vue3.md + +# These should return NO results after S18+S19 +``` + +### README consistency scan +- For each updated README, verify: theme plugin note, reload contract, loaded callback, destroy behavior + +--- + +## Handoff Checklist for Implementing Agents + +### Before coding: +- [ ] Read the current repository files (do not trust memory) +- [ ] Read this document's per-wrapper analysis for the target wrapper(s) +- [ ] Confirm target files and prop type declarations +- [ ] Note that the entire `wrappers/` directory is v4-only (no v3 wrapper code existed) + +### During coding: +- [ ] Changes must be wrapper-local and minimal +- [ ] No engine-wide typing changes in this phase +- [ ] Safe `loadTheme` call: `(container as unknown as { loadTheme?: (name?: string) => Promise }).loadTheme?.(theme)` +- [ ] Guard `tsParticles.load()` result for `undefined` before using as `Container` +- [ ] Ensure `tsParticles.init()` is called in the provider/init function (v4 requirement that some wrappers miss) + +### Before handoff: +- [ ] Run wrapper build: `pnpm --filter @tsparticles/ build` +- [ ] Run stale-pattern checks for docs (if docs touched) +- [ ] Include list of touched files and exact behavior deltas + +--- + +## Execution Order (Recommended for Sub-Agents) + +Each step below is designed to be executed by a SEPARATE agent from scratch, using only this document as context. + +``` +S1 Vue 3 wrapper → Sub-agent A +S2 Vue 2 wrapper → Sub-agent B +S3 Angular wrapper → Sub-agent C +S4 Solid wrapper → Sub-agent D +S5 Qwik wrapper → Sub-agent E +S6 Astro wrapper → Sub-agent F ✅ + +S7 Inferno wrapper → Sub-agent G +S8 Lit wrapper → Sub-agent H +S9 Riot wrapper → Sub-agent I +S10 WebComponents wrapper → Sub-agent J +S11 React docs → Sub-agent K + +S12 Preact wrapper → Sub-agent L +S13 Svelte wrapper ✅ Done +S14 Stencil wrapper → Sub-agent N +S15 Ember wrapper → Sub-agent O +S16 jQuery wrapper → Sub-agent P +S17 Angular-fireworks wrapper → Sub-agent Q + +S18 EN docs (vue3.md) → Sub-agent X +S19 9 translations (vue3.md) → Sub-agent Y + +S20 Validation → Sub-agent Z (after all above) +S21 Final handoff → Sub-agent AA + +S22 EN wrapper guide audit → Sub-agent BB (audit only — no code changes) +S23 Translation alignment → Sub-agent CC (only if S22 finds gaps) +``` + +Note: use wave execution from the protocol section. `S18` must precede `S19`. `S22` must precede `S23`. S22 is audit-only: it produces a gap matrix but does NOT edit files. + +--- + +## Demo & Template Alignment + +All 29 demo projects live under `demo/` at the repo root (NOT inside wrapper packages). Each wrapper we modify has a corresponding demo. Additionally, some demos use patterns that are **workarounds for missing reactivity** — these should be simplified within the corresponding wrapper step (not deferred). + +Rule: if a wrapper has an associated demo/template, that wrapper step remains open until those artifacts are aligned. + +### Demo inventory: conditional mounting patterns (workarounds for no reactivity) + +| Demo | Pattern | Why it exists | After reactivity fix | +|---------------------------------------------------------|---------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------------| +| **Solid** (`demo/solid/src/App.tsx`) | `{init() && }` via `` | `onMount` + `createResource` was one-shot; needed init gate | Move `initParticlesEngine` to app bootstrap; remove `` gate around `` | +| **Preact** (`demo/preact/src/app.js`) | `{this.state.particlesInitialized && }` | Constructor via `initParticlesEngine` returns promise, no reactivity | Move init to app bootstrap; remove conditional render | +| **Qwik** (`demo/qwik/src/root.tsx`) | `{particlesReady.value && }` | `useVisibleTask$` runs once | Remove conditional; component itself waits for init | +| **Angular** (`demo/angular/src/app/app.component.html`) | `*ngIf="particlesVisible"` on `` | Visibility toggle workaround (options change required re-mount) | Less needed now, but `*ngIf` remains valid for conditional display | +| **React** (`demo/react/src/App.jsx`) | No conditional — uses `ParticlesProvider` | Already has proper init gate | No change needed | +| **Vue 3** (`demo/vue3/src/App.vue`) | No conditional — uses `app.use(Particles, { init })` | Already has proper plugin init | No change needed | +| **Vue 2** (`demo/vue2/src/App.vue`) | No conditional — uses `Vue.use(Particles, { init })` | Already has proper plugin init | No change needed | + +### Demos that use stale `particlesInit` function name at component level +| Demo | Location | Pattern | Action | +|------|----------|---------|--------| +| **Svelte** (`demo/svelte/src/App.svelte`) | `particlesInit(async (engine) => { ... })` | Function named `particlesInit` | Rename to `initParticlesEngine` for clarity (not broken, just naming) | +| **Svelte Kit** (`demo/svelte-kit/src/routes/+page.svelte`) | `particlesInit(async (engine) => { ... })` | Same as above | Same action | + +### Demos with `*ngIf` visibility toggle on particles (could be simplified) +| Demo | Pattern | Notes | +|------|---------|-------| +| **Angular** (`demo/angular/src/app/app.component.html:840-841`) | `*ngIf="particlesVisible"` on `` | Used for toggle button. After reactivity, options can change without re-mount. `ngIf` is still valid for hide/show. | +| **Angular-confetti** | `*ngIf="confettiVisible"` | Separate sub-component | +| **Angular-fireworks** | `*ngIf="fireworksVisible"` | Separate sub-component | + +### Step-to-artifact mapping (authoritative) + +Use this map to decide ownership and avoid file collisions. + +| Step | Wrapper files | Demo files | README | +|------|---------------|------------|--------| +| S1 | `wrappers/vue3/**` | `demo/vue3/**` | `wrappers/vue3/README.md` | +| S2 | `wrappers/vue2/**` | `demo/vue2/**` | `wrappers/vue2/README.md` | +| S3 | `wrappers/angular/**` | `demo/angular/**` | `wrappers/angular/README.md` | +| S4 | `wrappers/solid/**` | `demo/solid/**` | `wrappers/solid/README.md` | +| S5 | `wrappers/qwik/**` | `demo/qwik/**` | `wrappers/qwik/README.md` | +| S6 | `wrappers/astro/**` | `demo/astro/**` | `wrappers/astro/README.md` | +| S7 | `wrappers/inferno/**` | `demo/inferno/**` (check + align if needed) | `wrappers/inferno/README.md` | +| S8 | `wrappers/lit/**` | lit demo if present | `wrappers/lit/README.md` | +| S9 | `wrappers/riot/**` | riot demo if present | `wrappers/riot/README.md` | +| S10 | `wrappers/webcomponents/**` | webcomponents demo if present | `wrappers/webcomponents/README.md` | +| S11 | `wrappers/react/README.md` | `demo/react/**` check only | `wrappers/react/README.md` | +| S12 | `wrappers/preact/**` | `demo/preact/**` | `wrappers/preact/README.md` | +| S13 | `wrappers/svelte/**` | `demo/svelte/**` + `demo/svelte-kit/**` | `wrappers/svelte/README.md` | +| S14 | `wrappers/stencil/**` | stencil demo if present | `wrappers/stencil/README.md` | +| S15 | `wrappers/ember/**` | ember demo if present | `wrappers/ember/README.md` | +| S16 | `wrappers/jquery/**` | jquery demo if present | `wrappers/jquery/README.md` | +| S17 | `wrappers/angular-fireworks/**` | `demo/angular-fireworks/**` if present | `wrappers/angular-fireworks/README.md` | +| S18 | `websites/website/docs/guides/vue3.md` | N/A | N/A | +| S19 | `websites/website/docs/{zh,ja,hi,ru,pt,fr,de,es,it}/guides/vue3.md` | N/A | N/A | + +If a mapped demo does not exist, record explicit `N/A` in the step output. + +#### S1-DEMO — Vue 3 demo +**Files**: `demo/vue3/src/App.vue` +**Actions**: +- No conditional render to remove (already clean) +- Verify `:options` binding works with reactive changes +- Optionally add a "switch config" button to demo reactivity (changing `:options` prop) +- Verify `@particles-loaded` event fires after each reload + +#### S2-DEMO — Vue 2 demo +**Files**: `demo/vue2/src/App.vue` +**Actions**: +- Same as Vue 3 — verify reactive options work +- Optionally add theme toggle demo + +#### S3-DEMO — Angular demo +**Files**: `demo/angular/src/app/app.component.html`, `demo/angular/src/app/app.component.ts` +**Actions**: +- The `*ngIf="particlesVisible"` pattern is a workaround that can remain for toggle functionality, but should be documented as optional +- Add `theme` input binding example if desired +- Verify `[options]` changes trigger reload via `OnChanges` +- The `particlesVisible` toggle should NOT be the only way to change config — add a "Switch config" button that changes `[options]` directly + +#### S4-DEMO — Solid demo +**Files**: `demo/solid/src/App.tsx` +**Actions**: +- **Remove** the `` conditional around `` +- Move `initParticlesEngine` call to module level (not inside `onMount`) +- After reactivity: `` works standalone +- Optionally add config switch button to demo reactive `options` change + +#### S5-DEMO — Qwik demo +**Files**: `demo/qwik/src/root.tsx` +**Actions**: +- **Remove** the `{particlesReady.value && }` conditional +- Move `initParticlesEngine` to module level (outside component) +- After reactivity: `` works standalone +- Optionally add theme/config switch + +#### S6-DEMO — Astro demo +**Files**: `demo/astro/src/pages/index.astro` +**Actions**: +- Verify `` works with reactive attribute changes +- Add `disconnectedCallback` test (navigate away and back) + +### Templates +- `wrappers/react/templates/` exists but is EMPTY — no CRA templates to update +- No other template directories found in the repo +- **Action**: keep explicit template check in every wrapper step and record `N/A` when applicable + +### Cross-wrapper README maintenance for demos +- After any demo change, verify the demo's code example matches the corresponding wrapper README's example +- If a demo demonstrates `:init` or `@particles-init` pattern, REMOVE it (stale API) + +### Add to Definition of Done +- [ ] Conditional rendering workarounds removed from Solid (S4), Preact (S12), Qwik (S5) demos +- [x] Svelte (S13) demos use `initParticlesEngine` naming (not `particlesInit`) +- [ ] Angular demo has config switch example (not only `*ngIf` toggle) +- [ ] All demos use correct wrapper API (no `:init`, no `@particles-init`) +- [ ] Each core wrapper demo verifiably demonstrates reactive prop changes + +--- + +## Definition of Done + +Done only if all are true: +- [ ] All 6 wrappers react to `id`, `options`, and `url` updates by reloading (within each framework's API model) +- [ ] All 6 wrappers safely handle `theme` updates without plugin hard dependency +- [ ] All 6 wrappers call `tsParticles.init()` during bootstrap (v4 fix) +- [ ] Every wrapper step (S1-S17) includes aligned demo + template check + README before closure +- [ ] All touched wrapper docs/readmes explicitly document the optional theme-plugin dependency and no-op behavior without plugin +- [ ] Website docs for touched wrappers are updated and aligned with README + implementation behavior +- [ ] All wrappers emit loaded callback/event only after `tsParticles.load` resolves +- [ ] All wrappers destroy container on component teardown +- [ ] TypeScript build passes for all affected wrapper packages +- [ ] Vue 3 English guide fixed and all 9 translations aligned +- [ ] No `:init` / `@particles-init` / stale `particlesInit` in Vue 3 guides +- [ ] Inferno calls loaded callback after load +- [ ] Lit dispatches `particlesLoaded` event +- [ ] Riot has proper teardown (container destroy on unmount) +- [x] WebComponents observes `id` attribute changes +- [x] A1 audit completed: `nextjs`, `nuxt2`, `nuxt3`, `nuxt4`, `angular-confetti` closed as no-change with evidence; `preact`, `svelte`, `stencil`, `ember`, `jquery`, `angular-fireworks` activated for implementation +- [x] S22 audit completed: all 16 wrapper guide pages checked against wrapper READMEs. Gap matrix produced. +- [x] S23 translations aligned (All 16 EN guides fixed, 144 translation files mirrored) + +--- + +### S22 — EN Wrapper Guide Audit (audit only — no file edits) + +**Goal**: Check every wrapper guide page under `websites/website/docs/guides/` (except `vue3.md`, `index.md`, `vanilla.md`, `wordpress.md`) against the actual wrapper implementation and README from S1-S17. + +**Files to audit** (15 EN files): + +| Wrapper | Guide file | Reference README | +|---------|-----------|------------------| +| Angular | `websites/website/docs/guides/angular.md` | `wrappers/angular/README.md` | +| Solid | `websites/website/docs/guides/solid.md` | `wrappers/solid/README.md` | +| Qwik | `websites/website/docs/guides/qwik.md` | `wrappers/qwik/README.md` | +| Astro | `websites/website/docs/guides/astro.md` | `wrappers/astro/README.md` | +| React | `websites/website/docs/guides/react.md` | `wrappers/react/README.md` | +| Preact | `websites/website/docs/guides/preact.md` | `wrappers/preact/README.md` | +| Svelte | `websites/website/docs/guides/svelte.md` | `wrappers/svelte/README.md` | +| Stencil | `websites/website/docs/guides/stencil.md` | `wrappers/stencil/README.md` | +| Ember | `websites/website/docs/guides/ember.md` | `wrappers/ember/README.md` | +| jQuery | `websites/website/docs/guides/jquery.md` | `wrappers/jquery/README.md` | +| Inferno | `websites/website/docs/guides/inferno.md` | `wrappers/inferno/README.md` | +| Lit | `websites/website/docs/guides/lit.md` | `wrappers/lit/README.md` | +| Riot | `websites/website/docs/guides/riot.md` | `wrappers/riot/README.md` | +| WebComponents | `websites/website/docs/guides/webcomponents.md` | `wrappers/webcomponents/README.md` | +| Next.js | `websites/website/docs/guides/nextjs.md` | `wrappers/nextjs/README.md` | + +Nuxt (`websites/website/docs/guides/nuxt.md`) also included — cross-check against `wrappers/nuxt3/README.md` + `wrappers/nuxt4/README.md`. + +**Audit checklist per file** (compare guide page vs wrapper README): + +1. **`theme` prop/attribute**: Does the guide document the `theme` prop? Does it mention `@tsparticles/plugin-themes` is optional? Is the safe no-op behavior documented? +2. **Reactivity contract**: Does the guide document that `id`/`options`/`url` changes trigger destroy+reload? +3. **`particlesLoaded` / loaded callback**: Does the guide show the callback? Is the type `(container?: Container)` or similar? +4. **Destroy on teardown**: Is cleanup documented? +5. **Stale patterns**: Any `:init`, `@particles-init`, `particlesInit` function names, or other stale v3 patterns? +6. **Init approach**: Does the guide show the correct v4 init (plugin/provider) rather than component-level init? +7. **Demo alignment**: Do code examples match what the actual wrapper API looks like? + +**Output contract** (per-file, return this structure): + +```md +## {wrapper name} + +**Guide file**: `websites/website/docs/guides/{name}.md` +**Reference README**: `wrappers/{name}/README.md` + +### Gap assessment +| Check | Status | Evidence | +|-------|--------|----------| +| `theme` prop documented | ✅/❌/Partial | ... | +| Reactivity contract | ✅/❌/Partial | ... | +| Loaded callback | ✅/❌/Partial | ... | +| Destroy on teardown | ✅/❌/Partial | ... | +| No stale patterns | ✅/❌/Partial | ... | +| Correct v4 init | ✅/❌/Partial | ... | +| Demo alignment | ✅/❌/N/A | ... | + +### Known gaps (if any) +- {gap description} → {fix needed} + +### Extent of changes needed +- {none / minor / significant} +- {estimated lines changed} +``` + +**No files should be edited by S22.** S22 only produces the gap matrix. + +--- + +### S23 — Translation Alignment (execution step, only if S22 finds gaps) + +**Goal**: Mirror S22 fixes across all 9 translation directories. + +**Files to edit**: For each wrapper guide with gaps from S22, edit `websites/website/docs/{zh,ja,hi,ru,pt,fr,de,es,it}/guides/{name}.md`. + +**Rule**: Preserve translated prose; update only code blocks and structural sections. + +**Only activate S23 if S22's gap matrix is non-empty.** If all guides are clean, mark S23 as `N/A`. diff --git a/CHANGELOG.md b/CHANGELOG.md index 43126a3f473..48079df1178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,51 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed anglar secondary wrappers and their bundles with proper destroy ([120fe5d](https://github.com/tsparticles/tsparticles/commit/120fe5d697a93a9fe3faf20bfeb1f65f8a397273)) +- fixed angular wrapper ([10d09a8](https://github.com/tsparticles/tsparticles/commit/10d09a80b588b8af4eb4e19ea1e6e3a555c7f4b1)) +- fixed angular wrapper ([472fbd4](https://github.com/tsparticles/tsparticles/commit/472fbd4dd08f74a1ed216511604cc06f0a485d8f)) +- fixed angular wrapper ([ab59ef1](https://github.com/tsparticles/tsparticles/commit/ab59ef10549d0e255e09c04f14ae41968dce8651)) +- fixed astro wrapper ([46e9e44](https://github.com/tsparticles/tsparticles/commit/46e9e44838552f9d1ad0ea3fe58b2d48b140f91a)) +- fixed astro wrapper ([1edf67f](https://github.com/tsparticles/tsparticles/commit/1edf67f4f81f560c3ef845bdd65eacc6cb4b5157)) +- fixed ember wrapper ([ad417d8](https://github.com/tsparticles/tsparticles/commit/ad417d8340661f1a7a12d28e60fb64e98ec84868)) +- fixed hdr setup, and improved it too ([e2720fc](https://github.com/tsparticles/tsparticles/commit/e2720fcd20842aaaafd9849ae9ee8e9413409577)) +- fixed inferno wrapper ([054a1a4](https://github.com/tsparticles/tsparticles/commit/054a1a4c225453a57d2f8fa71f33f40f1f0b3e6b)) +- fixed issue with ribbons and confetti websites ([7ae50f3](https://github.com/tsparticles/tsparticles/commit/7ae50f3c89c2e5bf65750584d4b1535516c66673)) +- fixed jquery wrapper ([e0620d7](https://github.com/tsparticles/tsparticles/commit/e0620d782baf2e1a5b745dce93dc73efa2476991)) +- fixed lit wrapper ([08e8c87](https://github.com/tsparticles/tsparticles/commit/08e8c8792986b99b8c1da1df6864646a67134842)) +- fixed preact wrapper ([8c7d9f9](https://github.com/tsparticles/tsparticles/commit/8c7d9f9a10b4806c9085457dfe58bd43373bd5aa)) +- fixed qwik wrapper ([4d04ed9](https://github.com/tsparticles/tsparticles/commit/4d04ed907201dae50a16d130417e0aa3c00b73a4)) +- fixed riot wrapper ([3711e63](https://github.com/tsparticles/tsparticles/commit/3711e63c74c68ecbc078f3bbb4be5156d6ecdae3)) +- fixed solid wrapper ([fdd51c2](https://github.com/tsparticles/tsparticles/commit/fdd51c2c05bf140d83c04114250e9234f9c31bd1)) +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- fixed stencil wrapper ([4096a4a](https://github.com/tsparticles/tsparticles/commit/4096a4aafa5f5bdc53865c7df93f786d07d96957)) +- fixed svelte wrapper ([9667e21](https://github.com/tsparticles/tsparticles/commit/9667e214a02c933dbf0778999fb878b78aa0efd7)) +- fixed vue 2 wrapper ([7e1cd65](https://github.com/tsparticles/tsparticles/commit/7e1cd65b270b9e148aac68b0c7d50a5adcd4edc1)) +- fixed vue 3 wrapper ([53482f1](https://github.com/tsparticles/tsparticles/commit/53482f141597e1a8082141a3d66a0e8970b449d2)) +- fixed webcomponents wrapper ([53bef05](https://github.com/tsparticles/tsparticles/commit/53bef05388ea31285e2d9b4c4ad8b86747553f37)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) +- various fixes after deeper review ([b68a5cb](https://github.com/tsparticles/tsparticles/commit/b68a5cb87c358c6cb32ddaac664eb29b327bcb4a)) +- various fixes after deeper review ([7f39804](https://github.com/tsparticles/tsparticles/commit/7f398048915819a380856bdce4b6b4af4aaab9a4)) +- various fixes after deeper review ([58b7ef8](https://github.com/tsparticles/tsparticles/commit/58b7ef83b48a4979519349c3cb6fd3cfe2cf6f5b)) +- various fixes after deeper review ([b54b5db](https://github.com/tsparticles/tsparticles/commit/b54b5dbc8acc42c15f81f8c8d02c29d2867517ac)) +- various fixes after deeper review ([49e9af4](https://github.com/tsparticles/tsparticles/commit/49e9af44e178ec460934db8485ed624b09527464)) + +### Features + +- added new meteors config ([f659e05](https://github.com/tsparticles/tsparticles/commit/f659e051d0cc31034250110773d9f719d4333518)) +- added new meteors preset ([2387a3c](https://github.com/tsparticles/tsparticles/commit/2387a3c727b3fbddd4c79d09aef333516645b27e)) +- added positionX option to ribbons bundle, deprecating position object ([7f01bf2](https://github.com/tsparticles/tsparticles/commit/7f01bf2852d0d4c08af803216d5b8d905603a701)) +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) +- preparing create packages for the new templates structure ([dc15d30](https://github.com/tsparticles/tsparticles/commit/dc15d30d4021d630b90ec767df7dd8ec6af1781e)) +- working on an mcp server for AI integrations for creating options and other ([c233bf4](https://github.com/tsparticles/tsparticles/commit/c233bf4418a48e0c3a7a247f8d2b0ea9ce1d536e)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/bundles/all/CHANGELOG.md b/bundles/all/CHANGELOG.md index f2575ae7dca..32781268f48 100644 --- a/bundles/all/CHANGELOG.md +++ b/bundles/all/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/all + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/all diff --git a/bundles/all/package.dist.json b/bundles/all/package.dist.json index 64c4550d04c..d384338a19d 100644 --- a/bundles/all/package.dist.json +++ b/bundles/all/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/all", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "All-inclusive tsParticles bundle — all engine packages, plugins, interactions, presets, shapes, updaters, effects, paths, emitters, sounds, and palettes in one dependency. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,84 +105,84 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/effect-bubble": "4.1.3", - "@tsparticles/effect-filter": "4.1.3", - "@tsparticles/effect-particles": "4.1.3", - "@tsparticles/effect-shadow": "4.1.3", - "@tsparticles/effect-trail": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-cannon": "4.1.3", - "@tsparticles/interaction-external-particle": "4.1.3", - "@tsparticles/interaction-external-pop": "4.1.3", - "@tsparticles/interaction-light": "4.1.3", - "@tsparticles/interaction-particles-repulse": "4.1.3", - "@tsparticles/path-branches": "4.1.3", - "@tsparticles/path-brownian": "4.1.3", - "@tsparticles/path-curl-noise": "4.1.3", - "@tsparticles/path-curves": "4.1.3", - "@tsparticles/path-fractal-noise": "4.1.3", - "@tsparticles/path-grid": "4.1.3", - "@tsparticles/path-levy": "4.1.3", - "@tsparticles/path-perlin-noise": "4.1.3", - "@tsparticles/path-polygon": "4.1.3", - "@tsparticles/path-random": "4.1.3", - "@tsparticles/path-simplex-noise": "4.1.3", - "@tsparticles/path-spiral": "4.1.3", - "@tsparticles/path-svg": "4.1.3", - "@tsparticles/path-zig-zag": "4.1.3", - "@tsparticles/plugin-background-mask": "4.1.3", - "@tsparticles/plugin-canvas-mask": "4.1.3", - "@tsparticles/plugin-easing-back": "4.1.3", - "@tsparticles/plugin-easing-bounce": "4.1.3", - "@tsparticles/plugin-easing-circ": "4.1.3", - "@tsparticles/plugin-easing-cubic": "4.1.3", - "@tsparticles/plugin-easing-elastic": "4.1.3", - "@tsparticles/plugin-easing-expo": "4.1.3", - "@tsparticles/plugin-easing-gaussian": "4.1.3", - "@tsparticles/plugin-easing-linear": "4.1.3", - "@tsparticles/plugin-easing-quart": "4.1.3", - "@tsparticles/plugin-easing-quint": "4.1.3", - "@tsparticles/plugin-easing-sigmoid": "4.1.3", - "@tsparticles/plugin-easing-sine": "4.1.3", - "@tsparticles/plugin-easing-smoothstep": "4.1.3", - "@tsparticles/plugin-emitters-shape-canvas": "4.1.3", - "@tsparticles/plugin-emitters-shape-path": "4.1.3", - "@tsparticles/plugin-emitters-shape-polygon": "4.1.3", - "@tsparticles/plugin-export-image": "4.1.3", - "@tsparticles/plugin-export-json": "4.1.3", - "@tsparticles/plugin-export-video": "4.1.3", - "@tsparticles/plugin-hsv-color": "4.1.3", - "@tsparticles/plugin-hwb-color": "4.1.3", - "@tsparticles/plugin-infection": "4.1.3", - "@tsparticles/plugin-lab-color": "4.1.3", - "@tsparticles/plugin-lch-color": "4.1.3", - "@tsparticles/plugin-manual-particles": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/plugin-named-color": "4.1.3", - "@tsparticles/plugin-oklab-color": "4.1.3", - "@tsparticles/plugin-oklch-color": "4.1.3", - "@tsparticles/plugin-poisson-disc": "4.1.3", - "@tsparticles/plugin-polygon-mask": "4.1.3", - "@tsparticles/plugin-responsive": "4.1.3", - "@tsparticles/plugin-sounds": "4.1.3", - "@tsparticles/plugin-themes": "4.1.3", - "@tsparticles/plugin-trail": "4.1.3", - "@tsparticles/plugin-zoom": "4.1.3", - "@tsparticles/shape-arrow": "4.1.3", - "@tsparticles/shape-cards": "4.1.3", - "@tsparticles/shape-cog": "4.1.3", - "@tsparticles/shape-heart": "4.1.3", - "@tsparticles/shape-infinity": "4.1.3", - "@tsparticles/shape-matrix": "4.1.3", - "@tsparticles/shape-path": "4.1.3", - "@tsparticles/shape-ribbon": "4.1.3", - "@tsparticles/shape-rounded-polygon": "4.1.3", - "@tsparticles/shape-rounded-rect": "4.1.3", - "@tsparticles/shape-spiral": "4.1.3", - "@tsparticles/shape-squircle": "4.1.3", - "@tsparticles/updater-gradient": "4.1.3", - "@tsparticles/updater-orbit": "4.1.3", - "tsparticles": "4.1.3" + "@tsparticles/effect-bubble": "4.2.0", + "@tsparticles/effect-filter": "4.2.0", + "@tsparticles/effect-particles": "4.2.0", + "@tsparticles/effect-shadow": "4.2.0", + "@tsparticles/effect-trail": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-cannon": "4.2.0", + "@tsparticles/interaction-external-particle": "4.2.0", + "@tsparticles/interaction-external-pop": "4.2.0", + "@tsparticles/interaction-light": "4.2.0", + "@tsparticles/interaction-particles-repulse": "4.2.0", + "@tsparticles/path-branches": "4.2.0", + "@tsparticles/path-brownian": "4.2.0", + "@tsparticles/path-curl-noise": "4.2.0", + "@tsparticles/path-curves": "4.2.0", + "@tsparticles/path-fractal-noise": "4.2.0", + "@tsparticles/path-grid": "4.2.0", + "@tsparticles/path-levy": "4.2.0", + "@tsparticles/path-perlin-noise": "4.2.0", + "@tsparticles/path-polygon": "4.2.0", + "@tsparticles/path-random": "4.2.0", + "@tsparticles/path-simplex-noise": "4.2.0", + "@tsparticles/path-spiral": "4.2.0", + "@tsparticles/path-svg": "4.2.0", + "@tsparticles/path-zig-zag": "4.2.0", + "@tsparticles/plugin-background-mask": "4.2.0", + "@tsparticles/plugin-canvas-mask": "4.2.0", + "@tsparticles/plugin-easing-back": "4.2.0", + "@tsparticles/plugin-easing-bounce": "4.2.0", + "@tsparticles/plugin-easing-circ": "4.2.0", + "@tsparticles/plugin-easing-cubic": "4.2.0", + "@tsparticles/plugin-easing-elastic": "4.2.0", + "@tsparticles/plugin-easing-expo": "4.2.0", + "@tsparticles/plugin-easing-gaussian": "4.2.0", + "@tsparticles/plugin-easing-linear": "4.2.0", + "@tsparticles/plugin-easing-quart": "4.2.0", + "@tsparticles/plugin-easing-quint": "4.2.0", + "@tsparticles/plugin-easing-sigmoid": "4.2.0", + "@tsparticles/plugin-easing-sine": "4.2.0", + "@tsparticles/plugin-easing-smoothstep": "4.2.0", + "@tsparticles/plugin-emitters-shape-canvas": "4.2.0", + "@tsparticles/plugin-emitters-shape-path": "4.2.0", + "@tsparticles/plugin-emitters-shape-polygon": "4.2.0", + "@tsparticles/plugin-export-image": "4.2.0", + "@tsparticles/plugin-export-json": "4.2.0", + "@tsparticles/plugin-export-video": "4.2.0", + "@tsparticles/plugin-hsv-color": "4.2.0", + "@tsparticles/plugin-hwb-color": "4.2.0", + "@tsparticles/plugin-infection": "4.2.0", + "@tsparticles/plugin-lab-color": "4.2.0", + "@tsparticles/plugin-lch-color": "4.2.0", + "@tsparticles/plugin-manual-particles": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/plugin-named-color": "4.2.0", + "@tsparticles/plugin-oklab-color": "4.2.0", + "@tsparticles/plugin-oklch-color": "4.2.0", + "@tsparticles/plugin-poisson-disc": "4.2.0", + "@tsparticles/plugin-polygon-mask": "4.2.0", + "@tsparticles/plugin-responsive": "4.2.0", + "@tsparticles/plugin-sounds": "4.2.0", + "@tsparticles/plugin-themes": "4.2.0", + "@tsparticles/plugin-trail": "4.2.0", + "@tsparticles/plugin-zoom": "4.2.0", + "@tsparticles/shape-arrow": "4.2.0", + "@tsparticles/shape-cards": "4.2.0", + "@tsparticles/shape-cog": "4.2.0", + "@tsparticles/shape-heart": "4.2.0", + "@tsparticles/shape-infinity": "4.2.0", + "@tsparticles/shape-matrix": "4.2.0", + "@tsparticles/shape-path": "4.2.0", + "@tsparticles/shape-ribbon": "4.2.0", + "@tsparticles/shape-rounded-polygon": "4.2.0", + "@tsparticles/shape-rounded-rect": "4.2.0", + "@tsparticles/shape-spiral": "4.2.0", + "@tsparticles/shape-squircle": "4.2.0", + "@tsparticles/updater-gradient": "4.2.0", + "@tsparticles/updater-orbit": "4.2.0", + "tsparticles": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/all/package.json b/bundles/all/package.json index d0140d69c6d..e0159f56fbc 100644 --- a/bundles/all/package.json +++ b/bundles/all/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/all", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "All-inclusive tsParticles bundle — all engine packages, plugins, interactions, presets, shapes, updaters, effects, paths, emitters, sounds, and palettes in one dependency. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -201,7 +201,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/basic/CHANGELOG.md b/bundles/basic/CHANGELOG.md index ba305b8658f..0688fabfb0a 100644 --- a/bundles/basic/CHANGELOG.md +++ b/bundles/basic/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/basic + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/basic diff --git a/bundles/basic/package.dist.json b/bundles/basic/package.dist.json index c5b7182eed7..358f2bfc499 100644 --- a/bundles/basic/package.dist.json +++ b/bundles/basic/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/basic", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Basic tsParticles bundle — minimal core engine with only the essential features for fast, lightweight particle animations. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,17 +105,17 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-blend": "4.1.3", - "@tsparticles/plugin-hex-color": "4.1.3", - "@tsparticles/plugin-hsl-color": "4.1.3", - "@tsparticles/plugin-move": "4.1.3", - "@tsparticles/plugin-rgb-color": "4.1.3", - "@tsparticles/shape-circle": "4.1.3", - "@tsparticles/updater-opacity": "4.1.3", - "@tsparticles/updater-out-modes": "4.1.3", - "@tsparticles/updater-paint": "4.1.3", - "@tsparticles/updater-size": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-blend": "4.2.0", + "@tsparticles/plugin-hex-color": "4.2.0", + "@tsparticles/plugin-hsl-color": "4.2.0", + "@tsparticles/plugin-move": "4.2.0", + "@tsparticles/plugin-rgb-color": "4.2.0", + "@tsparticles/shape-circle": "4.2.0", + "@tsparticles/updater-opacity": "4.2.0", + "@tsparticles/updater-out-modes": "4.2.0", + "@tsparticles/updater-paint": "4.2.0", + "@tsparticles/updater-size": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/basic/package.json b/bundles/basic/package.json index 66009298c9e..fc1c122875e 100644 --- a/bundles/basic/package.json +++ b/bundles/basic/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/basic", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Basic tsParticles bundle — minimal core engine with only the essential features for fast, lightweight particle animations. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -134,7 +134,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/confetti/CHANGELOG.md b/bundles/confetti/CHANGELOG.md index c63faa4457c..2058e05b08c 100644 --- a/bundles/confetti/CHANGELOG.md +++ b/bundles/confetti/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/bundles/confetti/package.dist.json b/bundles/confetti/package.dist.json index da6c4ec0c59..3b0c70882ea 100644 --- a/bundles/confetti/package.dist.json +++ b/bundles/confetti/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/confetti", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles confetti bundle — easily create confetti, confetti cannon, confetti explosions, confetti falling, and confetti parade animations with presets. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,22 +105,22 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-cards": "4.1.3", - "@tsparticles/shape-emoji": "4.1.3", - "@tsparticles/shape-heart": "4.1.3", - "@tsparticles/shape-image": "4.1.3", - "@tsparticles/shape-polygon": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/shape-star": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-cards": "4.2.0", + "@tsparticles/shape-emoji": "4.2.0", + "@tsparticles/shape-heart": "4.2.0", + "@tsparticles/shape-image": "4.2.0", + "@tsparticles/shape-polygon": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/shape-star": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/confetti/package.json b/bundles/confetti/package.json index f6b04747aac..597bea96e00 100644 --- a/bundles/confetti/package.json +++ b/bundles/confetti/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/confetti", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles confetti bundle — easily create confetti, confetti cannon, confetti explosions, confetti falling, and confetti parade animations with presets. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -136,7 +136,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/confetti/src/ConfettiOptions.ts b/bundles/confetti/src/ConfettiOptions.ts index 26fc47ffcb6..1be6bcc0338 100644 --- a/bundles/confetti/src/ConfettiOptions.ts +++ b/bundles/confetti/src/ConfettiOptions.ts @@ -8,6 +8,7 @@ import { deepExtend, isArray, isNull, + loadProperty, percentDenominator, } from "@tsparticles/engine"; import type { IConfettiOptions } from "./IConfettiOptions.js"; @@ -121,16 +122,14 @@ export class ConfettiOptions implements IConfettiOptions, IOptionLoader): void { if (isNull(data)) { return; } - if (data.angle !== undefined) { - this.angle = data.angle; - } + loadProperty(this, "angle", data.angle); // eslint-disable-next-line @typescript-eslint/no-deprecated const count = data.count ?? data.particleCount; @@ -139,33 +138,13 @@ export class ConfettiOptions implements IConfettiOptions, IOptionLoader { /** * This function prepares all the plugins needed by the confetti bundle - * @param engine - + * @param engine - The engine to load the shape in * @returns the init plugins promise * @internal */ @@ -137,8 +137,8 @@ export async function confetti( /** * - * @param canvas - - * @param options - + * @param canvas - The canvas + * @param options - The options to handle * @returns the confetti function to use for the given canvas animations */ confetti.create = async ( diff --git a/bundles/confetti/src/confetti.ts b/bundles/confetti/src/confetti.ts index c019ad6df76..317fa7dcf92 100644 --- a/bundles/confetti/src/confetti.ts +++ b/bundles/confetti/src/confetti.ts @@ -69,7 +69,7 @@ async function doInitPlugins(engine: Engine): Promise { /** * This function prepares all the plugins needed by the confetti bundle - * @param engine - + * @param engine - The engine to load the shape in * @returns the init plugins promise * @internal */ @@ -112,8 +112,8 @@ export async function confetti( /** * - * @param canvas - - * @param options - + * @param canvas - The canvas + * @param options - The options to handle * @returns the confetti function to use for the given canvas animations */ confetti.create = async ( diff --git a/bundles/confetti/src/utils.ts b/bundles/confetti/src/utils.ts index e01d63f75f9..9c4481bda66 100644 --- a/bundles/confetti/src/utils.ts +++ b/bundles/confetti/src/utils.ts @@ -15,9 +15,9 @@ const defaultGravity = 9.81, /** * Adds an emitter to the container for confetti particles - * @param container - - * @param actualOptions - - * @param opacitySpeed - + * @param container - The container to handle + * @param actualOptions - The actualOptions + * @param opacitySpeed - The opacitySpeed */ export async function addEmitter( container: EmitterContainer, @@ -137,9 +137,9 @@ export async function addEmitter( /** * Converts confetti options to tsParticles source options - * @param actualOptions - - * @param params - - * @param opacitySpeed - + * @param actualOptions - The actualOptions + * @param params - The parameters + * @param opacitySpeed - The opacitySpeed * @returns the converted options */ export function convertOptions( diff --git a/bundles/fireworks/CHANGELOG.md b/bundles/fireworks/CHANGELOG.md index 2fee358c465..c8ba965aa8b 100644 --- a/bundles/fireworks/CHANGELOG.md +++ b/bundles/fireworks/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed anglar secondary wrappers and their bundles with proper destroy ([120fe5d](https://github.com/tsparticles/tsparticles/commit/120fe5d697a93a9fe3faf20bfeb1f65f8a397273)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/fireworks diff --git a/bundles/fireworks/package.dist.json b/bundles/fireworks/package.dist.json index 0bc4ba78c8e..77f001ab82f 100644 --- a/bundles/fireworks/package.dist.json +++ b/bundles/fireworks/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/fireworks", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles fireworks bundle — easily create spectacular fireworks and fountain particle effects with built-in presets. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,17 +105,17 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-blend": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/plugin-sounds": "4.1.3", - "@tsparticles/shape-line": "4.1.3", - "@tsparticles/updater-destroy": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-paint": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-blend": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/plugin-sounds": "4.2.0", + "@tsparticles/shape-line": "4.2.0", + "@tsparticles/updater-destroy": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-paint": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/fireworks/package.json b/bundles/fireworks/package.json index faab3d419a1..6a1b8d979ef 100644 --- a/bundles/fireworks/package.json +++ b/bundles/fireworks/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/fireworks", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles fireworks bundle — easily create spectacular fireworks and fountain particle effects with built-in presets. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -131,7 +131,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/fireworks/src/FireworkOptions.ts b/bundles/fireworks/src/FireworkOptions.ts index 9ebfff90e08..1c1d17edadb 100644 --- a/bundles/fireworks/src/FireworkOptions.ts +++ b/bundles/fireworks/src/FireworkOptions.ts @@ -5,7 +5,8 @@ import { type SingleOrMultiple, isArray, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IFireworkOptions } from "./IFireworkOptions.js"; @@ -94,17 +95,13 @@ export class FireworkOptions implements IFireworkOptions, IOptionLoader): void { if (isNull(data)) { return; } - if (data.background !== undefined) { - this.background = data.background; - } - if (data.colors !== undefined) { if (isArray(data.colors)) { this.colors = [...data.colors]; @@ -113,36 +110,14 @@ export class FireworkOptions implements IFireworkOptions, IOptionLoader>(); +/** + * @param id + * @internal + */ +export function deleteFireworksInstance(id: string): void { + instances.delete(id); +} + /** * Checks if a particle supports explosion sounds - * @param args + * @param args - The arguments + * @returns The boolean value */ export const explodeSoundCheck = (args: CustomEventArgs): boolean => { const data = args.data as { particle?: Particle } | undefined; @@ -32,8 +41,8 @@ export const explodeSoundCheck = (args: CustomEventArgs): boolean => { /** * Converts firework options to tsParticles source options - * @param options - - * @param canvas - + * @param options - The options to handle + * @param canvas - The canvas * @returns the options for the tsParticles instance */ export function getOptions(options: IFireworkOptions, canvas?: HTMLCanvasElement): ISourceOptions { @@ -205,10 +214,10 @@ export function getOptions(options: IFireworkOptions, canvas?: HTMLCanvasElement /** * Gets or creates a fireworks instance for the given id - * @param engine - - * @param id - - * @param sourceOptions - - * @param canvas - + * @param engine - The engine to load the shape in + * @param id - The id + * @param sourceOptions - The sourceOptions + * @param canvas - The canvas * @returns the loaded instance */ export async function getFireworksInstance( @@ -225,7 +234,12 @@ export async function getFireworksInstance( } if (existing) { - return existing; // Return existing instance + if (!existing.destroyed) { + return existing; // Return existing valid instance + } + + /* Discard the destroyed instance so a new one is created below */ + instances.delete(id); } /* Create a locking promise */ @@ -244,7 +258,7 @@ export async function getFireworksInstance( } const { FireworksInstance } = await import("./FireworksInstance.js"), - instance = new FireworksInstance(container); + instance = new FireworksInstance(container, id); /* Swap the promise for the actual instance */ instances.set(id, instance); diff --git a/bundles/full/CHANGELOG.md b/bundles/full/CHANGELOG.md index 9d60331f423..77f775effe1 100644 --- a/bundles/full/CHANGELOG.md +++ b/bundles/full/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package tsparticles + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package tsparticles diff --git a/bundles/full/package.dist.json b/bundles/full/package.dist.json index d15d53e2b81..e26c9582c1e 100644 --- a/bundles/full/package.dist.json +++ b/bundles/full/package.dist.json @@ -1,7 +1,7 @@ { "name": "tsparticles", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Full-featured tsParticles bundle — create stunning particle, confetti and fireworks animations with all official plugins and presets included. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,20 +105,20 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-drag": "4.1.3", - "@tsparticles/interaction-external-trail": "4.1.3", - "@tsparticles/plugin-absorbers": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-circle": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/shape-text": "4.1.3", - "@tsparticles/slim": "4.1.3", - "@tsparticles/updater-destroy": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-twinkle": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-drag": "4.2.0", + "@tsparticles/interaction-external-trail": "4.2.0", + "@tsparticles/plugin-absorbers": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-circle": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/shape-text": "4.2.0", + "@tsparticles/slim": "4.2.0", + "@tsparticles/updater-destroy": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-twinkle": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/full/package.json b/bundles/full/package.json index 69253ac81c0..acc0340cecf 100644 --- a/bundles/full/package.json +++ b/bundles/full/package.json @@ -1,7 +1,7 @@ { "name": "tsparticles", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Full-featured tsParticles bundle — create stunning particle, confetti and fireworks animations with all official plugins and presets included. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -137,7 +137,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/particles/CHANGELOG.md b/bundles/particles/CHANGELOG.md index c532036334f..a9f1853c0f5 100644 --- a/bundles/particles/CHANGELOG.md +++ b/bundles/particles/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed anglar secondary wrappers and their bundles with proper destroy ([120fe5d](https://github.com/tsparticles/tsparticles/commit/120fe5d697a93a9fe3faf20bfeb1f65f8a397273)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/particles diff --git a/bundles/particles/package.dist.json b/bundles/particles/package.dist.json index 735a7215147..fc6b9701db0 100644 --- a/bundles/particles/package.dist.json +++ b/bundles/particles/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/particles", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Minimal tsParticles particles bundle — lightweight particle engine without confetti or fireworks extras. Perfect for pure particle backgrounds. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -9,8 +9,49 @@ "directory": "bundles/particles" }, "keywords": [ - "particles", + "front-end", + "frontend", "tsparticles", + "particles.js", + "particlesjs", + "particles", + "particle", + "canvas", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", + "typescript", + "javascript", + "animation", + "web", + "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", + "animated", + "background", "canvas" ], "author": "Matteo Bruni ", @@ -40,11 +81,11 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-particles-collisions": "4.1.3", - "@tsparticles/interaction-particles-links": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-particles-collisions": "4.2.0", + "@tsparticles/interaction-particles-links": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/particles/package.json b/bundles/particles/package.json index f7314b2d411..4eed18fb79c 100644 --- a/bundles/particles/package.json +++ b/bundles/particles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/particles", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Minimal tsParticles particles bundle — lightweight particle engine without confetti or fireworks extras. Perfect for pure particle backgrounds. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -119,7 +119,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/particles/src/ParticlesInstance.ts b/bundles/particles/src/ParticlesInstance.ts index 6a31cad3627..c6152af0bc7 100644 --- a/bundles/particles/src/ParticlesInstance.ts +++ b/bundles/particles/src/ParticlesInstance.ts @@ -1,15 +1,31 @@ import type { Container } from "@tsparticles/engine"; +import { deleteParticlesInstance } from "./utils.js"; /** Particles instance wrapper */ export class ParticlesInstance { readonly #container: Container; + readonly #id: string; /** * Creates a new ParticlesInstance - * @param container + * @param container - The container to handle + * @param id - The instance id used as the cache key */ - constructor(container: Container) { + constructor(container: Container, id: string) { this.#container = container; + this.#id = id; + } + + /** Whether the underlying container has been destroyed */ + get destroyed(): boolean { + return this.#container.destroyed; + } + + /** Destroys the container and removes the instance from the internal cache */ + destroy(): void { + this.#container.destroy(); + + deleteParticlesInstance(this.#id); } /** Pause the particles animation */ diff --git a/bundles/particles/src/particles.lazy.ts b/bundles/particles/src/particles.lazy.ts index 8527d13e64d..dafd93f6151 100644 --- a/bundles/particles/src/particles.lazy.ts +++ b/bundles/particles/src/particles.lazy.ts @@ -100,8 +100,9 @@ export async function particles( /** * Creates a particles animation on the given canvas - * @param canvas - * @param options + * @param canvas - The canvas + * @param options - The options to handle + * @returns A promise */ particles.create = async ( canvas?: HTMLCanvasElement | null, diff --git a/bundles/particles/src/particles.ts b/bundles/particles/src/particles.ts index e8fd9fe4d84..a3da6b105e7 100644 --- a/bundles/particles/src/particles.ts +++ b/bundles/particles/src/particles.ts @@ -93,8 +93,9 @@ export async function particles( /** * Creates a particles animation on the given canvas - * @param canvas - * @param options + * @param canvas - The canvas + * @param options - The options to handle + * @returns A promise */ particles.create = async ( canvas?: HTMLCanvasElement | null, diff --git a/bundles/particles/src/utils.ts b/bundles/particles/src/utils.ts index 950be0fcd7e..8c8169e1b1a 100644 --- a/bundles/particles/src/utils.ts +++ b/bundles/particles/src/utils.ts @@ -2,8 +2,17 @@ import type { Engine, ISourceOptions, RecursivePartial } from "@tsparticles/engi import type { IParticlesOptions } from "./IParticlesOptions.js"; import type { ParticlesInstance } from "./ParticlesInstance.js"; -const instances = new Map>(), - defaultCount = 80, +const instances = new Map>(); + +/** + * @param id + * @internal + */ +export function deleteParticlesInstance(id: string): void { + instances.delete(id); +} + +const defaultCount = 80, defaultLinksWidth = 100, defaultSpeed = 3, defaultOpacity = 1, @@ -73,7 +82,11 @@ export async function getParticlesInstance( } if (existing) { - return existing; + if (!existing.destroyed) { + return existing; + } + + instances.delete(id); } const create = async (): Promise => { @@ -87,7 +100,7 @@ export async function getParticlesInstance( } const { ParticlesInstance } = await import("./ParticlesInstance.js"), - instance = new ParticlesInstance(container); + instance = new ParticlesInstance(container, id); instances.set(id, instance); diff --git a/bundles/pjs/CHANGELOG.md b/bundles/pjs/CHANGELOG.md index 1a49edada0a..9489ebe8f76 100644 --- a/bundles/pjs/CHANGELOG.md +++ b/bundles/pjs/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/pjs diff --git a/bundles/pjs/package.dist.json b/bundles/pjs/package.dist.json index 9bf64a29a9c..a2a41799e61 100644 --- a/bundles/pjs/package.dist.json +++ b/bundles/pjs/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/pjs", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles particles.js compatibility layer — drop-in replacement for particles.js with full API compatibility and enhanced features. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -98,9 +98,9 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-responsive": "4.1.3", - "tsparticles": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-responsive": "4.2.0", + "tsparticles": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/pjs/package.json b/bundles/pjs/package.json index 92cc1c63577..60287719a86 100644 --- a/bundles/pjs/package.json +++ b/bundles/pjs/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/pjs", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "tsParticles particles.js compatibility layer — drop-in replacement for particles.js with full API compatibility and enhanced features. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -110,7 +110,7 @@ "tsparticles": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, "publishConfig": { diff --git a/bundles/pjs/src/VincentGarreau/particles.ts b/bundles/pjs/src/VincentGarreau/particles.ts index cb8274a1e32..d17f33a09ba 100644 --- a/bundles/pjs/src/VincentGarreau/particles.ts +++ b/bundles/pjs/src/VincentGarreau/particles.ts @@ -119,7 +119,8 @@ const defaultMinOpacity = 0, }, /** * Initializes particlesJS compatibility layer - * @param engine + * @param engine - The engine to load the shape in + * @returns The initialization object with pJSDom and particlesJS */ initParticlesJS = ( engine: InteractivityEngine, diff --git a/bundles/pjs/src/marcbruederlin/Particles.ts b/bundles/pjs/src/marcbruederlin/Particles.ts index b6ff40f4eac..9396d59df1f 100644 --- a/bundles/pjs/src/marcbruederlin/Particles.ts +++ b/bundles/pjs/src/marcbruederlin/Particles.ts @@ -49,7 +49,8 @@ export class MBParticles { /** Initializes a new particles instance with the given options */ /** * Initializes a new particles instance with the given options - * @param options + * @param options - The options to handle + * @returns The result */ static init(options: RecursivePartial): MBParticles { const particles = new MBParticles(), diff --git a/bundles/ribbons/CHANGELOG.md b/bundles/ribbons/CHANGELOG.md index 0e2844e4a31..347102206e5 100644 --- a/bundles/ribbons/CHANGELOG.md +++ b/bundles/ribbons/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([b54b5db](https://github.com/tsparticles/tsparticles/commit/b54b5dbc8acc42c15f81f8c8d02c29d2867517ac)) +- various fixes after deeper review ([49e9af4](https://github.com/tsparticles/tsparticles/commit/49e9af44e178ec460934db8485ed624b09527464)) + +### Features + +- added positionX option to ribbons bundle, deprecating position object ([7f01bf2](https://github.com/tsparticles/tsparticles/commit/7f01bf2852d0d4c08af803216d5b8d905603a701)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/bundles/ribbons/README.md b/bundles/ribbons/README.md index b475ab27ce3..e1fc8f5bf41 100644 --- a/bundles/ribbons/README.md +++ b/bundles/ribbons/README.md @@ -38,7 +38,7 @@ import { ribbons } from "@tsparticles/ribbons"; await ribbons({ count: 5, - position: { x: 50, y: 0 }, + positionX: 50, }); ``` @@ -64,8 +64,9 @@ Main options: - `count` _Integer (default: 5)_ - `ticks` _Number (default: 200)_ -- `position` _Object_ (`x`/`y`, default 50/0, in percent) -- `emitterSize` _Object_ (`width`/`height`, default 100/0, in percent) +- `positionX` _Number (default: 50, in percent)_ +- `position` _Object_ (`x`/`y`) — **deprecated**, use `positionX` instead; `y` is ignored (emitter always spawns at top-of-canvas) +- `emitterSize` _Object_ (`width`/`height`, default 100/0, in percent) — spawn width is controlled by `emitterSize.width` (default 100); not always full width - `colors` _Array<String>_ - `ribbonOptions` _Object_ (`particles.shape.options.ribbon`) - Includes `darken: { enable: true, value: 30 }` by default @@ -74,9 +75,10 @@ Main options: - `disableForReducedMotion` _Boolean (default: true)_ The `ribbons` bundle disables `roll`, `rotate`, `tilt`, and `wobble` on ribbon particles by default for better shape stability. -The emitter spawns from the configured `position` using a full-width strip and downward movement for a falling-from-top effect. +The emitter spawns from `positionX` across a strip whose width is controlled by `emitterSize.width` (default 100%), with downward movement for a falling-from-top effect. The emitter is always positioned at the top of the canvas. Deprecated aliases still accepted: - `particleCount` (use `count`) -- `origin` (use `position`) +- `position` (use `positionX`) +- `origin` (use `positionX`) diff --git a/bundles/ribbons/package.dist.json b/bundles/ribbons/package.dist.json index 9d5922481a6..15b0efdd835 100644 --- a/bundles/ribbons/package.dist.json +++ b/bundles/ribbons/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/ribbons", - "version": "4.1.3", - "description": "Easily create ready to use animated ribbons effects.", + "version": "4.2.0", + "description": "tsParticles ribbons bundle — easily create animated ribbons, ribbon bursts and ribbon falling effects. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -17,16 +17,45 @@ "particles", "particle", "canvas", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", "typescript", "javascript", "animation", "web", "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", "animated", "background", "ribbon", "ribbons", "confetti", + "canvas", "canvas-confetti" ], "author": "Matteo Bruni ", @@ -73,13 +102,13 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-ribbon": "4.1.3", - "@tsparticles/updater-life": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-ribbon": "4.2.0", + "@tsparticles/updater-life": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/ribbons/package.json b/bundles/ribbons/package.json index dddeed9e18b..25a6e4f9a33 100644 --- a/bundles/ribbons/package.json +++ b/bundles/ribbons/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/ribbons", - "version": "4.1.3", - "description": "Easily create ready to use animated ribbons effects.", + "version": "4.2.0", + "description": "tsParticles ribbons bundle — easily create animated ribbons, ribbon bursts and ribbon falling effects. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -22,16 +22,45 @@ "particles", "particle", "canvas", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", "typescript", "javascript", "animation", "web", "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", "animated", "background", "ribbon", "ribbons", "confetti", + "canvas", "canvas-confetti" ], "author": "Matteo Bruni ", @@ -95,7 +124,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/bundles/ribbons/src/IRibbonsOptions.ts b/bundles/ribbons/src/IRibbonsOptions.ts index f1473b74b07..1858ce30ba9 100644 --- a/bundles/ribbons/src/IRibbonsOptions.ts +++ b/bundles/ribbons/src/IRibbonsOptions.ts @@ -11,7 +11,7 @@ export interface IRibbonsOptions { /** Disables ribbons for users who prefer reduced motion */ disableForReducedMotion: boolean; - /** Emitter size for particle spawn area (in percent). Default: { width: 100, height: 0 } */ + /** Emitter size for particle spawn area (in percent). Default: \{ width: 100, height: 0 \} */ emitterSize: IDimension; /** @@ -24,9 +24,14 @@ export interface IRibbonsOptions { */ particleCount: number; - /** Ribbons position in percent */ + /** + * @deprecated use positionX instead + */ position: ICoordinates; + /** Ribbons horizontal spawn position (percent). Default: 50 */ + positionX: number; + /** Ribbon shape options */ ribbonOptions: SingleOrMultiple; diff --git a/bundles/ribbons/src/RibbonsOptions.ts b/bundles/ribbons/src/RibbonsOptions.ts index 21f9825b0bc..d3c658a2c3b 100644 --- a/bundles/ribbons/src/RibbonsOptions.ts +++ b/bundles/ribbons/src/RibbonsOptions.ts @@ -8,6 +8,7 @@ import { deepExtend, isArray, isNull, + loadProperty, percentDenominator, } from "@tsparticles/engine"; import type { IRibbonsOptions } from "./IRibbonsOptions.js"; @@ -26,8 +27,8 @@ export class RibbonsOptions implements IRibbonsOptions, IOptionLoader; @@ -48,11 +49,8 @@ export class RibbonsOptions implements IRibbonsOptions, IOptionLoader): void { if (isNull(data)) { @@ -132,9 +147,7 @@ export class RibbonsOptions implements IRibbonsOptions, IOptionLoader; } - if (data.scalar !== undefined) { - this.scalar = data.scalar; - } - - if (data.zIndex !== undefined) { - this.zIndex = data.zIndex; - } - - if (data.disableForReducedMotion !== undefined) { - this.disableForReducedMotion = data.disableForReducedMotion; - } + loadProperty(this, "scalar", data.scalar); + loadProperty(this, "zIndex", data.zIndex); + loadProperty(this, "disableForReducedMotion", data.disableForReducedMotion); } } diff --git a/bundles/ribbons/src/ribbons.lazy.ts b/bundles/ribbons/src/ribbons.lazy.ts index 7c7b289d977..5f2ff12ac2e 100644 --- a/bundles/ribbons/src/ribbons.lazy.ts +++ b/bundles/ribbons/src/ribbons.lazy.ts @@ -64,7 +64,7 @@ async function doInitPlugins(engine: Engine): Promise { /** * This function prepares all the plugins needed by the ribbons bundle - * @param engine - + * @param engine - The engine to load the shape in * @returns the init plugins promise * @internal */ @@ -107,8 +107,8 @@ export async function ribbons( /** * - * @param canvas - - * @param options - + * @param canvas - The canvas + * @param options - The options to handle * @returns the ribbons function to use for the given canvas animations */ ribbons.create = async ( diff --git a/bundles/ribbons/src/ribbons.ts b/bundles/ribbons/src/ribbons.ts index 5b9304c33b0..5c927ed9214 100644 --- a/bundles/ribbons/src/ribbons.ts +++ b/bundles/ribbons/src/ribbons.ts @@ -55,7 +55,7 @@ async function doInitPlugins(engine: Engine): Promise { /** * This function prepares all the plugins needed by the ribbons bundle - * @param engine - + * @param engine - The engine to load the shape in * @returns the init plugins promise * @internal */ @@ -98,8 +98,8 @@ export async function ribbons( /** * - * @param canvas - - * @param options - + * @param canvas - The canvas + * @param options - The options to handle * @returns the ribbons function to use for the given canvas animations */ ribbons.create = async ( diff --git a/bundles/ribbons/src/utils.ts b/bundles/ribbons/src/utils.ts index d3b2573817b..da3db3f6660 100644 --- a/bundles/ribbons/src/utils.ts +++ b/bundles/ribbons/src/utils.ts @@ -9,14 +9,14 @@ const sizeFactor = 8, /** * Adds an emitter to the container for ribbon particles - * @param container - - * @param actualOptions - + * @param container - The container to handle + * @param actualOptions - The actualOptions */ export async function addEmitter(container: EmitterContainer, actualOptions: RibbonsOptions): Promise { await container.addEmitter?.({ startCount: actualOptions.count, position: { - x: actualOptions.position.x, + x: actualOptions.positionX, y: emitterTop, }, shape: { @@ -89,8 +89,8 @@ export async function addEmitter(container: EmitterContainer, actualOptions: Rib /** * Converts ribbons options to tsParticles source options - * @param actualOptions - - * @param params - + * @param actualOptions - The actualOptions + * @param params - The parameters * @returns the converted options */ export function convertOptions(actualOptions: RibbonsOptions, params: RibbonsParams): ISourceOptions { @@ -163,7 +163,7 @@ export function convertOptions(actualOptions: RibbonsOptions, params: RibbonsPar name: "ribbons", startCount: actualOptions.count, position: { - x: actualOptions.position.x, + x: actualOptions.positionX, y: emitterTop, }, shape: { diff --git a/bundles/slim/CHANGELOG.md b/bundles/slim/CHANGELOG.md index a194fcc4ca0..c7bf619c9af 100644 --- a/bundles/slim/CHANGELOG.md +++ b/bundles/slim/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/slim + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/slim diff --git a/bundles/slim/package.dist.json b/bundles/slim/package.dist.json index 9348d66e7bb..aad06891b55 100644 --- a/bundles/slim/package.dist.json +++ b/bundles/slim/package.dist.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/slim", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Slim tsParticles bundle — core engine with essential plugins, presets, and interactions for lightweight particle animations. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "repository": { "type": "git", @@ -105,34 +105,34 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-attract": "4.1.3", - "@tsparticles/interaction-external-bounce": "4.1.3", - "@tsparticles/interaction-external-bubble": "4.1.3", - "@tsparticles/interaction-external-connect": "4.1.3", - "@tsparticles/interaction-external-destroy": "4.1.3", - "@tsparticles/interaction-external-grab": "4.1.3", - "@tsparticles/interaction-external-parallax": "4.1.3", - "@tsparticles/interaction-external-pause": "4.1.3", - "@tsparticles/interaction-external-push": "4.1.3", - "@tsparticles/interaction-external-remove": "4.1.3", - "@tsparticles/interaction-external-repulse": "4.1.3", - "@tsparticles/interaction-external-slow": "4.1.3", - "@tsparticles/interaction-particles-attract": "4.1.3", - "@tsparticles/interaction-particles-collisions": "4.1.3", - "@tsparticles/interaction-particles-links": "4.1.3", - "@tsparticles/plugin-easing-quad": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3", - "@tsparticles/shape-emoji": "4.1.3", - "@tsparticles/shape-image": "4.1.3", - "@tsparticles/shape-line": "4.1.3", - "@tsparticles/shape-polygon": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/shape-star": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-paint": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-attract": "4.2.0", + "@tsparticles/interaction-external-bounce": "4.2.0", + "@tsparticles/interaction-external-bubble": "4.2.0", + "@tsparticles/interaction-external-connect": "4.2.0", + "@tsparticles/interaction-external-destroy": "4.2.0", + "@tsparticles/interaction-external-grab": "4.2.0", + "@tsparticles/interaction-external-parallax": "4.2.0", + "@tsparticles/interaction-external-pause": "4.2.0", + "@tsparticles/interaction-external-push": "4.2.0", + "@tsparticles/interaction-external-remove": "4.2.0", + "@tsparticles/interaction-external-repulse": "4.2.0", + "@tsparticles/interaction-external-slow": "4.2.0", + "@tsparticles/interaction-particles-attract": "4.2.0", + "@tsparticles/interaction-particles-collisions": "4.2.0", + "@tsparticles/interaction-particles-links": "4.2.0", + "@tsparticles/plugin-easing-quad": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0", + "@tsparticles/shape-emoji": "4.2.0", + "@tsparticles/shape-image": "4.2.0", + "@tsparticles/shape-line": "4.2.0", + "@tsparticles/shape-polygon": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/shape-star": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-paint": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/bundles/slim/package.json b/bundles/slim/package.json index 5b0eea88f09..269a13f325d 100644 --- a/bundles/slim/package.json +++ b/bundles/slim/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/slim", - "version": "4.1.3", - "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", + "version": "4.2.0", + "description": "Slim tsParticles bundle — core engine with essential plugins, presets, and interactions for lightweight particle animations. Ready to use components available for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -151,7 +151,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/cli/commands/build-bundle-rollup/CHANGELOG.md b/cli/commands/build-bundle-rollup/CHANGELOG.md index b30840e8991..742fe803637 100644 --- a/cli/commands/build-bundle-rollup/CHANGELOG.md +++ b/cli/commands/build-bundle-rollup/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-bundle-rollup diff --git a/cli/commands/build-bundle-rollup/LICENSE b/cli/commands/build-bundle-rollup/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-bundle-rollup/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-bundle-rollup/package.json b/cli/commands/build-bundle-rollup/package.json index f7a4ea680a7..10426ca6993 100644 --- a/cli/commands/build-bundle-rollup/package.json +++ b/cli/commands/build-bundle-rollup/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-bundle-rollup", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -34,41 +34,41 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/rollup-plugin": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/rollup-plugin": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", - "rollup": "^4.60.4", + "rollup": "^4.62.0", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", "ts-node": "^10.9.2", - "vitest": "^4.1.7" + "vitest": "^4.1.9" }, "description": "tsParticles CLI", "main": "dist/bundle-rollup.js", diff --git a/cli/commands/build-bundle-rollup/src/utils.ts b/cli/commands/build-bundle-rollup/src/utils.ts index 72c561dd6ab..1e32982aae6 100644 --- a/cli/commands/build-bundle-rollup/src/utils.ts +++ b/cli/commands/build-bundle-rollup/src/utils.ts @@ -10,7 +10,7 @@ const rollupConfigCandidates = ["rollup.config.mjs", "rollup.config.js", "rollup emptyCount = 0; /** - * @param configData - + * @param configData - The configData * @returns - */ function normalizeRollupConfigs(configData: RollupOptions | RollupOptions[]): RollupOptions[] { @@ -18,7 +18,7 @@ function normalizeRollupConfigs(configData: RollupOptions | RollupOptions[]): Ro } /** - * @param basePath - + * @param basePath - The basePath * @returns - */ async function loadRollupConfig(basePath: string): Promise { @@ -56,8 +56,8 @@ async function loadRollupConfig(basePath: string): Promise { } /** - * @param bundleResult - - * @param output - + * @param bundleResult - The bundleResult + * @param output - The output * @returns - */ async function writeRollupOutput( @@ -74,8 +74,8 @@ async function writeRollupOutput( } /** - * @param basePath - - * @param silent - + * @param basePath - The basePath + * @param silent - The silent * @returns true if the bundle was created */ export async function bundleRollup(basePath: string, silent: boolean): Promise { diff --git a/cli/commands/build-bundle-webpack/CHANGELOG.md b/cli/commands/build-bundle-webpack/CHANGELOG.md index f6383da2380..05c8cd2ffea 100644 --- a/cli/commands/build-bundle-webpack/CHANGELOG.md +++ b/cli/commands/build-bundle-webpack/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-bundle-webpack diff --git a/cli/commands/build-bundle-webpack/LICENSE b/cli/commands/build-bundle-webpack/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-bundle-webpack/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-bundle-webpack/package.json b/cli/commands/build-bundle-webpack/package.json index 79448c95c8f..18eb139a974 100644 --- a/cli/commands/build-bundle-webpack/package.json +++ b/cli/commands/build-bundle-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-bundle-webpack", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -34,34 +34,34 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", - "@tsparticles/webpack-plugin": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", + "@tsparticles/webpack-plugin": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0", + "typescript-eslint": "^8.61.1", "webpack": "^5.107.2" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "@types/webpack-env": "^1.18.8", "browserslist": "^4.28.2", @@ -70,7 +70,7 @@ "cross-env": "^10.1.0", "terser-webpack-plugin": "^5.6.1", "ts-node": "^10.9.2", - "vitest": "^4.1.7", + "vitest": "^4.1.9", "webpack-bundle-analyzer": "^5.3.0", "webpack-cli": "^7.0.3" }, diff --git a/cli/commands/build-bundle-webpack/src/utils.ts b/cli/commands/build-bundle-webpack/src/utils.ts index 5ea6fedc309..157af8363a6 100644 --- a/cli/commands/build-bundle-webpack/src/utils.ts +++ b/cli/commands/build-bundle-webpack/src/utils.ts @@ -2,8 +2,8 @@ import path from "node:path"; import webpack from "webpack"; /** - * @param basePath - - * @param silent - + * @param basePath - The basePath + * @param silent - The silent * @returns true if the bundle was created */ export async function bundleWebpack(basePath: string, silent: boolean): Promise { diff --git a/cli/commands/build-circular-deps/CHANGELOG.md b/cli/commands/build-circular-deps/CHANGELOG.md index d820214e857..2c5297aebef 100644 --- a/cli/commands/build-circular-deps/CHANGELOG.md +++ b/cli/commands/build-circular-deps/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-build-circular-deps + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-circular-deps diff --git a/cli/commands/build-circular-deps/LICENSE b/cli/commands/build-circular-deps/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-circular-deps/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-circular-deps/package.json b/cli/commands/build-circular-deps/package.json index 09672cc2f58..1e68faba30a 100644 --- a/cli/commands/build-circular-deps/package.json +++ b/cli/commands/build-circular-deps/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-circular-deps", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -34,32 +34,32 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", diff --git a/cli/commands/build-clear/CHANGELOG.md b/cli/commands/build-clear/CHANGELOG.md index 415e40b8ebd..e35ecfb67cb 100644 --- a/cli/commands/build-clear/CHANGELOG.md +++ b/cli/commands/build-clear/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-clear diff --git a/cli/commands/build-clear/LICENSE b/cli/commands/build-clear/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-clear/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-clear/package.json b/cli/commands/build-clear/package.json index d163dbc4021..094cba9637b 100644 --- a/cli/commands/build-clear/package.json +++ b/cli/commands/build-clear/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-clear", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -34,32 +34,32 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", diff --git a/cli/commands/build-clear/src/utils.ts b/cli/commands/build-clear/src/utils.ts index ba5a4275d61..8dd4100d9cc 100644 --- a/cli/commands/build-clear/src/utils.ts +++ b/cli/commands/build-clear/src/utils.ts @@ -2,8 +2,8 @@ import path from "node:path"; import { rimraf } from "rimraf"; /** - * @param basePath - - * @param silent - + * @param basePath - The basePath + * @param silent - The silent * @returns true if the dist folder was cleared */ export async function clearDist(basePath: string, silent: boolean): Promise { diff --git a/cli/commands/build-distfiles/CHANGELOG.md b/cli/commands/build-distfiles/CHANGELOG.md index f40ebea9459..89c630de421 100644 --- a/cli/commands/build-distfiles/CHANGELOG.md +++ b/cli/commands/build-distfiles/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-distfiles diff --git a/cli/commands/build-distfiles/LICENSE b/cli/commands/build-distfiles/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-distfiles/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-distfiles/package.json b/cli/commands/build-distfiles/package.json index 26561508e7f..66349cb09e8 100644 --- a/cli/commands/build-distfiles/package.json +++ b/cli/commands/build-distfiles/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-distfiles", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -34,32 +34,32 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", diff --git a/cli/commands/build-distfiles/src/utils.ts b/cli/commands/build-distfiles/src/utils.ts index 5c5f72e6a3d..f45501440c2 100644 --- a/cli/commands/build-distfiles/src/utils.ts +++ b/cli/commands/build-distfiles/src/utils.ts @@ -4,8 +4,8 @@ import klaw from "klaw"; import path from "node:path"; /** - * @param value - - * @param version - + * @param value - The value + * @param version - The version * @returns - */ function resolveWorkspaceVersion(value: string, version: string): string { @@ -27,8 +27,8 @@ function resolveWorkspaceVersion(value: string, version: string): string { } /** - * @param deps - - * @param version - + * @param deps - The deps + * @param version - The version * @returns - */ function resolveDeps(deps: Record, version: string): Record { @@ -41,8 +41,8 @@ function resolveDeps(deps: Record, version: string): Record { diff --git a/cli/commands/build-diststats/CHANGELOG.md b/cli/commands/build-diststats/CHANGELOG.md index ff6d604eed3..d7c8fbaa105 100644 --- a/cli/commands/build-diststats/CHANGELOG.md +++ b/cli/commands/build-diststats/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-build-diststats + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-diststats diff --git a/cli/commands/build-diststats/LICENSE b/cli/commands/build-diststats/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-diststats/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-diststats/package.json b/cli/commands/build-diststats/package.json index 22c812941cf..3a5039ab006 100644 --- a/cli/commands/build-diststats/package.json +++ b/cli/commands/build-diststats/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-diststats", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,31 +31,31 @@ "prepack": "pnpm run build" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", diff --git a/cli/commands/build-eslint/CHANGELOG.md b/cli/commands/build-eslint/CHANGELOG.md index ba49f97026f..9903b88a84a 100644 --- a/cli/commands/build-eslint/CHANGELOG.md +++ b/cli/commands/build-eslint/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-eslint diff --git a/cli/commands/build-eslint/LICENSE b/cli/commands/build-eslint/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-eslint/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-eslint/package.json b/cli/commands/build-eslint/package.json index 22c8845c5d0..bbce422d12b 100644 --- a/cli/commands/build-eslint/package.json +++ b/cli/commands/build-eslint/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-eslint", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -35,37 +35,37 @@ "eslint": "^10" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "ts-node": "^10.9.2" }, "description": "tsParticles CLI", diff --git a/cli/commands/build-eslint/src/utils.ts b/cli/commands/build-eslint/src/utils.ts index 626b8acddff..1672ab97765 100644 --- a/cli/commands/build-eslint/src/utils.ts +++ b/cli/commands/build-eslint/src/utils.ts @@ -1,8 +1,8 @@ import { ESLint } from "eslint"; /** - * @param ci - - * @param silent - + * @param ci - The ci + * @param silent - The silent * @returns true if the linting was successful */ export async function lint(ci: boolean, silent: boolean): Promise { diff --git a/cli/commands/build-prettier/CHANGELOG.md b/cli/commands/build-prettier/CHANGELOG.md index b4abd6f520a..0e5244693f2 100644 --- a/cli/commands/build-prettier/CHANGELOG.md +++ b/cli/commands/build-prettier/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-prettier diff --git a/cli/commands/build-prettier/LICENSE b/cli/commands/build-prettier/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-prettier/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-prettier/package.json b/cli/commands/build-prettier/package.json index 01ae5c9df02..8796dd0378d 100644 --- a/cli/commands/build-prettier/package.json +++ b/cli/commands/build-prettier/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-prettier", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -35,37 +35,38 @@ "prettier": "^3" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", - "prettier": "^3.8.3", + "prettier": "^3.8.4", "ts-node": "^10.9.2" }, "description": "tsParticles CLI", diff --git a/cli/commands/build-prettier/src/utils.ts b/cli/commands/build-prettier/src/utils.ts index 81dfb26665d..1b0dba980cc 100644 --- a/cli/commands/build-prettier/src/utils.ts +++ b/cli/commands/build-prettier/src/utils.ts @@ -7,8 +7,8 @@ import prettier from "prettier"; type PrettierSupportedParser = "typescript" | "json" | "markdown"; /** - * @param basePath - - * @param parser - + * @param basePath - The basePath + * @param parser - The parser * @returns - */ async function getPrettierOptions( @@ -28,10 +28,10 @@ async function getPrettierOptions( } /** - * @param filePath - - * @param options - - * @param ci - - * @param errorMessage - + * @param filePath - The filePath + * @param options - The options to handle + * @param ci - The ci + * @param errorMessage - The errorMessage */ async function formatOrCheckFile( filePath: string, @@ -57,10 +57,10 @@ async function formatOrCheckFile( } /** - * @param basePath - - * @param srcPath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param srcPath - The srcPath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify src process was successful */ export async function prettifySrc(basePath: string, srcPath: string, ci: boolean, silent: boolean): Promise { @@ -96,9 +96,9 @@ export async function prettifySrc(basePath: string, srcPath: string, ci: boolean } /** - * @param basePath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify package.json process was successful */ export async function prettifyPackageJson(basePath: string, ci: boolean, silent: boolean): Promise { @@ -128,9 +128,9 @@ export async function prettifyPackageJson(basePath: string, ci: boolean, silent: } /** - * @param basePath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify package.dist.json process was successful */ export async function prettifyPackageDistJson(basePath: string, ci: boolean, silent: boolean): Promise { @@ -160,9 +160,9 @@ export async function prettifyPackageDistJson(basePath: string, ci: boolean, sil } /** - * @param basePath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify readme process was successful */ export async function prettifyReadme(basePath: string, ci: boolean, silent: boolean): Promise { @@ -193,9 +193,9 @@ export async function prettifyReadme(basePath: string, ci: boolean, silent: bool } /** - * @param basePath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify traductions process was successful */ async function prettifyTraductions(basePath: string, ci: boolean, silent: boolean): Promise { @@ -239,9 +239,9 @@ async function prettifyTraductions(basePath: string, ci: boolean, silent: boolea } /** - * @param basePath - - * @param ci - - * @param silent - + * @param basePath - The basePath + * @param ci - The ci + * @param silent - The silent * @returns true if the prettify markdown typedoc files process was successful */ async function prettifyMarkdownTypeDocFiles(basePath: string, ci: boolean, silent: boolean): Promise { diff --git a/cli/commands/build-tsc/CHANGELOG.md b/cli/commands/build-tsc/CHANGELOG.md index 1a238418768..aa7071e3a2c 100644 --- a/cli/commands/build-tsc/CHANGELOG.md +++ b/cli/commands/build-tsc/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build-tsc diff --git a/cli/commands/build-tsc/LICENSE b/cli/commands/build-tsc/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build-tsc/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build-tsc/package.json b/cli/commands/build-tsc/package.json index 6f1775df37d..d646b0ac741 100644 --- a/cli/commands/build-tsc/package.json +++ b/cli/commands/build-tsc/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build-tsc", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -35,31 +35,31 @@ "typescript": "^6" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", diff --git a/cli/commands/build-tsc/src/utils.ts b/cli/commands/build-tsc/src/utils.ts index feb1751cef9..9d41b687df6 100644 --- a/cli/commands/build-tsc/src/utils.ts +++ b/cli/commands/build-tsc/src/utils.ts @@ -48,7 +48,7 @@ const compileConfigs: Record = { }; /** - * @param type - + * @param type - The type * @returns - */ function getDefaultOptions(type: CompileType): unknown { @@ -65,8 +65,8 @@ function getDefaultOptions(type: CompileType): unknown { } /** - * @param basePath - - * @param file - + * @param basePath - The basePath + * @param file - The file * @returns the file content or undefined if the file doesn't exist */ async function readConfig(basePath: string, file: string): Promise { @@ -82,9 +82,9 @@ async function readConfig(basePath: string, file: string): Promise { @@ -188,8 +188,8 @@ async function compile(basePath: string, type: CompileType, silent: boolean): Pr } /** - * @param basePath - - * @param silent - + * @param basePath - The basePath + * @param silent - The silent * @returns true if the build was successful */ export async function buildTS(basePath: string, silent: boolean): Promise { diff --git a/cli/commands/build/CHANGELOG.md b/cli/commands/build/CHANGELOG.md index 409acb86e52..ccca5fa2b29 100644 --- a/cli/commands/build/CHANGELOG.md +++ b/cli/commands/build/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-build + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-build diff --git a/cli/commands/build/LICENSE b/cli/commands/build/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/build/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/build/package.json b/cli/commands/build/package.json index 3c374948f16..030523dbd8a 100644 --- a/cli/commands/build/package.json +++ b/cli/commands/build/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-build", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -36,43 +36,43 @@ "commander": "^15" }, "dependencies": { - "@swc/core": "^1.15.40", - "@tsparticles/cli-command-build-bundle-rollup": "workspace:^", - "@tsparticles/cli-command-build-bundle-webpack": "workspace:^", - "@tsparticles/cli-command-build-circular-deps": "workspace:^", - "@tsparticles/cli-command-build-clear": "workspace:^", - "@tsparticles/cli-command-build-distfiles": "workspace:^", - "@tsparticles/cli-command-build-diststats": "workspace:^", - "@tsparticles/cli-command-build-eslint": "workspace:^", - "@tsparticles/cli-command-build-prettier": "workspace:^", - "@tsparticles/cli-command-build-tsc": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", - "@tsparticles/webpack-plugin": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/cli-command-build-bundle-rollup": "workspace:*", + "@tsparticles/cli-command-build-bundle-webpack": "workspace:*", + "@tsparticles/cli-command-build-circular-deps": "workspace:*", + "@tsparticles/cli-command-build-clear": "workspace:*", + "@tsparticles/cli-command-build-distfiles": "workspace:*", + "@tsparticles/cli-command-build-diststats": "workspace:*", + "@tsparticles/cli-command-build-eslint": "workspace:*", + "@tsparticles/cli-command-build-prettier": "workspace:*", + "@tsparticles/cli-command-build-tsc": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", + "@tsparticles/webpack-plugin": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "swc-loader": "^0.2.7", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0", + "typescript-eslint": "^8.61.1", "webpack": "^5.107.2" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "@types/webpack-env": "^1.18.8", "browserslist": "^4.28.2", @@ -81,7 +81,7 @@ "cross-env": "^10.1.0", "terser-webpack-plugin": "^5.6.1", "ts-node": "^10.9.2", - "vitest": "^4.1.7", + "vitest": "^4.1.9", "webpack-bundle-analyzer": "^5.3.0", "webpack-cli": "^7.0.3" }, diff --git a/cli/commands/create-app/.browserslistrc b/cli/commands/create-app/.browserslistrc new file mode 100644 index 00000000000..fb811e7a9d2 --- /dev/null +++ b/cli/commands/create-app/.browserslistrc @@ -0,0 +1,2 @@ +since 2021 +not dead diff --git a/cli/commands/create-app/.dependency-cruiser.cjs b/cli/commands/create-app/.dependency-cruiser.cjs new file mode 100644 index 00000000000..f35670138c7 --- /dev/null +++ b/cli/commands/create-app/.dependency-cruiser.cjs @@ -0,0 +1,230 @@ +/** @type {import('dependency-cruiser').IConfiguration} */ +module.exports = { + forbidden: [ + { + name: 'no-circular', + severity: 'warn', + comment: + "This dependency is part of a circular relationship. You might want to revise " + + "your solution (i.e. use dependency inversion, make sure the modules have a single responsibility) ", + from: {}, + to: { + circular: true + } + }, + { + name: 'no-orphans', + comment: + "This is an orphan module - it's likely not used (anymore?). Either use it or " + + "remove it. If it's logical this module is an orphan (i.e. it's a config file), " + + "add an exception for it in your dependency-cruiser configuration. By default " + + "this rule does not scrutinize dot-files (e.g. .eslintrc.js), TypeScript declaration " + + "files (.d.ts), tsconfig.json and some of the babel and webpack configs.", + severity: 'warn', + from: { + orphan: true, + pathNot: [ + '(^|/)[.][^/]+[.](?:js|cjs|mjs|ts|cts|mts|json)$', + '[.]d[.]ts$', + '(^|/)tsconfig[.]json$', + '(^|/)(?:babel|webpack)[.]config[.](?:js|cjs|mjs|ts|cts|mts|json)$' + ] + }, + to: {}, + }, + { + name: 'no-deprecated-core', + comment: + 'A module depends on a node core module that has been deprecated. Find an alternative - these are ' + + "bound to exist - node doesn't deprecate lightly.", + severity: 'warn', + from: {}, + to: { + dependencyTypes: [ + 'core' + ], + path: [ + '^v8/tools/codemap$', + '^v8/tools/consarray$', + '^v8/tools/csvparser$', + '^v8/tools/logreader$', + '^v8/tools/profile_view$', + '^v8/tools/profile$', + '^v8/tools/SourceMap$', + '^v8/tools/splaytree$', + '^v8/tools/tickprocessor-driver$', + '^v8/tools/tickprocessor$', + '^node-inspect/lib/_inspect$', + '^node-inspect/lib/internal/inspect_client$', + '^node-inspect/lib/internal/inspect_repl$', + '^async_hooks$', + '^punycode$', + '^domain$', + '^constants$', + '^sys$', + '^_linklist$', + '^_stream_wrap$' + ], + } + }, + { + name: 'not-to-deprecated', + comment: + 'This module uses a (version of an) npm module that has been deprecated. Either upgrade to a later ' + + 'version of that module, or find an alternative. Deprecated modules are a security risk.', + severity: 'warn', + from: {}, + to: { + dependencyTypes: [ + 'deprecated' + ] + } + }, + { + name: 'no-non-package-json', + severity: 'error', + comment: + "This module depends on an npm package that isn't in the 'dependencies' section of your package.json. " + + "That's problematic as the package either (1) won't be available on live (2 - worse) will be " + + "available on live with an non-guaranteed version. Fix it by adding the package to the dependencies " + + "in your package.json.", + from: {}, + to: { + dependencyTypes: [ + 'npm-no-pkg', + 'npm-unknown' + ] + } + }, + { + name: 'not-to-unresolvable', + comment: + "This module depends on a module that cannot be found ('resolved to disk'). If it's an npm " + + 'module: add it to your package.json. In all other cases you likely already know what to do.', + severity: 'error', + from: {}, + to: { + couldNotResolve: true + } + }, + { + name: 'no-duplicate-dep-types', + comment: + "Likely this module depends on an external ('npm') package that occurs more than once " + + "in your package.json i.e. bot as a devDependencies and in dependencies. This will cause " + + "maintenance problems later on.", + severity: 'warn', + from: {}, + to: { + moreThanOneDependencyType: true, + dependencyTypesNot: ["type-only"] + } + }, + { + name: 'not-to-test', + comment: + "This module depends on code within a folder that should only contain tests. As tests don't " + + "implement functionality this is odd. Either you're writing a test outside the test folder " + + "or there's something in the test folder that isn't a test.", + severity: 'error', + from: { + pathNot: '^(tests)' + }, + to: { + path: '^(tests)' + } + }, + { + name: 'not-to-spec', + comment: + 'This module depends on a spec (test) file. The responsibility of a spec file is to test code. ' + + "If there's something in a spec that's of use to other modules, it doesn't have that single " + + 'responsibility anymore. Factor it out into (e.g.) a separate utility/ helper or a mock.', + severity: 'error', + from: {}, + to: { + path: '[.](?:spec|test)[.](?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$' + } + }, + { + name: 'not-to-dev-dep', + severity: 'error', + comment: + "This module depends on an npm package from the 'devDependencies' section of your " + + 'package.json. It looks like something that ships to production, though. To prevent problems ' + + "with npm packages that aren't there on production declare it (only!) in the 'dependencies'" + + 'section of your package.json. If this module is development only - add it to the ' + + 'from.pathNot re of the not-to-dev-dep rule in the dependency-cruiser configuration', + from: { + path: '^(src)', + pathNot: '[.](?:spec|test)[.](?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$' + }, + to: { + dependencyTypes: [ + 'npm-dev', + ], + dependencyTypesNot: [ + 'type-only' + ], + pathNot: [ + 'node_modules/@types/' + ] + } + }, + { + name: 'optional-deps-used', + severity: 'info', + comment: + "This module depends on an npm package that is declared as an optional dependency " + + "in your package.json. As this makes sense in limited situations only, it's flagged here. " + + "If you use an optional dependency here by design - add an exception to your" + + "dependency-cruiser configuration.", + from: {}, + to: { + dependencyTypes: [ + 'npm-optional' + ] + } + }, + { + name: 'peer-deps-used', + comment: + "This module depends on an npm package that is declared as a peer dependency " + + "in your package.json. This makes sense if your package is e.g. a plugin, but in " + + "other cases - maybe not so much. If the use of a peer dependency is intentional " + + "add an exception to your dependency-cruiser configuration.", + severity: 'warn', + from: {}, + to: { + dependencyTypes: [ + 'npm-peer' + ] + } + } + ], + options: { + doNotFollow: { + path: ['node_modules'] + }, + tsConfig: { + fileName: 'src/tsconfig.json' + }, + enhancedResolveOptions: { + exportsFields: ['exports'], + conditionNames: ['import', 'require', 'node', 'default', 'types'], + mainFields: ["module", "main", "types", "typings"], + }, + skipAnalysisNotInRules: true, + reporterOptions: { + dot: { + collapsePattern: 'node_modules/(?:@[^/]+/[^/]+|[^/]+)', + }, + archi: { + collapsePattern: '^(?:packages|src|lib(s?)|app(s?)|bin|test(s?)|spec(s?))/[^/]+|node_modules/(?:@[^/]+/[^/]+|[^/]+)', + }, + text: { + highlightFocused: true + }, + } + } +}; diff --git a/cli/commands/create-app/.gitignore b/cli/commands/create-app/.gitignore new file mode 100644 index 00000000000..19758deef41 --- /dev/null +++ b/cli/commands/create-app/.gitignore @@ -0,0 +1,4 @@ +dist +node_modules +.DS_Store +.cache/ diff --git a/cli/commands/create-app/CHANGELOG.md b/cli/commands/create-app/CHANGELOG.md new file mode 100644 index 00000000000..27d8873aa6a --- /dev/null +++ b/cli/commands/create-app/CHANGELOG.md @@ -0,0 +1,15 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) diff --git a/cli/commands/create-app/LICENSE b/cli/commands/create-app/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-app/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-app/README.md b/cli/commands/create-app/README.md new file mode 100644 index 00000000000..37b45431ce0 --- /dev/null +++ b/cli/commands/create-app/README.md @@ -0,0 +1,11 @@ +# @tsparticles/cli-command-create-app + +## Build + +```bash +pnpm run build +``` + +## License + +MIT diff --git a/cli/commands/create-app/eslint.config.js b/cli/commands/create-app/eslint.config.js new file mode 100644 index 00000000000..7dc85e779b6 --- /dev/null +++ b/cli/commands/create-app/eslint.config.js @@ -0,0 +1,22 @@ +import path from "path"; +import {fileURLToPath} from "url"; +import {defineConfig} from "eslint/config"; +import tsParticlesESLintConfig from "@tsparticles/eslint-config"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +export default defineConfig([ + tsParticlesESLintConfig, + { + languageOptions: { + parserOptions: { + project: [path.join(__dirname, "src", "tsconfig.json")], + tsconfigRootDir: __dirname, + sourceType: "module" + } + }, + rules: { + "no-console": "off" + } + } +]); diff --git a/cli/commands/create-app/package.json b/cli/commands/create-app/package.json new file mode 100644 index 00000000000..83977076997 --- /dev/null +++ b/cli/commands/create-app/package.json @@ -0,0 +1,64 @@ +{ + "name": "@tsparticles/cli-command-create-app", + "version": "4.2.0", + "license": "MIT", + "type": "module", + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/commands/create-app" + }, + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:src": "prettier --check ./src/*", + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:src": "prettier --write ./src/*", + "prettify:readme": "prettier --write ./README.md", + "lint": "eslint src --ext .js,.jsx,.ts,.tsx --cache --cache-location .cache/eslint/.eslintcache --cache-strategy metadata --fix", + "lint:ci": "eslint src --ext .js,.jsx,.ts,.tsx --cache --cache-location .cache/eslint/.eslintcache --cache-strategy metadata", + "circular-deps": "depcruise src --include-only '^src' --validate --output-type err-long", + "compile": "pnpm run build:ts", + "compile:ci": "pnpm run build:ts", + "build:ts": "pnpm run build:ts:cjs", + "build:ts:cjs": "tsc -p src", + "build": "pnpm run clear:dist && pnpm run prettify:src && pnpm run lint && pnpm run compile && pnpm run circular-deps && pnpm run prettify:readme", + "build:ci": "pnpm run clear:dist && pnpm run prettify:ci:src && pnpm run lint:ci && pnpm run compile:ci && pnpm run prettify:ci:readme", + "clear:dist": "rimraf ./dist", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", + "dependency-cruiser": "^17.4.3", + "eslint": "^10.5.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-jsdoc": "^63.0.5", + "eslint-plugin-prettier": "^5.5.6", + "eslint-plugin-tsdoc": "^0.5.2", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", + "prompts": "^2.4.2" + }, + "devDependencies": { + "@types/estree": "^1.0.9", + "@types/node": "^25.9.3", + "@types/prompts": "^2.4.9", + "browserslist": "^4.28.2", + "commander": "^15.0.0", + "copyfiles": "^2.4.1", + "cross-env": "^10.1.0", + "rimraf": "^6.1.3", + "ts-node": "^10.9.2", + "typescript": "^6.0.3" + }, + "description": "tsParticles CLI Create App command", + "main": "dist/app.js", + "author": "Matteo Bruni " +} diff --git a/cli/commands/create-app/src/app.ts b/cli/commands/create-app/src/app.ts new file mode 100644 index 00000000000..b6bcb50985b --- /dev/null +++ b/cli/commands/create-app/src/app.ts @@ -0,0 +1,45 @@ +import { type Framework, type UseCase, promptAppData } from "./prompts.js"; +import { Command } from "commander"; +import { createAppProject } from "./scaffold.js"; + +const appCreateCommand = new Command("app"); + +appCreateCommand.description("Create a new tsParticles app from a template"); +appCreateCommand.argument("[destination]", "Destination folder (defaults to project name)"); +appCreateCommand.option("--framework ", "Framework to use (auto-detected)"); +appCreateCommand.option("--skip-install", "Skip npm install after scaffolding"); +appCreateCommand.option( + "--template ", + "Template to use (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles|404)", +); +appCreateCommand.action( + async ( + destination: string | undefined, + options: { framework?: string; skipInstall?: boolean; template?: string }, + ) => { + const destArg = destination ?? "tsparticles-app", + template = options.template as UseCase | undefined, + framework = options.framework as Framework | undefined, + skipInstall = options.skipInstall ?? false, + data = await promptAppData(destArg, { + framework, + projectName: undefined, + useCase: template, + }), + result = await createAppProject({ + destination: data.destinationPath, + framework: data.framework, + projectName: data.projectName, + skipInstall, + useCase: data.useCase, + }); + + console.log(`\nProject created successfully at ${result.targetDir}`); + console.log("Run the following commands to get started:\n"); + console.log(` cd ${result.targetDir}`); + console.log(skipInstall ? " npm install" : ""); + console.log(" npm run dev\n"); + }, +); + +export { appCreateCommand }; diff --git a/cli/commands/create-app/src/prompts.ts b/cli/commands/create-app/src/prompts.ts new file mode 100644 index 00000000000..c2f645c292a --- /dev/null +++ b/cli/commands/create-app/src/prompts.ts @@ -0,0 +1,158 @@ +import { getDestinationDir, getRepositoryUrl } from "@tsparticles/cli-create-utils"; +import path from "node:path"; +import prompts from "prompts"; + +export type Framework = + | "angular" + | "angular-confetti" + | "angular-fireworks" + | "astro" + | "ember" + | "inferno" + | "jquery" + | "lit" + | "nextjs" + | "nuxt2" + | "nuxt3" + | "nuxt4" + | "preact" + | "qwik" + | "react" + | "riot" + | "solid" + | "stencil" + | "svelte" + | "vanilla" + | "vue2" + | "vue3" + | "webcomponents"; + +export type UseCase = + | "none" + | "login" + | "portfolio" + | "landing" + | "tictactoe" + | "confetti" + | "ribbons" + | "particles" + | "404"; + +export interface IAppPromptResult { + destinationPath: string; + framework: Framework; + projectName: string; + useCase: UseCase; +} + +const initialFrameworkIndex = 0, + initialUseCaseIndex = 0, + frameworkChoices: { title: string; value: Framework }[] = [ + { title: "Angular", value: "angular" }, + { title: "Angular Confetti", value: "angular-confetti" }, + { title: "Angular Fireworks", value: "angular-fireworks" }, + { title: "Astro", value: "astro" }, + { title: "Ember", value: "ember" }, + { title: "Inferno", value: "inferno" }, + { title: "jQuery", value: "jquery" }, + { title: "Lit", value: "lit" }, + { title: "Next.js", value: "nextjs" }, + { title: "Nuxt 2", value: "nuxt2" }, + { title: "Nuxt 3", value: "nuxt3" }, + { title: "Nuxt 4", value: "nuxt4" }, + { title: "Preact", value: "preact" }, + { title: "Qwik", value: "qwik" }, + { title: "React", value: "react" }, + { title: "Riot", value: "riot" }, + { title: "Solid", value: "solid" }, + { title: "Stencil", value: "stencil" }, + { title: "Svelte", value: "svelte" }, + { title: "Vanilla (Vite + TypeScript)", value: "vanilla" }, + { title: "Vue 2", value: "vue2" }, + { title: "Vue 3", value: "vue3" }, + { title: "Web Components", value: "webcomponents" }, + ], + useCaseChoices: { title: string; value: UseCase }[] = [ + { title: "None (just the scaffold)", value: "none" }, + { title: "Login / Register", value: "login" }, + { title: "Portfolio", value: "portfolio" }, + { title: "Landing Page", value: "landing" }, + { title: "Tic Tac Toe", value: "tictactoe" }, + { title: "Confetti", value: "confetti" }, + { title: "Ribbons", value: "ribbons" }, + { title: "Particles", value: "particles" }, + { title: "404 Error Page", value: "404" }, + ]; + +/** + * + * @param destination - The destination point + * @param prefill - The prefill + * @param prefill.framework + * @param prefill.projectName + * @param prefill.useCase + */ +export async function promptAppData( + destination: string, + prefill?: { framework?: Framework; projectName?: string; useCase?: UseCase }, +): Promise { + const destinationPath = await getDestinationDir(destination), + repositoryUrl = await getRepositoryUrl(), + initialName = destinationPath.split(path.sep).pop() ?? "tsparticles-app"; + + void repositoryUrl; + + const questions: prompts.PromptObject[] = []; + + if (!prefill?.projectName) { + questions.push({ + type: "text", + name: "projectName", + message: "What is the project name?", + validate: (value: string) => (value ? true : "The project name can't be empty"), + initial: initialName, + }); + } + + if (!prefill?.framework) { + questions.push({ + type: "select", + name: "framework", + message: "Which framework would you like to use?", + choices: frameworkChoices, + initial: initialFrameworkIndex, + }); + } + + if (!prefill?.useCase) { + questions.push({ + type: "select", + name: "useCase", + message: "Which use-case template would you like to include?", + choices: useCaseChoices, + initial: initialUseCaseIndex, + }); + } + + if (!questions.length) { + return { + destinationPath, + framework: prefill?.framework ?? "vanilla", + projectName: prefill?.projectName ?? initialName, + useCase: prefill?.useCase ?? "none", + }; + } + + const answers = (await prompts(questions)) as { + framework?: Framework; + projectName?: string; + useCase?: UseCase; + }; + + return { + destinationPath, + framework: prefill?.framework ?? answers.framework ?? "vanilla", + projectName: (prefill?.projectName ?? answers.projectName ?? initialName).trim(), + useCase: prefill?.useCase ?? answers.useCase ?? "none", + }; +} diff --git a/cli/commands/create-app/src/scaffold.ts b/cli/commands/create-app/src/scaffold.ts new file mode 100644 index 00000000000..edc87663f7c --- /dev/null +++ b/cli/commands/create-app/src/scaffold.ts @@ -0,0 +1,184 @@ +/* eslint-disable sort-imports */ +import { runInstall, dash } from "@tsparticles/cli-create-utils"; +import { mkdir, readFile, readdir, writeFile } from "node:fs/promises"; +import { existsSync } from "node:fs"; +import path from "node:path"; +import { resolveEngineVersion, resolveTemplateRoot } from "./template-resolver.js"; +import type { ScaffoldResult, UserOptions } from "./types.js"; +import type { Framework, UseCase } from "./prompts.js"; + +const jsonIndentation = 2, + useCaseTemplateNames: Record = { + none: undefined, + login: "login", + portfolio: "portfolio", + landing: "landing", + tictactoe: "tictactoe", + confetti: "confetti", + ribbons: "ribbons", + particles: "particles", + "404": "404", + }; + +/** + * + * @param options - The options to handle + */ +export async function createAppProject( + options: UserOptions & { framework: Framework; useCase: UseCase }, +): Promise { + const { projectName, framework, skipInstall, useCase } = options, + targetDir = options.destination, + packageName = dash(projectName), + version = resolveEngineVersion(), + replacements: Record = { + "{{projectName}}": projectName, + "{{packageName}}": packageName, + "{{version}}": version, + }; + + let mergedDeps: ITemplateDeps = {}; + + const scaffoldRoot = resolveTemplateRoot("scaffold"), + scaffoldDeps = await readTemplateJson(scaffoldRoot); + + if (scaffoldDeps) { + mergedDeps = deepMergeDeps(mergedDeps, scaffoldDeps); + } + + const scaffoldSource = path.join(scaffoldRoot, "template", framework); + + if (!existsSync(path.join(scaffoldSource, "package.json"))) { + throw new Error( + `Scaffold template not found for framework "${framework}". Looked at: ${scaffoldSource}. Available frameworks: check template directories.`, + ); + } + + await mkdir(targetDir, { recursive: true }); + await copyAndReplace(scaffoldSource, targetDir, replacements); + + if (useCase !== "none") { + const ucTemplateName = useCaseTemplateNames[useCase]; + + if (ucTemplateName) { + const ucRoot = resolveTemplateRoot(ucTemplateName), + ucDeps = await readTemplateJson(ucRoot); + + if (ucDeps) { + mergedDeps = deepMergeDeps(mergedDeps, ucDeps); + } + + const ucSource = path.join(ucRoot, "template", framework); + + if (existsSync(path.join(ucSource, "package.json"))) { + await copyAndReplace(ucSource, targetDir, replacements); + } + } + } + + if (mergedDeps.dependencies || mergedDeps.devDependencies) { + const pkgJsonPath = path.join(targetDir, "package.json"), + pkg = JSON.parse(await readFile(pkgJsonPath, "utf-8")) as Record; + + if (mergedDeps.dependencies) { + const existingDeps = (pkg.dependencies ?? {}) as Record; + + pkg.dependencies = { ...mergedDeps.dependencies, ...existingDeps }; + } + + if (mergedDeps.devDependencies) { + const existingDevDeps = (pkg.devDependencies ?? {}) as Record; + + pkg.devDependencies = { ...mergedDeps.devDependencies, ...existingDevDeps }; + } + + await writeFile(pkgJsonPath, `${JSON.stringify(pkg, undefined, jsonIndentation)}\n`); + } + + if (!skipInstall) { + await runInstall(targetDir); + } + + return { + frameworkUsed: framework, + targetDir, + templateUsed: useCase === "none" ? "scaffold" : useCase, + }; +} + +interface ITemplateDeps { + dependencies?: Record; + devDependencies?: Record; +} + +/** + * + * @param templateRoot - The templateRoot + * @returns A promise + */ +async function readTemplateJson(templateRoot: string): Promise { + const templateJsonPath = path.join(templateRoot, "template.json"); + + if (!existsSync(templateJsonPath)) { + return null; + } + + const content = JSON.parse(await readFile(templateJsonPath, "utf-8")) as { + package?: ITemplateDeps; + }; + + return content.package ?? null; +} + +/** + * + * @param src - The src + * @param dest - The dest + * @param replacements - The replacements + */ +async function copyAndReplace(src: string, dest: string, replacements: Record): Promise { + const entries = await readdir(src, { withFileTypes: true }); + + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + let destName = entry.name; + + if (destName === "gitignore") { + destName = ".gitignore"; + } + + const destPath = path.join(dest, destName); + + if (entry.isDirectory()) { + await mkdir(destPath, { recursive: true }); + await copyAndReplace(srcPath, destPath, replacements); + } else { + let content = await readFile(srcPath, "utf-8"); + + for (const [key, value] of Object.entries(replacements)) { + content = content.replaceAll(key, value); + } + + await writeFile(destPath, content); + } + } +} + +/** + * + * @param target - The target + * @param source - The source + * @returns The result + */ +function deepMergeDeps(target: ITemplateDeps, source: ITemplateDeps): ITemplateDeps { + return { + dependencies: { + ...(target.dependencies ?? {}), + ...(source.dependencies ?? {}), + }, + devDependencies: { + ...(target.devDependencies ?? {}), + ...(source.devDependencies ?? {}), + }, + }; +} diff --git a/cli/commands/create-app/src/template-resolver.ts b/cli/commands/create-app/src/template-resolver.ts new file mode 100644 index 00000000000..e10919f13d2 --- /dev/null +++ b/cli/commands/create-app/src/template-resolver.ts @@ -0,0 +1,125 @@ +import { existsSync, readFileSync, readdirSync } from "node:fs"; +import type { TemplateInfo } from "./types.js"; +import { fileURLToPath } from "node:url"; +import path from "node:path"; + +const __filename = fileURLToPath(import.meta.url), + __dirname = path.dirname(__filename), + repoRoot = path.resolve(__dirname, "..", "..", "..", ".."), + workspaceTemplateRoot = path.join(repoRoot, "templates"), + isWorkspaceMode = existsSync(path.join(workspaceTemplateRoot, "scaffold", "package.json")); + +/** + * + * @param name - The name + * @returns The string value + */ +export function resolveTemplateRoot(name: string): string { + if (isWorkspaceMode) { + const workspacePath = path.join(workspaceTemplateRoot, name); + + if (existsSync(path.join(workspacePath, "package.json"))) { + return workspacePath; + } + } + + const nodeModulesPath = path.join(repoRoot, "node_modules", `@tsparticles/template-${name}`), + hoistedPath = path.join(repoRoot, "..", "node_modules", `@tsparticles/template-${name}`); + + for (const candidate of [nodeModulesPath, hoistedPath]) { + if (existsSync(path.join(candidate, "package.json"))) { + return candidate; + } + } + + throw new Error( + `Template "${name}" not found. Looked in workspace (${path.join(workspaceTemplateRoot, name)}) and installed packages.`, + ); +} + +/** + * + * @param templateName - The templateName + * @returns The result + */ +export function listAvailableFrameworks(templateName: string): string[] { + const templateRoot = resolveTemplateRoot(templateName), + frameworksDir = path.join(templateRoot, "template"); + + if (!existsSync(frameworksDir)) { + return []; + } + + const entries = readdirSync(frameworksDir), + result: string[] = []; + + for (const entry of entries) { + if (existsSync(path.join(frameworksDir, entry, "package.json"))) { + result.push(entry); + } + } + + return result.sort(); +} + +/** + * + * @returns The result + */ +export function listAvailableTemplates(): TemplateInfo[] { + const templateMap: Record = { + scaffold: { displayName: "Scaffold", type: "scaffold" }, + login: { displayName: "Login Page", type: "example" }, + portfolio: { displayName: "Portfolio", type: "example" }, + landing: { displayName: "Landing Page", type: "example" }, + tictactoe: { displayName: "Tic Tac Toe", type: "example" }, + confetti: { displayName: "Confetti", type: "example" }, + ribbons: { displayName: "Ribbons", type: "example" }, + particles: { displayName: "Particles", type: "example" }, + "404": { displayName: "404 Error Page", type: "example" }, + }, + results: TemplateInfo[] = []; + + for (const [name, info] of Object.entries(templateMap)) { + try { + const frameworks = listAvailableFrameworks(name); + + results.push({ + displayName: info.displayName, + frameworks, + name, + type: info.type, + }); + } catch { + // template not available, skip + } + } + + return results; +} + +/** + * + * @returns The string value + */ +export function resolveEngineVersion(): string { + if (isWorkspaceMode) { + const enginePkgPath = path.join(repoRoot, "engine", "package.json"); + + if (existsSync(enginePkgPath)) { + const pkg = JSON.parse(readFileSync(enginePkgPath, "utf-8")) as { version?: string }; + + return pkg.version ?? "4.1.3"; + } + } + + const enginePkgPath = path.join(repoRoot, "node_modules", "@tsparticles", "engine", "package.json"); + + if (existsSync(enginePkgPath)) { + const pkg = JSON.parse(readFileSync(enginePkgPath, "utf-8")) as { version?: string }; + + return pkg.version ?? "4.1.3"; + } + + return "4.1.3"; +} diff --git a/cli/commands/create-app/src/tsconfig.json b/cli/commands/create-app/src/tsconfig.json new file mode 100644 index 00000000000..a86b208cb31 --- /dev/null +++ b/cli/commands/create-app/src/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "../dist" + }, + "references": [{ "path": "../" }], + "include": ["**/*"] +} diff --git a/cli/commands/create-app/src/types.ts b/cli/commands/create-app/src/types.ts new file mode 100644 index 00000000000..8b49ee99af5 --- /dev/null +++ b/cli/commands/create-app/src/types.ts @@ -0,0 +1,20 @@ +export interface TemplateInfo { + displayName: string; + frameworks: string[]; + name: string; + type: "scaffold" | "example"; +} + +export interface UserOptions { + destination: string; + framework: string; + projectName: string; + skipInstall: boolean; + template?: string; +} + +export interface ScaffoldResult { + frameworkUsed: string; + targetDir: string; + templateUsed: string; +} diff --git a/cli/commands/create-app/tsconfig.json b/cli/commands/create-app/tsconfig.json new file mode 100644 index 00000000000..8c0be5a74c5 --- /dev/null +++ b/cli/commands/create-app/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "rootDir": ".", + "outDir": ".", + "resolveJsonModule": true, + "composite": true, + "target": "ESNext", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "types": [ + "node" + ], + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true + }, + "include": [ + "src/**/*" + ] +} diff --git a/cli/commands/create-bundle/CHANGELOG.md b/cli/commands/create-bundle/CHANGELOG.md index a6b4efaec43..997920f36d5 100644 --- a/cli/commands/create-bundle/CHANGELOG.md +++ b/cli/commands/create-bundle/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-bundle + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-bundle diff --git a/cli/commands/create-bundle/LICENSE b/cli/commands/create-bundle/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-bundle/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-bundle/package.json b/cli/commands/create-bundle/package.json index 729dfb3eb55..cc2d7b3d5d1 100644 --- a/cli/commands/create-bundle/package.json +++ b/cli/commands/create-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-bundle", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-effect/CHANGELOG.md b/cli/commands/create-effect/CHANGELOG.md index 83097858908..cb1424688c1 100644 --- a/cli/commands/create-effect/CHANGELOG.md +++ b/cli/commands/create-effect/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-effect + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-effect diff --git a/cli/commands/create-effect/LICENSE b/cli/commands/create-effect/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-effect/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-effect/package.json b/cli/commands/create-effect/package.json index 67e2db59db0..913467b3cf2 100644 --- a/cli/commands/create-effect/package.json +++ b/cli/commands/create-effect/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-effect", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-interaction/CHANGELOG.md b/cli/commands/create-interaction/CHANGELOG.md index 4e80aa18357..4e1fcf50604 100644 --- a/cli/commands/create-interaction/CHANGELOG.md +++ b/cli/commands/create-interaction/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-interaction + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-interaction diff --git a/cli/commands/create-interaction/LICENSE b/cli/commands/create-interaction/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-interaction/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-interaction/package.json b/cli/commands/create-interaction/package.json index 71508bbfea8..7a6d3ae3499 100644 --- a/cli/commands/create-interaction/package.json +++ b/cli/commands/create-interaction/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-interaction", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-palette/CHANGELOG.md b/cli/commands/create-palette/CHANGELOG.md index c4378304e93..86ab76f7843 100644 --- a/cli/commands/create-palette/CHANGELOG.md +++ b/cli/commands/create-palette/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-palette + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-palette diff --git a/cli/commands/create-palette/LICENSE b/cli/commands/create-palette/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-palette/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-palette/package.json b/cli/commands/create-palette/package.json index 6b9909affe0..59c51f752bd 100644 --- a/cli/commands/create-palette/package.json +++ b/cli/commands/create-palette/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-palette", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-path/CHANGELOG.md b/cli/commands/create-path/CHANGELOG.md index d27342d23ad..d4ee59683e1 100644 --- a/cli/commands/create-path/CHANGELOG.md +++ b/cli/commands/create-path/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-path + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-path diff --git a/cli/commands/create-path/LICENSE b/cli/commands/create-path/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-path/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-path/package.json b/cli/commands/create-path/package.json index 810b32bbcff..78891997dff 100644 --- a/cli/commands/create-path/package.json +++ b/cli/commands/create-path/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-path", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-plugin/CHANGELOG.md b/cli/commands/create-plugin/CHANGELOG.md index d6be011a4bf..3b8a334d85f 100644 --- a/cli/commands/create-plugin/CHANGELOG.md +++ b/cli/commands/create-plugin/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-plugin + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-plugin diff --git a/cli/commands/create-plugin/LICENSE b/cli/commands/create-plugin/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-plugin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-plugin/package.json b/cli/commands/create-plugin/package.json index e60ea1ee3ef..9f739c424a9 100644 --- a/cli/commands/create-plugin/package.json +++ b/cli/commands/create-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-plugin", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-preset/CHANGELOG.md b/cli/commands/create-preset/CHANGELOG.md index e53e69c1fa2..d2d20d12fbc 100644 --- a/cli/commands/create-preset/CHANGELOG.md +++ b/cli/commands/create-preset/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-preset + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-preset diff --git a/cli/commands/create-preset/LICENSE b/cli/commands/create-preset/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-preset/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-preset/package.json b/cli/commands/create-preset/package.json index 0f23ed3d8c9..a4123933bff 100644 --- a/cli/commands/create-preset/package.json +++ b/cli/commands/create-preset/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-preset", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-shape/CHANGELOG.md b/cli/commands/create-shape/CHANGELOG.md index dc4f8100dc9..ff9aece1b8e 100644 --- a/cli/commands/create-shape/CHANGELOG.md +++ b/cli/commands/create-shape/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-shape + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-shape diff --git a/cli/commands/create-shape/LICENSE b/cli/commands/create-shape/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-shape/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-shape/package.json b/cli/commands/create-shape/package.json index 04ede94b992..eaa1b2c2491 100644 --- a/cli/commands/create-shape/package.json +++ b/cli/commands/create-shape/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-shape", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-updater/CHANGELOG.md b/cli/commands/create-updater/CHANGELOG.md index 8cc4119174d..324c00ebd93 100644 --- a/cli/commands/create-updater/CHANGELOG.md +++ b/cli/commands/create-updater/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-command-create-updater + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create-updater diff --git a/cli/commands/create-updater/LICENSE b/cli/commands/create-updater/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-updater/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-updater/package.json b/cli/commands/create-updater/package.json index 825b59e89f3..144145958d2 100644 --- a/cli/commands/create-updater/package.json +++ b/cli/commands/create-updater/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create-updater", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -31,23 +31,23 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "@types/estree": "^1.0.9", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", diff --git a/cli/commands/create-utils/CHANGELOG.md b/cli/commands/create-utils/CHANGELOG.md index 92c8b6c3dfe..2bfa85ec3e1 100644 --- a/cli/commands/create-utils/CHANGELOG.md +++ b/cli/commands/create-utils/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-create-utils diff --git a/cli/commands/create-utils/LICENSE b/cli/commands/create-utils/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create-utils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create-utils/files/empty-project/README.md b/cli/commands/create-utils/files/empty-project/README.md new file mode 100644 index 00000000000..d0280378800 --- /dev/null +++ b/cli/commands/create-utils/files/empty-project/README.md @@ -0,0 +1,3 @@ +# @tsparticles/empty-template + +Minimal empty template for tsParticles packages. Used internally by the `tsparticles-create` CLI to scaffold new packages. diff --git a/cli/commands/create-utils/files/empty-project/package.dist.json b/cli/commands/create-utils/files/empty-project/package.dist.json index c107d926a6c..6293c249b8e 100644 --- a/cli/commands/create-utils/files/empty-project/package.dist.json +++ b/cli/commands/create-utils/files/empty-project/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/empty-template", - "version": "4.0.0-beta.12", + "version": "4.2.0", "private": true, "type": "module", "author": "Matteo Bruni ", @@ -73,6 +73,6 @@ "module": "index.js", "types": "index.d.ts", "peerDependencies": { - "@tsparticles/engine": "^4.0.0-beta.12" + "@tsparticles/engine": "^4.2.0" } } diff --git a/cli/commands/create-utils/files/empty-project/package.json b/cli/commands/create-utils/files/empty-project/package.json index 9a1af043523..27758a10eaf 100644 --- a/cli/commands/create-utils/files/empty-project/package.json +++ b/cli/commands/create-utils/files/empty-project/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/empty-template", - "version": "4.0.0-beta.12", + "version": "4.2.0", "private": true, "type": "module", "description": "tsParticles empty template", @@ -83,25 +83,25 @@ "types": "dist/types/index.d.ts", "prettier": "@tsparticles/prettier-config", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/browserslist-config": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/engine": "^4.0.0-beta.12", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/rollup-plugin": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-build": "^4.1.3", + "@tsparticles/browserslist-config": "^4.1.3", + "@tsparticles/depcruise-config": "^4.1.3", + "@tsparticles/engine": "4.1.3", + "@tsparticles/eslint-config": "^4.1.3", + "@tsparticles/prettier-config": "^4.1.3", + "@tsparticles/rollup-plugin": "^4.1.3", + "@tsparticles/tsconfig": "^4.1.3", "browserslist": "^4.28.2", "copyfiles": "^2.4.1", "eslint": "^10.4.1", "eslint-config-prettier": "^10.1.8", "prettier": "^3.8.3", "rimraf": "^6.1.3", - "rollup": "^4.60.4", + "rollup": "^4.61.1", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.60.1" }, "peerDependencies": { - "@tsparticles/engine": "^4.0.0-beta.12" + "@tsparticles/engine": "^4.2.0" } } diff --git a/cli/commands/create-utils/package.json b/cli/commands/create-utils/package.json index 35e1d744699..45fe22b4df8 100644 --- a/cli/commands/create-utils/package.json +++ b/cli/commands/create-utils/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-create-utils", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -29,41 +29,42 @@ "build": "pnpm run clear:dist && pnpm run prettify:src && pnpm run lint && pnpm run compile && pnpm run circular-deps && pnpm run prettify:readme", "build:ci": "pnpm run clear:dist && pnpm run prettify:ci:src && pnpm run lint:ci && pnpm run compile:ci && pnpm run prettify:ci:readme", "clear:dist": "rimraf ./dist", + "version": "node scripts/update-empty-project-versions.js && git add files/empty-project/package.json files/empty-project/package.dist.json", "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "commander": "^15.0.0", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "klaw": "^4.1.0", "lookpath": "^1.2.3", "path-scurry": "^2.0.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "prompts": "^2.4.2", "rimraf": "^6.1.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", "ts-node": "^10.9.2", - "vitest": "^4.1.7" + "vitest": "^4.1.9" }, "description": "tsParticles CLI Utils", "main": "dist/index.js", diff --git a/cli/commands/create-utils/scripts/update-empty-project-versions.js b/cli/commands/create-utils/scripts/update-empty-project-versions.js new file mode 100644 index 00000000000..a58c89ffc58 --- /dev/null +++ b/cli/commands/create-utils/scripts/update-empty-project-versions.js @@ -0,0 +1,79 @@ +import { readFile, writeFile } from "node:fs/promises"; +import { join, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const rootDir = join(__dirname, ".."); +const templateDir = join(rootDir, "files", "empty-project"); + +function resolveWorkspaceVersion(value, version) { + if (!value.startsWith("workspace:")) { + return value; + } + + const spec = value.slice("workspace:".length); + + if (!spec || spec === "*") { + return version; + } + + if (spec === "^" || spec === "~") { + return `${spec}${version}`; + } + + return spec; +} + +function resolveDeps(deps, version) { + return Object.fromEntries( + Object.entries(deps).map(([name, value]) => [ + name, + resolveWorkspaceVersion(value, version), + ]), + ); +} + +async function main() { + const pkg = JSON.parse(await readFile(join(rootDir, "package.json"), "utf8")); + const { version } = pkg; + + if (!version) { + console.error("No version found in create-utils/package.json"); + process.exit(1); + } + + const pkgJsonPath = join(templateDir, "package.json"); + const pkgDistJsonPath = join(templateDir, "package.dist.json"); + + const pkgJson = JSON.parse(await readFile(pkgJsonPath, "utf8")); + const pkgDistJson = JSON.parse(await readFile(pkgDistJsonPath, "utf8")); + + pkgJson.version = version; + + if (pkgJson.devDependencies) { + pkgJson.devDependencies = resolveDeps(pkgJson.devDependencies, version); + } + + if (pkgJson.dependencies) { + pkgJson.dependencies = resolveDeps(pkgJson.dependencies, version); + } + + if (pkgJson.peerDependencies?.["@tsparticles/engine"]) { + pkgJson.peerDependencies["@tsparticles/engine"] = `^${version}`; + } + + pkgDistJson.version = version; + + if (pkgDistJson.peerDependencies?.["@tsparticles/engine"]) { + pkgDistJson.peerDependencies["@tsparticles/engine"] = `^${version}`; + } + + const jsonIndent = 2; + + await writeFile(pkgJsonPath, `${JSON.stringify(pkgJson, null, jsonIndent)}\n`, "utf8"); + await writeFile(pkgDistJsonPath, `${JSON.stringify(pkgDistJson, null, jsonIndent)}\n`, "utf8"); + + console.log(`Updated empty-project templates to version ${version}`); +} + +main(); diff --git a/cli/commands/create-utils/src/create-project.ts b/cli/commands/create-utils/src/create-project.ts index 489984b8a1a..730a432b322 100644 --- a/cli/commands/create-utils/src/create-project.ts +++ b/cli/commands/create-utils/src/create-project.ts @@ -63,8 +63,9 @@ interface INameData { /** * - * @param name - * @param destination + * @param name - The name + * @param destination - The destination point + * @returns The result */ function getNameData(name: string, destination: string): INameData { const pascalName = capitalize(name.trim(), "-", "_", " "), @@ -82,7 +83,8 @@ function getNameData(name: string, destination: string): INameData { /** * - * @param loadFunction + * @param loadFunction - The loadFunction + * @returns The string value */ function getNoopLazyIndex(loadFunction: string): string { return `import type { Engine } from "@tsparticles/engine/lazy"; @@ -100,7 +102,8 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param loadFunction + * @param loadFunction - The loadFunction + * @returns The string value */ function getBrowserFile(loadFunction: string): string { return `import { ${loadFunction} } from "./index.js"; @@ -118,8 +121,9 @@ export * from "./index.js"; /** * - * @param loadFunction - * @param reexportEngine + * @param loadFunction - The loadFunction + * @param reexportEngine - The reexportEngine + * @returns The string value */ function getBundleFile(loadFunction: string, reexportEngine: boolean): string { return `import { ${loadFunction} } from "./index.js"; @@ -139,8 +143,9 @@ globalObject.${loadFunction} = ${loadFunction}; /** * - * @param kindLabel - * @param description + * @param kindLabel - The kindLabel + * @param description - The description + * @returns The string value */ function getProjectDescription(kindLabel: string, description: string): string { return `tsParticles ${description} ${kindLabel}`; @@ -148,8 +153,9 @@ function getProjectDescription(kindLabel: string, description: string): string { /** * - * @param repositoryUrl - * @param packageSuffix + * @param repositoryUrl - The repositoryUrl + * @param packageSuffix - The packageSuffix + * @returns The string value */ function getRepoUrl(repositoryUrl: string, packageSuffix: string): string { if (repositoryUrl) { @@ -161,7 +167,8 @@ function getRepoUrl(repositoryUrl: string, packageSuffix: string): string { /** * - * @param config + * @param config - The configuration + * @returns The string value */ function getRollupConfig(config: IProjectConfig): string { return `import { ${config.rollupFactory} } from "@tsparticles/rollup-plugin"; @@ -185,7 +192,8 @@ export default ${config.rollupFactory}({ /** * - * @param config + * @param config - The configuration + * @returns The string value */ function getReadme(config: IProjectConfig): string { return `[![banner](https://particles.js.org/images/banner2.png)](https://particles.js.org) @@ -214,8 +222,9 @@ await ${config.loadFunction}(tsParticles); /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createBundleConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}`; @@ -256,8 +265,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createEffectConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Effect`, @@ -306,9 +316,10 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description - * @param type + * @param nameData - The nameData + * @param description - The description + * @param type - The type + * @returns The result */ function createInteractionConfig(nameData: INameData, description: string, type: InteractionType): IProjectConfig { const isExternal = type === "external" || type === "generic", @@ -451,8 +462,9 @@ ${ /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createPaletteConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Palette`; @@ -497,8 +509,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createPathConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Path`, @@ -572,9 +585,10 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param loadFunction - * @param pluginClass + * @param nameData - The nameData + * @param loadFunction - The loadFunction + * @param pluginClass - The pluginClass + * @returns The string value */ function createGenericPluginIndex(loadFunction: string, pluginClass: string): string { return `import { type Engine } from "@tsparticles/engine"; @@ -594,9 +608,10 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description - * @param type + * @param nameData - The nameData + * @param description - The description + * @param type - The type + * @returns The result */ function createPluginConfig(nameData: INameData, description: string, type: PluginType): IProjectConfig { if (type === "generic") { @@ -922,8 +937,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createPresetConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Preset`; @@ -971,8 +987,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createShapeConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Shape`, @@ -1026,8 +1043,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param nameData - * @param description + * @param nameData - The nameData + * @param description - The description + * @returns The result */ function createUpdaterConfig(nameData: INameData, description: string): IProjectConfig { const loadFunction = `load${nameData.pascalName}Updater`, @@ -1087,8 +1105,9 @@ export async function ${loadFunction}(engine: Engine): Promise { /** * - * @param options - * @param nameData + * @param options - The options to handle + * @param nameData - The nameData + * @returns The result */ function resolveProjectConfig(options: ICreateProjectOptions, nameData: INameData): IProjectConfig { switch (options.kind) { @@ -1121,8 +1140,8 @@ function resolveProjectConfig(options: ICreateProjectOptions, nameData: INameDat /** * - * @param destination - * @param srcFiles + * @param destination - The destination point + * @param srcFiles - The srcFiles */ async function writeSourceFiles(destination: string, srcFiles: Record): Promise { for (const [filePath, content] of Object.entries(srcFiles)) { @@ -1136,7 +1155,7 @@ async function writeSourceFiles(destination: string, srcFiles: Record { const nameData = getNameData(options.name, options.destination), diff --git a/cli/commands/create-utils/src/file-utils.ts b/cli/commands/create-utils/src/file-utils.ts index ec5a7a31d8b..3ab6ed29f7c 100644 --- a/cli/commands/create-utils/src/file-utils.ts +++ b/cli/commands/create-utils/src/file-utils.ts @@ -20,7 +20,7 @@ export type JsonUpdater = (data: T) => T; /** * - * @param options - + * @param options - The options to handle */ export async function replaceTokensInFiles(options: ReplaceTokensOptions[]): Promise { for (const item of options) { @@ -40,7 +40,7 @@ export async function replaceTokensInFiles(options: ReplaceTokensOptions[]): Pro /** * - * @param options - + * @param options - The options to handle */ export async function replaceTokensInFile(options: ReplaceTokensOptions): Promise { await replaceTokensInFiles([options]); @@ -60,7 +60,7 @@ export async function updateJsonFile(filePath: string, updater: JsonUpdater { diff --git a/cli/commands/create/CHANGELOG.md b/cli/commands/create/CHANGELOG.md index 01316738d1c..8d2af696981 100644 --- a/cli/commands/create/CHANGELOG.md +++ b/cli/commands/create/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-command-create diff --git a/cli/commands/create/LICENSE b/cli/commands/create/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/commands/create/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/commands/create/package.json b/cli/commands/create/package.json index 6e127dd5e70..2949281a863 100644 --- a/cli/commands/create/package.json +++ b/cli/commands/create/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-command-create", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "publishConfig": { @@ -35,42 +35,43 @@ "commander": "^15" }, "dependencies": { - "@tsparticles/cli-command-create-bundle": "workspace:^", - "@tsparticles/cli-command-create-effect": "workspace:^", - "@tsparticles/cli-command-create-interaction": "workspace:^", - "@tsparticles/cli-command-create-palette": "workspace:^", - "@tsparticles/cli-command-create-path": "workspace:^", - "@tsparticles/cli-command-create-plugin": "workspace:^", - "@tsparticles/cli-command-create-preset": "workspace:^", - "@tsparticles/cli-command-create-shape": "workspace:^", - "@tsparticles/cli-command-create-updater": "workspace:^", - "@tsparticles/cli-create-utils": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", + "@tsparticles/cli-command-create-app": "workspace:*", + "@tsparticles/cli-command-create-bundle": "workspace:*", + "@tsparticles/cli-command-create-effect": "workspace:*", + "@tsparticles/cli-command-create-interaction": "workspace:*", + "@tsparticles/cli-command-create-palette": "workspace:*", + "@tsparticles/cli-command-create-path": "workspace:*", + "@tsparticles/cli-command-create-plugin": "workspace:*", + "@tsparticles/cli-command-create-preset": "workspace:*", + "@tsparticles/cli-command-create-shape": "workspace:*", + "@tsparticles/cli-command-create-updater": "workspace:*", + "@tsparticles/cli-create-utils": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", + "prettier": "^3.8.4", "rimraf": "^6.1.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { "@types/estree": "^1.0.9", "@types/klaw": "^3.0.7", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/prompts": "^2.4.9", "browserslist": "^4.28.2", "commander": "^15.0.0", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", "ts-node": "^10.9.2", - "vitest": "^4.1.7" + "vitest": "^4.1.9" }, "description": "tsParticles CLI", "main": "dist/create.js", diff --git a/cli/commands/create/src/create.ts b/cli/commands/create/src/create.ts index 739264353d8..c9799c7826d 100644 --- a/cli/commands/create/src/create.ts +++ b/cli/commands/create/src/create.ts @@ -1,4 +1,5 @@ import { Command } from "commander"; +import { appCreateCommand } from "@tsparticles/cli-command-create-app"; import { bundleCreateCommand } from "@tsparticles/cli-command-create-bundle"; import { effectCreateCommand } from "@tsparticles/cli-command-create-effect"; import { interactionCreateCommand } from "@tsparticles/cli-command-create-interaction"; @@ -13,6 +14,7 @@ const createCommand = new Command("create"); createCommand.description("Create a new tsParticles project"); +createCommand.addCommand(appCreateCommand); createCommand.addCommand(bundleCreateCommand); createCommand.addCommand(effectCreateCommand); createCommand.addCommand(interactionCreateCommand); diff --git a/cli/packages/cli-build/CHANGELOG.md b/cli/packages/cli-build/CHANGELOG.md index 1c3ccaf6248..5480469de18 100644 --- a/cli/packages/cli-build/CHANGELOG.md +++ b/cli/packages/cli-build/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-build + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-build diff --git a/cli/packages/cli-build/LICENSE b/cli/packages/cli-build/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/cli-build/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/cli-build/package.json b/cli/packages/cli-build/package.json index 4c6ceae3f94..477dd04b049 100644 --- a/cli/packages/cli-build/package.json +++ b/cli/packages/cli-build/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-build", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "bin": { @@ -24,11 +24,11 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-command-build": "workspace:^", + "@tsparticles/cli-command-build": "workspace:*", "commander": "^15.0.0" }, "devDependencies": { - "@tsparticles/prettier-config": "workspace:^" + "@tsparticles/prettier-config": "workspace:*" }, "description": "tsParticles CLI - Build command only (no circular dependencies)", "author": "Matteo Bruni " diff --git a/cli/packages/cli-create/CHANGELOG.md b/cli/packages/cli-create/CHANGELOG.md index 4a72a74611f..fdc9e6eef92 100644 --- a/cli/packages/cli-create/CHANGELOG.md +++ b/cli/packages/cli-create/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/cli-create + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-create diff --git a/cli/packages/cli-create/LICENSE b/cli/packages/cli-create/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/cli-create/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/cli-create/package.json b/cli/packages/cli-create/package.json index 47b39bb133e..4aeeeff2332 100644 --- a/cli/packages/cli-create/package.json +++ b/cli/packages/cli-create/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-create", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "bin": { @@ -24,11 +24,11 @@ "prepack": "pnpm run build" }, "dependencies": { - "@tsparticles/cli-command-create": "workspace:^", + "@tsparticles/cli-command-create": "workspace:*", "commander": "^15.0.0" }, "devDependencies": { - "@tsparticles/prettier-config": "workspace:^" + "@tsparticles/prettier-config": "workspace:*" }, "description": "tsParticles CLI - Create command only", "author": "Matteo Bruni " diff --git a/cli/packages/create-404/CHANGELOG.md b/cli/packages/create-404/CHANGELOG.md new file mode 100644 index 00000000000..9b9a384686b --- /dev/null +++ b/cli/packages/create-404/CHANGELOG.md @@ -0,0 +1,8 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package create-404 diff --git a/cli/packages/create-404/README.md b/cli/packages/create-404/README.md new file mode 100644 index 00000000000..55f71a30c27 --- /dev/null +++ b/cli/packages/create-404/README.md @@ -0,0 +1,11 @@ +# create-404 + +Scaffold a @tsparticles/template-404 project. + +```bash +npm create 404@latest +``` + +--- + +Coming soon. Stay tuned. diff --git a/cli/packages/create-404/bin/create-404.js b/cli/packages/create-404/bin/create-404.js new file mode 100644 index 00000000000..0ba6fb0de35 --- /dev/null +++ b/cli/packages/create-404/bin/create-404.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +import { spawnSync } from "node:child_process"; + +const forwardedArgs = process.argv.slice(2), + result = spawnSync( + "tsparticles-create", + ["app", ...forwardedArgs, "--template", "404", "--framework", "vanilla"], + { + stdio: "inherit", + shell: process.platform === "win32", + }, + ); + +process.exit(result.status ?? 1); diff --git a/cli/packages/create-404/package.json b/cli/packages/create-404/package.json new file mode 100644 index 00000000000..fc1352fbd9b --- /dev/null +++ b/cli/packages/create-404/package.json @@ -0,0 +1,68 @@ +{ + "name": "create-404", + "version": "4.2.0", + "description": "Scaffold a @tsparticles/template-404 project — npm create 404", + "homepage": "https://particles.js.org", + "license": "MIT", + "type": "module", + "bin": { + "create-404": "bin/create-404.js" + }, + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/packages/create-404" + }, + "keywords": [ + "tsparticles", + "particles.js", + "particles", + "404", + "error-page", + "front-end", + "web", + "animation", + "canvas", + "html5", + "cli", + "scaffold", + "create", + "template" + ], + "author": "Matteo Bruni ", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:readme": "prettier --write ./README.md", + "build": "pnpm run prettify:readme", + "build:ci": "pnpm run prettify:ci:readme", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create": "workspace:*" + }, + "devDependencies": { + "@tsparticles/prettier-config": "workspace:*" + } +} diff --git a/cli/packages/create-confetti/CHANGELOG.md b/cli/packages/create-confetti/CHANGELOG.md new file mode 100644 index 00000000000..836fc66ee60 --- /dev/null +++ b/cli/packages/create-confetti/CHANGELOG.md @@ -0,0 +1,18 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) +- preparing create packages for the new templates structure ([dc15d30](https://github.com/tsparticles/tsparticles/commit/dc15d30d4021d630b90ec767df7dd8ec6af1781e)) + +# Changelog + +## 0.0.0 + +- Initial placeholder release diff --git a/cli/packages/create-confetti/LICENSE b/cli/packages/create-confetti/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/create-confetti/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/create-confetti/README.md b/cli/packages/create-confetti/README.md new file mode 100644 index 00000000000..b39d8772672 --- /dev/null +++ b/cli/packages/create-confetti/README.md @@ -0,0 +1,11 @@ +# create-confetti + +Scaffold a @tsparticles/confetti project. + +```bash +npm create confetti@latest +``` + +--- + +Coming soon. Stay tuned. diff --git a/cli/packages/create-confetti/bin/create-confetti.js b/cli/packages/create-confetti/bin/create-confetti.js new file mode 100644 index 00000000000..7efcbbf04fc --- /dev/null +++ b/cli/packages/create-confetti/bin/create-confetti.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +import { spawnSync } from "node:child_process"; + +const forwardedArgs = process.argv.slice(2), + result = spawnSync( + "tsparticles-create", + ["app", ...forwardedArgs, "--template", "confetti", "--framework", "vanilla"], + { + stdio: "inherit", + shell: process.platform === "win32", + }, + ); + +process.exit(result.status ?? 1); diff --git a/cli/packages/create-confetti/package.json b/cli/packages/create-confetti/package.json new file mode 100644 index 00000000000..38d5863308c --- /dev/null +++ b/cli/packages/create-confetti/package.json @@ -0,0 +1,68 @@ +{ + "name": "create-confetti", + "version": "4.2.0", + "description": "Scaffold a @tsparticles/confetti project — npm create confetti", + "homepage": "https://particles.js.org", + "license": "MIT", + "type": "module", + "bin": { + "create-confetti": "bin/create-confetti.js" + }, + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/packages/create-confetti" + }, + "keywords": [ + "tsparticles", + "particles.js", + "particles", + "confetti", + "ribbons", + "front-end", + "web", + "animation", + "canvas", + "html5", + "cli", + "scaffold", + "create", + "template" + ], + "author": "Matteo Bruni ", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:readme": "prettier --write ./README.md", + "build": "pnpm run prettify:readme", + "build:ci": "pnpm run prettify:ci:readme", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create": "workspace:*" + }, + "devDependencies": { + "@tsparticles/prettier-config": "workspace:*" + } +} diff --git a/cli/packages/create-confetti/project.json b/cli/packages/create-confetti/project.json new file mode 100644 index 00000000000..19f40dca7ed --- /dev/null +++ b/cli/packages/create-confetti/project.json @@ -0,0 +1,16 @@ +{ + "name": "create-confetti", + "$schema": "https://json.schemastore.org/nx-project.json", + "projectType": "library", + "sourceRoot": "cli/packages/create-confetti", + "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "commands": ["pnpm run build"], + "cwd": "cli/packages/create-confetti" + }, + "dependsOn": ["^build"] + } + } +} diff --git a/cli/packages/create-particles/CHANGELOG.md b/cli/packages/create-particles/CHANGELOG.md new file mode 100644 index 00000000000..836fc66ee60 --- /dev/null +++ b/cli/packages/create-particles/CHANGELOG.md @@ -0,0 +1,18 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) +- preparing create packages for the new templates structure ([dc15d30](https://github.com/tsparticles/tsparticles/commit/dc15d30d4021d630b90ec767df7dd8ec6af1781e)) + +# Changelog + +## 0.0.0 + +- Initial placeholder release diff --git a/cli/packages/create-particles/LICENSE b/cli/packages/create-particles/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/create-particles/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/create-particles/README.md b/cli/packages/create-particles/README.md new file mode 100644 index 00000000000..a3aa89a698b --- /dev/null +++ b/cli/packages/create-particles/README.md @@ -0,0 +1,11 @@ +# create-particles + +Scaffold a @tsparticles/particles project. + +```bash +npm create particles@latest +``` + +--- + +Coming soon. Stay tuned. diff --git a/cli/packages/create-particles/bin/create-particles.js b/cli/packages/create-particles/bin/create-particles.js new file mode 100644 index 00000000000..a8b0b3c2730 --- /dev/null +++ b/cli/packages/create-particles/bin/create-particles.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +import { spawnSync } from "node:child_process"; + +const forwardedArgs = process.argv.slice(2), + result = spawnSync( + "tsparticles-create", + ["app", ...forwardedArgs, "--template", "particles", "--framework", "vanilla"], + { + stdio: "inherit", + shell: process.platform === "win32", + }, + ); + +process.exit(result.status ?? 1); diff --git a/cli/packages/create-particles/package.json b/cli/packages/create-particles/package.json new file mode 100644 index 00000000000..cc3e03b5476 --- /dev/null +++ b/cli/packages/create-particles/package.json @@ -0,0 +1,68 @@ +{ + "name": "create-particles", + "version": "4.2.0", + "description": "Scaffold a @tsparticles/particles project — npm create particles", + "homepage": "https://particles.js.org", + "license": "MIT", + "type": "module", + "bin": { + "create-particles": "bin/create-particles.js" + }, + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/packages/create-particles" + }, + "keywords": [ + "tsparticles", + "particles.js", + "particles", + "confetti", + "ribbons", + "front-end", + "web", + "animation", + "canvas", + "html5", + "cli", + "scaffold", + "create", + "template" + ], + "author": "Matteo Bruni ", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:readme": "prettier --write ./README.md", + "build": "pnpm run prettify:readme", + "build:ci": "pnpm run prettify:ci:readme", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create": "workspace:*" + }, + "devDependencies": { + "@tsparticles/prettier-config": "workspace:*" + } +} diff --git a/cli/packages/create-particles/project.json b/cli/packages/create-particles/project.json new file mode 100644 index 00000000000..3af3216b51a --- /dev/null +++ b/cli/packages/create-particles/project.json @@ -0,0 +1,16 @@ +{ + "name": "create-particles", + "$schema": "https://json.schemastore.org/nx-project.json", + "projectType": "library", + "sourceRoot": "cli/packages/create-particles", + "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "commands": ["pnpm run build"], + "cwd": "cli/packages/create-particles" + }, + "dependsOn": ["^build"] + } + } +} diff --git a/cli/packages/create-ribbons/CHANGELOG.md b/cli/packages/create-ribbons/CHANGELOG.md new file mode 100644 index 00000000000..836fc66ee60 --- /dev/null +++ b/cli/packages/create-ribbons/CHANGELOG.md @@ -0,0 +1,18 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) +- preparing create packages for the new templates structure ([dc15d30](https://github.com/tsparticles/tsparticles/commit/dc15d30d4021d630b90ec767df7dd8ec6af1781e)) + +# Changelog + +## 0.0.0 + +- Initial placeholder release diff --git a/cli/packages/create-ribbons/LICENSE b/cli/packages/create-ribbons/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/create-ribbons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/create-ribbons/README.md b/cli/packages/create-ribbons/README.md new file mode 100644 index 00000000000..2b9310333fe --- /dev/null +++ b/cli/packages/create-ribbons/README.md @@ -0,0 +1,11 @@ +# create-ribbons + +Scaffold a @tsparticles/ribbons project. + +```bash +npm create ribbons@latest +``` + +--- + +Coming soon. Stay tuned. diff --git a/cli/packages/create-ribbons/bin/create-ribbons.js b/cli/packages/create-ribbons/bin/create-ribbons.js new file mode 100644 index 00000000000..c7d9e34d46d --- /dev/null +++ b/cli/packages/create-ribbons/bin/create-ribbons.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +import { spawnSync } from "node:child_process"; + +const forwardedArgs = process.argv.slice(2), + result = spawnSync( + "tsparticles-create", + ["app", ...forwardedArgs, "--template", "ribbons", "--framework", "vanilla"], + { + stdio: "inherit", + shell: process.platform === "win32", + }, + ); + +process.exit(result.status ?? 1); diff --git a/cli/packages/create-ribbons/package.json b/cli/packages/create-ribbons/package.json new file mode 100644 index 00000000000..810678128ba --- /dev/null +++ b/cli/packages/create-ribbons/package.json @@ -0,0 +1,68 @@ +{ + "name": "create-ribbons", + "version": "4.2.0", + "description": "Scaffold a @tsparticles/ribbons project — npm create ribbons", + "homepage": "https://particles.js.org", + "license": "MIT", + "type": "module", + "bin": { + "create-ribbons": "bin/create-ribbons.js" + }, + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/packages/create-ribbons" + }, + "keywords": [ + "tsparticles", + "particles.js", + "particles", + "confetti", + "ribbons", + "front-end", + "web", + "animation", + "canvas", + "html5", + "cli", + "scaffold", + "create", + "template" + ], + "author": "Matteo Bruni ", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:readme": "prettier --write ./README.md", + "build": "pnpm run prettify:readme", + "build:ci": "pnpm run prettify:ci:readme", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create": "workspace:*" + }, + "devDependencies": { + "@tsparticles/prettier-config": "workspace:*" + } +} diff --git a/cli/packages/create-ribbons/project.json b/cli/packages/create-ribbons/project.json new file mode 100644 index 00000000000..fc748be7a3c --- /dev/null +++ b/cli/packages/create-ribbons/project.json @@ -0,0 +1,16 @@ +{ + "name": "create-ribbons", + "$schema": "https://json.schemastore.org/nx-project.json", + "projectType": "library", + "sourceRoot": "cli/packages/create-ribbons", + "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "commands": ["pnpm run build"], + "cwd": "cli/packages/create-ribbons" + }, + "dependsOn": ["^build"] + } + } +} diff --git a/cli/packages/create-tsparticles/CHANGELOG.md b/cli/packages/create-tsparticles/CHANGELOG.md new file mode 100644 index 00000000000..836fc66ee60 --- /dev/null +++ b/cli/packages/create-tsparticles/CHANGELOG.md @@ -0,0 +1,18 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) +- preparing create packages for the new templates structure ([dc15d30](https://github.com/tsparticles/tsparticles/commit/dc15d30d4021d630b90ec767df7dd8ec6af1781e)) + +# Changelog + +## 0.0.0 + +- Initial placeholder release diff --git a/cli/packages/create-tsparticles/LICENSE b/cli/packages/create-tsparticles/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/create-tsparticles/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/create-tsparticles/README.md b/cli/packages/create-tsparticles/README.md new file mode 100644 index 00000000000..a4eaad71a58 --- /dev/null +++ b/cli/packages/create-tsparticles/README.md @@ -0,0 +1,11 @@ +# create-tsparticles + +Scaffold a tsParticles project. + +```bash +npm create tsparticles@latest +``` + +--- + +Coming soon. Stay tuned. diff --git a/cli/packages/create-tsparticles/bin/create-tsparticles.js b/cli/packages/create-tsparticles/bin/create-tsparticles.js new file mode 100644 index 00000000000..9d978c430ad --- /dev/null +++ b/cli/packages/create-tsparticles/bin/create-tsparticles.js @@ -0,0 +1,11 @@ +#!/usr/bin/env node + +import { spawnSync } from "node:child_process"; + +const forwardedArgs = process.argv.slice(2), + result = spawnSync("tsparticles-create", ["app", ...forwardedArgs], { + stdio: "inherit", + shell: process.platform === "win32", + }); + +process.exit(result.status ?? 1); diff --git a/cli/packages/create-tsparticles/package.json b/cli/packages/create-tsparticles/package.json new file mode 100644 index 00000000000..1b102fde80d --- /dev/null +++ b/cli/packages/create-tsparticles/package.json @@ -0,0 +1,68 @@ +{ + "name": "create-tsparticles", + "version": "4.2.0", + "description": "Scaffold a tsParticles project — npm create tsparticles", + "homepage": "https://particles.js.org", + "license": "MIT", + "type": "module", + "bin": { + "create-tsparticles": "bin/create-tsparticles.js" + }, + "publishConfig": { + "access": "public", + "tagVersionPrefix": "v" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "cli/packages/create-tsparticles" + }, + "keywords": [ + "tsparticles", + "particles.js", + "particles", + "confetti", + "ribbons", + "front-end", + "web", + "animation", + "canvas", + "html5", + "cli", + "scaffold", + "create", + "template" + ], + "author": "Matteo Bruni ", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "scripts": { + "prettify:ci:readme": "prettier --check ./README.md", + "prettify:readme": "prettier --write ./README.md", + "build": "pnpm run prettify:readme", + "build:ci": "pnpm run prettify:ci:readme", + "prepack": "pnpm run build" + }, + "dependencies": { + "@tsparticles/cli-create": "workspace:*" + }, + "devDependencies": { + "@tsparticles/prettier-config": "workspace:*" + } +} diff --git a/cli/packages/create-tsparticles/project.json b/cli/packages/create-tsparticles/project.json new file mode 100644 index 00000000000..9046351cbcb --- /dev/null +++ b/cli/packages/create-tsparticles/project.json @@ -0,0 +1,16 @@ +{ + "name": "create-tsparticles", + "$schema": "https://json.schemastore.org/nx-project.json", + "projectType": "library", + "sourceRoot": "cli/packages/create-tsparticles", + "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "commands": ["pnpm run build"], + "cwd": "cli/packages/create-tsparticles" + }, + "dependsOn": ["^build"] + } + } +} diff --git a/cli/packages/nx-plugin/CHANGELOG.md b/cli/packages/nx-plugin/CHANGELOG.md index 806fdb45934..f600131db38 100644 --- a/cli/packages/nx-plugin/CHANGELOG.md +++ b/cli/packages/nx-plugin/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/cli-nx-plugin diff --git a/cli/packages/nx-plugin/LICENSE b/cli/packages/nx-plugin/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/cli/packages/nx-plugin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/packages/nx-plugin/package.json b/cli/packages/nx-plugin/package.json index cf6cb43e817..f6d10e8d03b 100644 --- a/cli/packages/nx-plugin/package.json +++ b/cli/packages/nx-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/cli-nx-plugin", - "version": "4.1.3", + "version": "4.2.0", "license": "MIT", "type": "module", "repository": { @@ -31,25 +31,25 @@ "nx": "^22" }, "dependencies": { - "@nx/devkit": "^22.7.2", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", - "eslint": "^10.4.1", + "@nx/devkit": "^22.7.5", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", - "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-jsdoc": "^63.0.5", + "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "rimraf": "^6.1.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0", - "vitest": "^4.1.7" + "typescript-eslint": "^8.61.1", + "vitest": "^4.1.9" }, "devDependencies": { - "@types/node": "^25.9.1", - "nx": "^22.7.2" + "@types/node": "^25.9.3", + "nx": "^22.7.5" }, "description": "tsParticles Nx plugin", "main": "src/index.ts", diff --git a/cli/packages/nx-plugin/src/create-nodes.ts b/cli/packages/nx-plugin/src/create-nodes.ts index d157560ffcb..33b263eca0b 100644 --- a/cli/packages/nx-plugin/src/create-nodes.ts +++ b/cli/packages/nx-plugin/src/create-nodes.ts @@ -10,7 +10,7 @@ interface TsParticlesPackageJson { const emptyCount = 0; /** - * @param scriptName - + * @param scriptName - The scriptName * @returns - */ function createScriptTarget(scriptName: string): Record { @@ -24,7 +24,7 @@ function createScriptTarget(scriptName: string): Record { } /** - * @param scripts - + * @param scripts - The scripts * @returns - */ function createFallbackScriptTargets(scripts?: Record): Record { @@ -46,8 +46,8 @@ function createFallbackScriptTargets(scripts?: Record): Record { diff --git a/cli/utils/browserslist-config/CHANGELOG.md b/cli/utils/browserslist-config/CHANGELOG.md index e9ab7b70fde..10738e795b7 100644 --- a/cli/utils/browserslist-config/CHANGELOG.md +++ b/cli/utils/browserslist-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/browserslist-config + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/browserslist-config diff --git a/cli/utils/browserslist-config/package.json b/cli/utils/browserslist-config/package.json index 6a04c9c5519..b8b34aff938 100644 --- a/cli/utils/browserslist-config/package.json +++ b/cli/utils/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/browserslist-config", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles default Browserslist configuration", "main": "dist/index.js", "license": "MIT", diff --git a/cli/utils/depcruise-config/CHANGELOG.md b/cli/utils/depcruise-config/CHANGELOG.md index 4635e8f4e30..0275ed2aea9 100644 --- a/cli/utils/depcruise-config/CHANGELOG.md +++ b/cli/utils/depcruise-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/depcruise-config + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/depcruise-config diff --git a/cli/utils/depcruise-config/package.json b/cli/utils/depcruise-config/package.json index d5dbb96ddf9..435c43055d7 100644 --- a/cli/utils/depcruise-config/package.json +++ b/cli/utils/depcruise-config/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/depcruise-config", - "version": "4.1.3", + "version": "4.2.0", "private": false, "type": "module", "publishConfig": { @@ -43,18 +43,18 @@ }, "devDependencies": { "@stylistic/eslint-plugin": "^5.10.0", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@types/node": "^25.9.1", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@types/node": "^25.9.3", "dependency-cruiser": "^17.4.3", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", - "tsdown": "^0.22.1", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", + "tsdown": "^0.22.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" } } diff --git a/cli/utils/eslint-config/CHANGELOG.md b/cli/utils/eslint-config/CHANGELOG.md index 3d3a039c30e..fd8ed4f35b5 100644 --- a/cli/utils/eslint-config/CHANGELOG.md +++ b/cli/utils/eslint-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/eslint-config + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/eslint-config diff --git a/cli/utils/eslint-config/package.json b/cli/utils/eslint-config/package.json index 2904b811906..f478024643e 100644 --- a/cli/utils/eslint-config/package.json +++ b/cli/utils/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/eslint-config", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles default ESLint Configuration (ESLint 10 + Flat Config)", "type": "module", "main": "dist/eslint.config.js", @@ -38,19 +38,19 @@ "dependencies": { "@eslint/js": "^10.0.1", "@stylistic/eslint-plugin": "^5.10.0", - "@tsparticles/prettier-config": "workspace:^", + "@tsparticles/prettier-config": "workspace:*", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "jiti": "^2.7.0", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" }, "devDependencies": { - "@types/node": "^25.9.1", - "eslint": "^10.4.1" + "@types/node": "^25.9.3", + "eslint": "^10.5.0" } } diff --git a/cli/utils/eslint-config/src/eslint.config.ts b/cli/utils/eslint-config/src/eslint.config.ts index da923eebd25..84b2d332943 100644 --- a/cli/utils/eslint-config/src/eslint.config.ts +++ b/cli/utils/eslint-config/src/eslint.config.ts @@ -134,6 +134,7 @@ const consumerDir = process.cwd(), "error", { ignore: [], + ignoreClassFieldInitialValues: true, ignoreEnums: true, ignoreNumericLiteralTypes: true, ignoreReadonlyClassProperties: true, diff --git a/cli/utils/prettier-config/CHANGELOG.md b/cli/utils/prettier-config/CHANGELOG.md index 275e071c582..a98d615334c 100644 --- a/cli/utils/prettier-config/CHANGELOG.md +++ b/cli/utils/prettier-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/prettier-config + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/prettier-config diff --git a/cli/utils/prettier-config/package.json b/cli/utils/prettier-config/package.json index be6c4ae5f3b..4664b564da7 100644 --- a/cli/utils/prettier-config/package.json +++ b/cli/utils/prettier-config/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/prettier-config", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles default Prettier Configuration", "main": "dist/index.cjs", "exports": { @@ -27,10 +27,10 @@ "prettier": "^3" }, "dependencies": { - "prettier-plugin-multiline-arrays": "^4.1.8" + "prettier-plugin-multiline-arrays": "^4.1.9" }, "devDependencies": { "cpx2": "^9.0.0", - "prettier": "^3.8.3" + "prettier": "^3.8.4" } } diff --git a/cli/utils/rollup-plugin/CHANGELOG.md b/cli/utils/rollup-plugin/CHANGELOG.md index eb0f1b2a21f..eae2842afe5 100644 --- a/cli/utils/rollup-plugin/CHANGELOG.md +++ b/cli/utils/rollup-plugin/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/rollup-plugin diff --git a/cli/utils/rollup-plugin/package.json b/cli/utils/rollup-plugin/package.json index 7100b3ed8da..b3ecbf9274d 100644 --- a/cli/utils/rollup-plugin/package.json +++ b/cli/utils/rollup-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/rollup-plugin", - "version": "4.1.3", + "version": "4.2.0", "description": "Rollup build utilities for tsParticles", "private": false, "type": "module", @@ -52,21 +52,21 @@ "@rollup/plugin-replace": "^6.0.3", "@rollup/plugin-terser": "^1.0.0", "@stylistic/eslint-plugin": "^5.10.0", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "eslint": "^10.4.1", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "rollup-plugin-visualizer": "^7.0.1" }, "devDependencies": { "@rollup/plugin-typescript": "^12.3.0", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "rimraf": "^6.1.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0" + "typescript-eslint": "^8.61.1" } } diff --git a/cli/utils/rollup-plugin/src/config/createSingleConfig.ts b/cli/utils/rollup-plugin/src/config/createSingleConfig.ts index b85332ad388..be86109a903 100644 --- a/cli/utils/rollup-plugin/src/config/createSingleConfig.ts +++ b/cli/utils/rollup-plugin/src/config/createSingleConfig.ts @@ -83,7 +83,8 @@ const EMPTY_SIZE = 0, * * This is used to REPLACE `global.window = global.tsparticlesInternalExports || {}` in the UMD wrapper, * so that rollup writes all exports directly into the correct namespace object. - * @param scope + * @param scope - The scope + * @returns The string value */ buildGlobalNamespaceInit = (scope: string): string => { const segments = scope.split("."), @@ -100,8 +101,9 @@ const EMPTY_SIZE = 0, /** * Replace the UMD factory's exports target (global.window = ...) with the correct namespace path. * This makes rollup write all `exports.X = X` directly into __tsParticlesInternals.. - * @param code - * @param scope + * @param code - The code + * @param scope - The scope + * @returns The string value */ redirectUmdExportsToNamespace = (code: string, scope: string): string => { const namespaceInit = buildGlobalNamespaceInit(scope); @@ -119,8 +121,9 @@ const EMPTY_SIZE = 0, /** * Build the code that copies public exports from the namespace to window. * Reads from globalThis.__tsParticlesInternals.. after the factory has run. - * @param scope - * @param publicExports + * @param scope - The scope + * @param publicExports - The publicExports + * @returns The string value */ buildWindowExposureCode = (scope: string, publicExports: string[]): string => { if (publicExports.length === EMPTY_SIZE) { diff --git a/cli/utils/rollup-plugin/src/config/umdPolicy.ts b/cli/utils/rollup-plugin/src/config/umdPolicy.ts index 7f559c18013..d4f467e061e 100644 --- a/cli/utils/rollup-plugin/src/config/umdPolicy.ts +++ b/cli/utils/rollup-plugin/src/config/umdPolicy.ts @@ -193,6 +193,7 @@ const buildScopedPath = (prefix: string, rawLeaf: string): string => { ["engine", `${internalRoot}.engine`], // Util packages: not "path plugins" but helper utilities; map to their actual scope ["path-utils", `${internalRoot}.path.utils`], + ["animation-utils", `${internalRoot}.animation.utils`], ["canvas-utils", `${internalRoot}.canvas.utils`], // Historical package name mismatch: @tsparticles/path-zig-zag exposes paths.zigzag. ["path-zig-zag", `${internalRoot}.paths.zigzag`], diff --git a/cli/utils/tsconfig/CHANGELOG.md b/cli/utils/tsconfig/CHANGELOG.md index 76fd52094eb..f8a15042201 100644 --- a/cli/utils/tsconfig/CHANGELOG.md +++ b/cli/utils/tsconfig/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/tsconfig + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/tsconfig diff --git a/cli/utils/tsconfig/package.json b/cli/utils/tsconfig/package.json index 0bbccf3a098..2ddd9a89ef5 100644 --- a/cli/utils/tsconfig/package.json +++ b/cli/utils/tsconfig/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/tsconfig", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles default TypeScript Compiler Configuration", "license": "MIT", "repository": { diff --git a/cli/utils/webpack-config/CHANGELOG.md b/cli/utils/webpack-config/CHANGELOG.md index 163bc32d327..fc82e54d0c2 100644 --- a/cli/utils/webpack-config/CHANGELOG.md +++ b/cli/utils/webpack-config/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/webpack-plugin diff --git a/cli/utils/webpack-config/package.json b/cli/utils/webpack-config/package.json index ebb8b569b64..775a0fe87b0 100644 --- a/cli/utils/webpack-config/package.json +++ b/cli/utils/webpack-config/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/webpack-plugin", - "version": "4.1.3", + "version": "4.2.0", "type": "module", "main": "dist/webpack-tsparticles.js", "types": "dist/webpack-tsparticles.d.ts", @@ -42,25 +42,25 @@ }, "dependencies": { "@stylistic/eslint-plugin": "^5.10.0", - "@swc/core": "^1.15.40", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", + "@swc/core": "^1.15.41", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", "browserslist": "^4.28.2", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-tsdoc": "^0.5.2", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "swc-loader": "^0.2.7", "terser-webpack-plugin": "^5.6.1", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0", + "typescript-eslint": "^8.61.1", "webpack-bundle-analyzer": "^5.3.0", "webpack-cli": "^7.0.3" }, "devDependencies": { - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@types/webpack-bundle-analyzer": "^4.7.0", "@types/webpack-env": "^1.18.8", "rimraf": "^6.1.3", diff --git a/cli/utils/webpack-config/src/bundles/buildBundle.ts b/cli/utils/webpack-config/src/bundles/buildBundle.ts index 9d8de6ff1c4..ed661aadcc5 100644 --- a/cli/utils/webpack-config/src/bundles/buildBundle.ts +++ b/cli/utils/webpack-config/src/bundles/buildBundle.ts @@ -12,7 +12,7 @@ interface BundleParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesBundle(params: BundleParams): unknown { diff --git a/cli/utils/webpack-config/src/common/getConfig.ts b/cli/utils/webpack-config/src/common/getConfig.ts index 9fc6826606c..927e4532888 100644 --- a/cli/utils/webpack-config/src/common/getConfig.ts +++ b/cli/utils/webpack-config/src/common/getConfig.ts @@ -23,9 +23,9 @@ interface ConfigParams { /** * - * @param params - - * @param min - - * @param lazy - + * @param params - The parameters + * @param min - The minimum value + * @param lazy - The lazy * @returns the webpack configuration */ function getSingleConfig(params: ConfigParams, min: boolean, lazy: boolean): unknown { diff --git a/cli/utils/webpack-config/src/effects/buildEffect.ts b/cli/utils/webpack-config/src/effects/buildEffect.ts index 9504434d360..b408085bac4 100644 --- a/cli/utils/webpack-config/src/effects/buildEffect.ts +++ b/cli/utils/webpack-config/src/effects/buildEffect.ts @@ -11,7 +11,7 @@ interface EffectParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesEffect(params: EffectParams): unknown { diff --git a/cli/utils/webpack-config/src/engine/buildEngine.ts b/cli/utils/webpack-config/src/engine/buildEngine.ts index fc2b82ff528..26c5f7c4e1c 100644 --- a/cli/utils/webpack-config/src/engine/buildEngine.ts +++ b/cli/utils/webpack-config/src/engine/buildEngine.ts @@ -9,7 +9,7 @@ interface EngineParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesEngine(params: EngineParams): unknown { diff --git a/cli/utils/webpack-config/src/interactions/buildInteraction.ts b/cli/utils/webpack-config/src/interactions/buildInteraction.ts index 67d49b7e607..2fd1f5a15ba 100644 --- a/cli/utils/webpack-config/src/interactions/buildInteraction.ts +++ b/cli/utils/webpack-config/src/interactions/buildInteraction.ts @@ -11,7 +11,7 @@ interface InteractionParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesInteraction(params: InteractionParams): unknown { diff --git a/cli/utils/webpack-config/src/interactions/external/buildInteractionExternal.ts b/cli/utils/webpack-config/src/interactions/external/buildInteractionExternal.ts index d9567fa931d..9e77396f20b 100644 --- a/cli/utils/webpack-config/src/interactions/external/buildInteractionExternal.ts +++ b/cli/utils/webpack-config/src/interactions/external/buildInteractionExternal.ts @@ -11,7 +11,7 @@ interface InteractionExternalParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesInteractionExternal(params: InteractionExternalParams): unknown { diff --git a/cli/utils/webpack-config/src/interactions/particles/buildInteractionParticles.ts b/cli/utils/webpack-config/src/interactions/particles/buildInteractionParticles.ts index 85eeff1b19a..5c053d7a385 100644 --- a/cli/utils/webpack-config/src/interactions/particles/buildInteractionParticles.ts +++ b/cli/utils/webpack-config/src/interactions/particles/buildInteractionParticles.ts @@ -11,7 +11,7 @@ interface InteractionParticlesParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesInteractionParticles(params: InteractionParticlesParams): unknown { diff --git a/cli/utils/webpack-config/src/palettes/buildPalette.ts b/cli/utils/webpack-config/src/palettes/buildPalette.ts index 7d3a3357ec9..042588e51fc 100644 --- a/cli/utils/webpack-config/src/palettes/buildPalette.ts +++ b/cli/utils/webpack-config/src/palettes/buildPalette.ts @@ -11,7 +11,7 @@ interface PaletteParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPalette(params: PaletteParams): unknown { diff --git a/cli/utils/webpack-config/src/paths/buildPath.ts b/cli/utils/webpack-config/src/paths/buildPath.ts index f5027b4eb5b..f203844ab52 100644 --- a/cli/utils/webpack-config/src/paths/buildPath.ts +++ b/cli/utils/webpack-config/src/paths/buildPath.ts @@ -11,7 +11,7 @@ interface PathParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPath(params: PathParams): unknown { diff --git a/cli/utils/webpack-config/src/plugins/buildPlugin.ts b/cli/utils/webpack-config/src/plugins/buildPlugin.ts index b6e8dc24933..a9d15c7bad7 100644 --- a/cli/utils/webpack-config/src/plugins/buildPlugin.ts +++ b/cli/utils/webpack-config/src/plugins/buildPlugin.ts @@ -12,7 +12,7 @@ interface PluginParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPlugin(params: PluginParams): unknown { diff --git a/cli/utils/webpack-config/src/plugins/easings/buildEasing.ts b/cli/utils/webpack-config/src/plugins/easings/buildEasing.ts index 2edc8b2c278..4c661b60970 100644 --- a/cli/utils/webpack-config/src/plugins/easings/buildEasing.ts +++ b/cli/utils/webpack-config/src/plugins/easings/buildEasing.ts @@ -12,7 +12,7 @@ interface EasingParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPluginEasing(params: EasingParams): unknown { diff --git a/cli/utils/webpack-config/src/plugins/emittersShapes/buildEmittersShape.ts b/cli/utils/webpack-config/src/plugins/emittersShapes/buildEmittersShape.ts index 4b7c2738a68..2b8a3148bff 100644 --- a/cli/utils/webpack-config/src/plugins/emittersShapes/buildEmittersShape.ts +++ b/cli/utils/webpack-config/src/plugins/emittersShapes/buildEmittersShape.ts @@ -12,7 +12,7 @@ interface EmittersShapeParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPluginEmittersShape(params: EmittersShapeParams): unknown { diff --git a/cli/utils/webpack-config/src/plugins/exports/buildExport.ts b/cli/utils/webpack-config/src/plugins/exports/buildExport.ts index fa4154f41f8..c20344c64e3 100644 --- a/cli/utils/webpack-config/src/plugins/exports/buildExport.ts +++ b/cli/utils/webpack-config/src/plugins/exports/buildExport.ts @@ -12,7 +12,7 @@ interface ExportParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPluginExport(params: ExportParams): unknown { diff --git a/cli/utils/webpack-config/src/presets/buildPreset.ts b/cli/utils/webpack-config/src/presets/buildPreset.ts index e531064d7f1..3aa0a0f03aa 100644 --- a/cli/utils/webpack-config/src/presets/buildPreset.ts +++ b/cli/utils/webpack-config/src/presets/buildPreset.ts @@ -11,7 +11,7 @@ interface PresetParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesPreset(params: PresetParams): unknown { diff --git a/cli/utils/webpack-config/src/shapes/buildShape.ts b/cli/utils/webpack-config/src/shapes/buildShape.ts index 0f550b61839..26a47103a83 100644 --- a/cli/utils/webpack-config/src/shapes/buildShape.ts +++ b/cli/utils/webpack-config/src/shapes/buildShape.ts @@ -11,7 +11,7 @@ interface ShapeParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesShape(params: ShapeParams): unknown { diff --git a/cli/utils/webpack-config/src/templates/buildTemplate.ts b/cli/utils/webpack-config/src/templates/buildTemplate.ts index 432257ed767..3d0474f7475 100644 --- a/cli/utils/webpack-config/src/templates/buildTemplate.ts +++ b/cli/utils/webpack-config/src/templates/buildTemplate.ts @@ -11,7 +11,7 @@ interface TemplateParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesTemplate(params: TemplateParams): unknown { diff --git a/cli/utils/webpack-config/src/updaters/buildUpdater.ts b/cli/utils/webpack-config/src/updaters/buildUpdater.ts index 9a132c9c87b..cef803a1530 100644 --- a/cli/utils/webpack-config/src/updaters/buildUpdater.ts +++ b/cli/utils/webpack-config/src/updaters/buildUpdater.ts @@ -11,7 +11,7 @@ interface UpdaterParams { } /** - * @param params - + * @param params - The parameters * @returns the webpack config */ function loadParticlesUpdater(params: UpdaterParams): unknown { diff --git a/demo/angular/CHANGELOG.md b/demo/angular/CHANGELOG.md index acd597cc01a..21256f76d94 100644 --- a/demo/angular/CHANGELOG.md +++ b/demo/angular/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed angular wrapper ([ab59ef1](https://github.com/tsparticles/tsparticles/commit/ab59ef10549d0e255e09c04f14ae41968dce8651)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/angular-demo diff --git a/demo/angular/LICENSE b/demo/angular/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/angular/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/angular/angular.json b/demo/angular/angular.json index 7557c7d65a4..0b8527311ff 100644 --- a/demo/angular/angular.json +++ b/demo/angular/angular.json @@ -18,12 +18,12 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:browser", + "builder": "@angular/build:application", "options": { "outputPath": "dist/ng-particles-demo", "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", + "browser": "src/main.ts", + "polyfills": ["src/polyfills.ts"], "tsConfig": "tsconfig.app.json", "assets": [ "src/favicon.ico", @@ -58,9 +58,7 @@ "outputHashing": "all" }, "development": { - "buildOptimizer": false, "optimization": false, - "vendorChunk": true, "extractLicenses": false, "sourceMap": true, "namedChunks": true @@ -69,7 +67,7 @@ "defaultConfiguration": "production" }, "serve": { - "builder": "@angular-devkit/build-angular:dev-server", + "builder": "@angular/build:dev-server", "options": { "buildTarget": "ng-particles-demo:build:development" }, diff --git a/demo/angular/package.json b/demo/angular/package.json index 382bb7c725e..305749bf89a 100644 --- a/demo/angular/package.json +++ b/demo/angular/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/angular-demo", - "version": "4.1.3", + "version": "4.2.0", "repository": { "type": "git", "url": "git+https://github.com/tsparticles/tsparticles.git", @@ -16,97 +16,97 @@ }, "private": true, "dependencies": { - "@angular/animations": "~21.2.14", - "@angular/common": "~21.2.14", - "@angular/compiler": "~21.2.14", - "@angular/core": "~21.2.14", - "@angular/forms": "~21.2.14", - "@angular/platform-browser": "~21.2.14", - "@angular/platform-browser-dynamic": "~21.2.14", - "@angular/router": "~21.2.14", - "@tsparticles/angular": "workspace:^", - "@tsparticles/basic": "workspace:^", - "@tsparticles/canvas-utils": "workspace:^", - "@tsparticles/confetti": "workspace:^", - "@tsparticles/configs": "workspace:^", - "@tsparticles/effect-trail": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/fireworks": "workspace:^", - "@tsparticles/interaction-external-attract": "workspace:^", - "@tsparticles/interaction-external-bounce": "workspace:^", - "@tsparticles/interaction-external-bubble": "workspace:^", - "@tsparticles/interaction-external-connect": "workspace:^", - "@tsparticles/interaction-external-destroy": "workspace:^", - "@tsparticles/interaction-external-drag": "workspace:^", - "@tsparticles/interaction-external-grab": "workspace:^", - "@tsparticles/interaction-external-parallax": "workspace:^", - "@tsparticles/interaction-external-pause": "workspace:^", - "@tsparticles/interaction-external-push": "workspace:^", - "@tsparticles/interaction-external-remove": "workspace:^", - "@tsparticles/interaction-external-repulse": "workspace:^", - "@tsparticles/interaction-external-slow": "workspace:^", - "@tsparticles/interaction-external-trail": "workspace:^", - "@tsparticles/interaction-particles-attract": "workspace:^", - "@tsparticles/interaction-particles-collisions": "workspace:^", - "@tsparticles/interaction-particles-links": "workspace:^", - "@tsparticles/path-utils": "workspace:^", - "@tsparticles/pjs": "workspace:^", - "@tsparticles/plugin-absorbers": "workspace:^", - "@tsparticles/plugin-blend": "workspace:^", - "@tsparticles/plugin-easing-quad": "workspace:^", - "@tsparticles/plugin-emitters": "workspace:^", - "@tsparticles/plugin-emitters-shape-circle": "workspace:^", - "@tsparticles/plugin-emitters-shape-square": "workspace:^", - "@tsparticles/plugin-hex-color": "workspace:^", - "@tsparticles/plugin-hsl-color": "workspace:^", - "@tsparticles/plugin-interactivity": "workspace:^", - "@tsparticles/plugin-motion": "workspace:^", - "@tsparticles/plugin-move": "workspace:^", - "@tsparticles/plugin-polygon-mask": "workspace:^", - "@tsparticles/plugin-rgb-color": "workspace:^", - "@tsparticles/plugin-sounds": "workspace:^", - "@tsparticles/shape-cards": "workspace:^", - "@tsparticles/shape-circle": "workspace:^", - "@tsparticles/shape-emoji": "workspace:^", - "@tsparticles/shape-heart": "workspace:^", - "@tsparticles/shape-image": "workspace:^", - "@tsparticles/shape-line": "workspace:^", - "@tsparticles/shape-polygon": "workspace:^", - "@tsparticles/shape-ribbon": "workspace:^", - "@tsparticles/shape-square": "workspace:^", - "@tsparticles/shape-star": "workspace:^", - "@tsparticles/shape-text": "workspace:^", - "@tsparticles/slim": "workspace:^", - "@tsparticles/updater-destroy": "workspace:^", - "@tsparticles/updater-life": "workspace:^", - "@tsparticles/updater-opacity": "workspace:^", - "@tsparticles/updater-out-modes": "workspace:^", - "@tsparticles/updater-paint": "workspace:^", - "@tsparticles/updater-roll": "workspace:^", - "@tsparticles/updater-rotate": "workspace:^", - "@tsparticles/updater-size": "workspace:^", - "@tsparticles/updater-tilt": "workspace:^", - "@tsparticles/updater-twinkle": "workspace:^", - "@tsparticles/updater-wobble": "workspace:^", - "angular-confetti": "workspace:^", - "angular-fireworks": "workspace:^", + "@angular/common": "~22.0.1", + "@angular/compiler": "~22.0.1", + "@angular/core": "~22.0.1", + "@angular/forms": "~22.0.1", + "@angular/platform-browser": "~22.0.1", + "@angular/platform-browser-dynamic": "~22.0.1", + "@angular/router": "~22.0.1", + "@tsparticles/angular": "workspace:*", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/basic": "workspace:*", + "@tsparticles/canvas-utils": "workspace:*", + "@tsparticles/confetti": "workspace:*", + "@tsparticles/configs": "workspace:*", + "@tsparticles/effect-trail": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/fireworks": "workspace:*", + "@tsparticles/interaction-external-attract": "workspace:*", + "@tsparticles/interaction-external-bounce": "workspace:*", + "@tsparticles/interaction-external-bubble": "workspace:*", + "@tsparticles/interaction-external-connect": "workspace:*", + "@tsparticles/interaction-external-destroy": "workspace:*", + "@tsparticles/interaction-external-drag": "workspace:*", + "@tsparticles/interaction-external-grab": "workspace:*", + "@tsparticles/interaction-external-parallax": "workspace:*", + "@tsparticles/interaction-external-pause": "workspace:*", + "@tsparticles/interaction-external-push": "workspace:*", + "@tsparticles/interaction-external-remove": "workspace:*", + "@tsparticles/interaction-external-repulse": "workspace:*", + "@tsparticles/interaction-external-slow": "workspace:*", + "@tsparticles/interaction-external-trail": "workspace:*", + "@tsparticles/interaction-particles-attract": "workspace:*", + "@tsparticles/interaction-particles-collisions": "workspace:*", + "@tsparticles/interaction-particles-links": "workspace:*", + "@tsparticles/path-utils": "workspace:*", + "@tsparticles/pjs": "workspace:*", + "@tsparticles/plugin-absorbers": "workspace:*", + "@tsparticles/plugin-blend": "workspace:*", + "@tsparticles/plugin-easing-quad": "workspace:*", + "@tsparticles/plugin-emitters": "workspace:*", + "@tsparticles/plugin-emitters-shape-circle": "workspace:*", + "@tsparticles/plugin-emitters-shape-square": "workspace:*", + "@tsparticles/plugin-hex-color": "workspace:*", + "@tsparticles/plugin-hsl-color": "workspace:*", + "@tsparticles/plugin-interactivity": "workspace:*", + "@tsparticles/plugin-motion": "workspace:*", + "@tsparticles/plugin-move": "workspace:*", + "@tsparticles/plugin-polygon-mask": "workspace:*", + "@tsparticles/plugin-rgb-color": "workspace:*", + "@tsparticles/plugin-sounds": "workspace:*", + "@tsparticles/shape-cards": "workspace:*", + "@tsparticles/shape-circle": "workspace:*", + "@tsparticles/shape-emoji": "workspace:*", + "@tsparticles/shape-heart": "workspace:*", + "@tsparticles/shape-image": "workspace:*", + "@tsparticles/shape-line": "workspace:*", + "@tsparticles/shape-polygon": "workspace:*", + "@tsparticles/shape-ribbon": "workspace:*", + "@tsparticles/shape-square": "workspace:*", + "@tsparticles/shape-star": "workspace:*", + "@tsparticles/shape-text": "workspace:*", + "@tsparticles/slim": "workspace:*", + "@tsparticles/updater-destroy": "workspace:*", + "@tsparticles/updater-life": "workspace:*", + "@tsparticles/updater-opacity": "workspace:*", + "@tsparticles/updater-out-modes": "workspace:*", + "@tsparticles/updater-paint": "workspace:*", + "@tsparticles/updater-roll": "workspace:*", + "@tsparticles/updater-rotate": "workspace:*", + "@tsparticles/updater-size": "workspace:*", + "@tsparticles/updater-tilt": "workspace:*", + "@tsparticles/updater-twinkle": "workspace:*", + "@tsparticles/updater-wobble": "workspace:*", + "angular-confetti": "workspace:*", + "angular-fireworks": "workspace:*", "rxjs": "~7.8.2", "tslib": "^2.8.1", - "tsparticles": "workspace:^", + "tsparticles": "workspace:*", "zone.js": "~0.16.2" }, "devDependencies": { - "@angular-devkit/build-angular": "~21.2.12", - "@angular/cli": "~21.2.12", - "@angular/compiler-cli": "~21.2.14", + "@angular/build": "22.0.1", + "@angular/cli": "~22.0.1", + "@angular/compiler-cli": "~22.0.1", "@types/jasmine": "~6.0.0", - "@types/node": "^25.9.1", - "jasmine-core": "~6.2.0", + "@types/node": "^25.9.3", + "jasmine-core": "~6.3.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.2.0", - "typescript": "~5.9.3" + "typescript": "~6.0.3" } } diff --git a/demo/angular/src/app/app.component.html b/demo/angular/src/app/app.component.html index a9fc78e097b..4a82e0eadd1 100644 --- a/demo/angular/src/app/app.component.html +++ b/demo/angular/src/app/app.component.html @@ -843,6 +843,7 @@

Next Steps

+
diff --git a/demo/angular/src/app/app.component.ts b/demo/angular/src/app/app.component.ts index 288160a6cb1..d49c6ae9bf5 100644 --- a/demo/angular/src/app/app.component.ts +++ b/demo/angular/src/app/app.component.ts @@ -24,6 +24,8 @@ export class AppComponent { origin: { y: 0.6 }, }; fireworksOptions = {}; + configIndex = 0; + configList: ISourceOptions[] = [configs.basic, configs.bubble, configs.snow]; toggleParticlesClick(): void { console.log("particles clicked"); @@ -41,7 +43,11 @@ export class AppComponent { console.log("confetti clicked"); this.fire = Math.random() + 1; - //this.confettiVisible = !this.confettiVisible; + } + + switchConfig(): void { + this.configIndex = (this.configIndex + 1) % this.configList.length; + this.particlesOptions = this.configList[this.configIndex]; } constructor(private ngParticlesService: NgParticlesService) {} @@ -54,7 +60,7 @@ export class AppComponent { }); } - public particlesLoaded(container: Container): void { + public particlesLoaded(container?: Container): void { console.log("loaded", container); } } diff --git a/demo/angular/tsconfig.json b/demo/angular/tsconfig.json index 72ddf5db437..7896e260426 100644 --- a/demo/angular/tsconfig.json +++ b/demo/angular/tsconfig.json @@ -4,6 +4,7 @@ "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", + "ignoreDeprecations": "6.0", "forceConsistentCasingInFileNames": true, "strict": true, "noImplicitOverride": true, diff --git a/demo/astro/CHANGELOG.md b/demo/astro/CHANGELOG.md index 68473cbb643..2018df62902 100644 --- a/demo/astro/CHANGELOG.md +++ b/demo/astro/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed astro wrapper ([46e9e44](https://github.com/tsparticles/tsparticles/commit/46e9e44838552f9d1ad0ea3fe58b2d48b140f91a)) +- fixed astro wrapper ([1edf67f](https://github.com/tsparticles/tsparticles/commit/1edf67f4f81f560c3ef845bdd65eacc6cb4b5157)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/astro-demo diff --git a/demo/astro/LICENSE b/demo/astro/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/astro/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/astro/package.json b/demo/astro/package.json index 2c06173ea41..56da5280b07 100644 --- a/demo/astro/package.json +++ b/demo/astro/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/astro-demo", "type": "module", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -17,13 +17,13 @@ "astro": "astro" }, "dependencies": { - "@tsparticles/astro": "workspace:^", - "@tsparticles/engine": "workspace:^", - "astro": "^6.1.6", - "tsparticles": "workspace:^" + "@tsparticles/astro": "workspace:*", + "@tsparticles/engine": "workspace:*", + "astro": "^6.4.7", + "tsparticles": "workspace:*" }, "devDependencies": { - "@astrojs/check": "^0.9.8", - "typescript": "^5.9.3" + "@astrojs/check": "^0.9.9", + "typescript": "^6.0.3" } } diff --git a/demo/astro/src/pages/index.astro b/demo/astro/src/pages/index.astro index 17d28c6445f..1568e71ca00 100644 --- a/demo/astro/src/pages/index.astro +++ b/demo/astro/src/pages/index.astro @@ -43,9 +43,24 @@ const options: ISourceOptions = { }).catch((e) => { console.error("Failed to initialize particles engine:", e); }); + + // Reactive config switch demo + const configs = [ + {"background":{"color":{"value":"#f00"}},"particles":{"paint":{"color":{"value":"#000"}},"links":{"color":"#000","enable":true},"number":{"value":100},"move":{"enable":true}}}, + {"background":{"color":{"value":"#00f"}},"particles":{"paint":{"color":{"value":"#fff"}},"links":{"color":"#fff","enable":true},"number":{"value":50},"move":{"enable":true,"speed":3}}} + ]; + let currentConfig = 0; + + window.switchConfig = () => { + const el = document.querySelector("astro-particles"); + if (!el) return; + currentConfig = 1 - currentConfig; + el.setAttribute("data-options", JSON.stringify(configs[currentConfig])); + }; +

Welcome to Astro

To get started, open the directory src/pages in your project.
diff --git a/demo/electron/CHANGELOG.md b/demo/electron/CHANGELOG.md index e127eb3791e..3bc0763d6d9 100644 --- a/demo/electron/CHANGELOG.md +++ b/demo/electron/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/electron-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/electron-demo diff --git a/demo/electron/LICENSE b/demo/electron/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/electron/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/electron/package.json b/demo/electron/package.json index 3d489d70c68..1a7af5ead48 100644 --- a/demo/electron/package.json +++ b/demo/electron/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/electron-demo", - "version": "4.1.3", + "version": "4.2.0", "description": "", "main": "app/index.cjs", "private": true, @@ -20,6 +20,7 @@ "author": "Matteo Bruni ", "license": "MIT", "dependencies": { + "@tsparticles/animation-utils": "workspace:*", "@tsparticles/basic": "workspace:*", "@tsparticles/canvas-utils": "workspace:*", "@tsparticles/configs": "workspace:*", @@ -75,16 +76,17 @@ "tsparticles": "workspace:*" }, "devDependencies": { + "@electron-internal/extract-zip": "^1.0.3", "@electron/asar": "^4.2.0", "@electron/get": "^5.0.0", "@electron/notarize": "^3.1.1", "@electron/osx-sign": "^2.4.0", - "@electron/packager": "^20.0.0", + "@electron/packager": "^20.0.1", "@electron/universal": "^3.0.4", "@electron/windows-sign": "^2.0.3", "@malept/cross-spawn-promise": "^2.0.0", "@sec-ant/readable-stream": "^0.7.0", - "@types/node": "^25.9.1", + "@types/node": "^25.9.3", "@xmldom/xmldom": "^0.9.10", "author-regex": "^1.0.0", "balanced-match": "^4.0.4", @@ -93,12 +95,12 @@ "commander": "^15.0.0", "cross-spawn": "^7.0.6", "debug": "^4.4.3", - "electron": "^41.7.1", + "electron": "^42.4.1", "env-paths": "^4.0.0", "err-code": "^3.0.1", "extract-zip": "^2.0.1", "filename-reserved-regex": "^4.0.0", - "filenamify": "^7.0.1", + "filenamify": "^7.0.2", "flora-colossus": "^3.0.2", "galactus": "^2.0.2", "get-stream": "^9.0.1", @@ -124,15 +126,15 @@ "promise-retry": "^2.0.1", "resedit": "^3.0.2", "retry": "^0.13.1", - "semver": "^7.8.0", + "semver": "^7.8.4", "shebang-command": "^2.0.0", "shebang-regex": "^4.0.0", "sumchecker": "^3.0.1", - "undici-types": "^8.3.0", + "undici-types": "^8.5.0", "which": "^7.0.0", "xmlbuilder": "^15.1.1", "yargs-parser": "^22.0.0", - "yauzl": "^3.3.1" + "yauzl": "^3.4.0" }, "type": "module" } diff --git a/demo/ember/CHANGELOG.md b/demo/ember/CHANGELOG.md index ae90915e06e..29618b72032 100644 --- a/demo/ember/CHANGELOG.md +++ b/demo/ember/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed ember wrapper ([ad417d8](https://github.com/tsparticles/tsparticles/commit/ad417d8340661f1a7a12d28e60fb64e98ec84868)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/ember-demo diff --git a/demo/ember/LICENSE b/demo/ember/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/ember/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/ember/app/controllers/application.ts b/demo/ember/app/controllers/application.ts index 0da7c3af677..8f9a7ba78fa 100644 --- a/demo/ember/app/controllers/application.ts +++ b/demo/ember/app/controllers/application.ts @@ -1,15 +1,16 @@ import Controller from "@ember/controller"; import { tracked } from "@glimmer/tracking"; -import type { Container, Engine } from "@tsparticles/engine"; +import type { Container, Engine, ISourceOptions } from "@tsparticles/engine"; import { loadSnowPreset } from "@tsparticles/preset-snow"; import { initParticlesEngine } from "@tsparticles/ember/utils/init-particles-engine"; import { loadFull } from "tsparticles"; -import { CONFETTI_OPTIONS, LINK_OPTIONS } from "../utils/options"; +import { CONFETTI_OPTIONS, LINK_OPTIONS, SNOW_OPTIONS } from "../utils/options"; export default class ApplicationController extends Controller { @tracked isConfettiVisible = false; + @tracked options: ISourceOptions = LINK_OPTIONS; + @tracked theme = "default"; - options = LINK_OPTIONS; confetti = CONFETTI_OPTIONS; // Use a typed args parameter for compatibility with Ember/TS @@ -27,7 +28,15 @@ export default class ApplicationController extends Controller { } } - loadedCallback(container: Container) { + loadedCallback = (container?: Container) => { console.log("Particles loaded", container); - } + }; + + switchConfig = () => { + this.options = (this.options === LINK_OPTIONS ? SNOW_OPTIONS : LINK_OPTIONS) as ISourceOptions; + }; + + toggleTheme = () => { + this.theme = this.theme === "default" ? "dark" : "default"; + }; } diff --git a/demo/ember/app/templates/application.hbs b/demo/ember/app/templates/application.hbs index 15be66e4703..b1f2a3f17bc 100644 --- a/demo/ember/app/templates/application.hbs +++ b/demo/ember/app/templates/application.hbs @@ -2,6 +2,14 @@

tsParticles Ember Demo

+ + + + + + diff --git a/demo/lit/package.json b/demo/lit/package.json index b349ca5ecdc..854e75910a2 100644 --- a/demo/lit/package.json +++ b/demo/lit/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/lit-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "description": "A simple web component", "type": "module", @@ -27,39 +27,38 @@ "author": "The Polymer Authors", "license": "BSD-3-Clause", "dependencies": { - "@tsparticles/engine": "workspace:^", - "@tsparticles/lit": "workspace:^", + "@tsparticles/engine": "workspace:*", + "@tsparticles/lit": "workspace:*", "lit": "^3.3.3", - "tsparticles": "workspace:^" + "tsparticles": "workspace:*" }, "devDependencies": { - "@11ty/eleventy": "^2.0.0", - "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", - "@open-wc/testing": "^3.0.0", - "@open-wc/testing-karma": "^4.0.0", - "@rollup/plugin-node-resolve": "^6.0.0", - "@rollup/plugin-replace": "^5.0.0", - "@types/chai": "^4.2.7", - "@types/mocha": "^10.0.0", - "@typescript-eslint/eslint-plugin": "^8.59.1", - "@typescript-eslint/parser": "^8.59.1", - "@web/dev-server": "^0.1.35", - "chai": "^4.2.0", - "deepmerge": "^4.2.2", - "eslint": "^10.3.0", - "karma": "^6.0.0", + "@11ty/eleventy": "^3.1.6", + "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2", + "@open-wc/testing": "^4.0.0", + "@open-wc/testing-karma": "^4.0.9", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", + "@web/dev-server": "^0.4.6", + "chai": "^4.5.0", + "deepmerge": "^4.3.1", + "eslint": "^10.5.0", + "karma": "^6.4.4", "karma-chai": "^0.1.0", - "karma-mocha": "^2.0.0", - "lit-analyzer": "^1.1.9", - "mocha": "^10.0.0", + "karma-mocha": "^2.0.1", + "lit-analyzer": "^2.0.3", + "mocha": "^11.7.6", "node-resolve": "^1.3.4", - "prettier": "^3.0.0", - "rimraf": "^5.0.0", - "rollup": "^4.60.4", + "prettier": "^3.8.4", + "rimraf": "^5.0.10", + "rollup": "^4.62.0", "rollup-plugin-filesize": "^10.0.0", - "rollup-plugin-terser": "^7.0.0", "sinon": "^22.0.0", - "typescript": "^5.0.0", - "web-component-analyzer": "^1.0.0" + "typescript": "^6.0.3", + "web-component-analyzer": "^2.0.0" } } diff --git a/demo/lit/tsconfig.json b/demo/lit/tsconfig.json index d8cf28ec7c3..e763d47485f 100644 --- a/demo/lit/tsconfig.json +++ b/demo/lit/tsconfig.json @@ -13,16 +13,10 @@ "noUnusedParameters": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "allowSyntheticDefaultImports": true, "experimentalDecorators": true, - "forceConsistentCasingInFileNames": true, - "plugins": [ - { - "name": "ts-lit-plugin", - "strict": true - } - ] + "forceConsistentCasingInFileNames": true }, "include": ["src/**/*.ts"], "exclude": [] diff --git a/demo/lit/web-dev-server.config.mjs b/demo/lit/web-dev-server.config.mjs index 68a48bfbf55..13d573ab320 100644 --- a/demo/lit/web-dev-server.config.mjs +++ b/demo/lit/web-dev-server.config.mjs @@ -5,4 +5,13 @@ export default { appIndex: 'dev/index.html', // in a monorepo you need to set the root dir to resolve modules rootDir: '../../', + middleware: [ + function redirectRoot(ctx, next) { + if (ctx.url === "/") { + ctx.redirect("/demo/lit/dev/"); + return; + } + return next(); + }, + ], }; diff --git a/demo/nextjs-legacy/CHANGELOG.md b/demo/nextjs-legacy/CHANGELOG.md index 4d50653610e..6c35821ce37 100644 --- a/demo/nextjs-legacy/CHANGELOG.md +++ b/demo/nextjs-legacy/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/nextjs-legacy-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/nextjs-legacy-demo diff --git a/demo/nextjs-legacy/LICENSE b/demo/nextjs-legacy/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/nextjs-legacy/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/nextjs-legacy/package.json b/demo/nextjs-legacy/package.json index f057015feba..34b88946a1b 100644 --- a/demo/nextjs-legacy/package.json +++ b/demo/nextjs-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/nextjs-legacy-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -19,14 +19,14 @@ "@tsparticles/nextjs": "workspace:*", "@tsparticles/plugin-themes": "workspace:*", "@tsparticles/slim": "workspace:*", - "next": "^16.2.3", - "react": "^19.2.5", - "react-dom": "^19.2.5", - "typescript": "^6.0.2" + "next": "^16.2.8", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "typescript": "^6.0.3" }, "devDependencies": { - "@next/eslint-plugin-next": "^16.2.3", - "eslint": "^10.2.0", - "eslint-config-next": "^16.2.3" + "@next/eslint-plugin-next": "^16.2.8", + "eslint": "^10.5.0", + "eslint-config-next": "^16.2.8" } } diff --git a/demo/nextjs/CHANGELOG.md b/demo/nextjs/CHANGELOG.md index 28975c8ab71..afa08ad0b6b 100644 --- a/demo/nextjs/CHANGELOG.md +++ b/demo/nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/nextjs-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/nextjs-demo diff --git a/demo/nextjs/LICENSE b/demo/nextjs/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/nextjs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/nextjs/package.json b/demo/nextjs/package.json index 9a3137909af..a636fa576c5 100644 --- a/demo/nextjs/package.json +++ b/demo/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/nextjs-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -19,19 +19,19 @@ "@tsparticles/nextjs": "workspace:*", "@tsparticles/plugin-themes": "workspace:*", "@tsparticles/slim": "workspace:*", - "@types/node": "^25.6.0", - "@types/react": "^19.2.14", + "@types/node": "^25.9.3", + "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "next": "^16.2.3", - "react": "^19.2.5", - "react-dom": "^19.2.5", - "typescript": "^6.0.2" + "next": "^16.2.8", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "typescript": "^6.0.3" }, "devDependencies": { - "@next/eslint-plugin-next": "^16.2.3", - "@typescript-eslint/eslint-plugin": "^8.58.1", - "@typescript-eslint/parser": "^8.58.1", - "eslint": "^10.2.0", - "eslint-config-next": "^16.2.3" + "@next/eslint-plugin-next": "^16.2.8", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", + "eslint": "^10.5.0", + "eslint-config-next": "^16.2.8" } } diff --git a/demo/nuxt2/CHANGELOG.md b/demo/nuxt2/CHANGELOG.md index e7dbb578002..420472735e5 100644 --- a/demo/nuxt2/CHANGELOG.md +++ b/demo/nuxt2/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/nuxt2-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/nuxt2-demo diff --git a/demo/nuxt2/LICENSE b/demo/nuxt2/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/nuxt2/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/nuxt2/package.json b/demo/nuxt2/package.json index 2c58297d1a3..9a1220f0ba2 100644 --- a/demo/nuxt2/package.json +++ b/demo/nuxt2/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/nuxt2-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -19,42 +19,41 @@ "lintfix": "prettier --write --list-different . && pnpm run lint:js --fix" }, "dependencies": { - "@tsparticles/engine": "workspace:^", - "@tsparticles/nuxt2": "workspace:^", - "@tsparticles/vue2": "workspace:^", + "@tsparticles/engine": "workspace:*", + "@tsparticles/nuxt2": "workspace:*", + "@tsparticles/vue2": "workspace:*", "core-js": "^3.49.0", - "nuxt": "2.18.1", - "tsparticles": "workspace:^", + "nuxt": "^2.18.1", + "tsparticles": "workspace:*", "vue": "2.7.16", "vue-router": "3.6.5", "vue-server-renderer": "2.7.16", "vue-template-compiler": "2.7.16" }, "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/eslint-parser": "^7.28.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", - "@babel/plugin-transform-optional-chaining": "^7.28.6", - "@babel/preset-env": "^7.29.2", + "@babel/core": "^7.0.0", + "@babel/eslint-parser": "^7.0.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-transform-optional-chaining": "^7.0.0", + "@babel/preset-env": "^7.0.0", "@eslint/js": "^10.0.1", "@nuxt/types": "2.18.1", "@nuxt/typescript-build": "^3.0.2", "@nuxtjs/eslint-config-typescript": "^12.1.0", "@nuxtjs/eslint-module": "^4.1.0", - "@types/node": "^20.11.25", - "@typescript-eslint/parser": "^8.59.1", + "@types/node": "^20.14.8", + "@typescript-eslint/parser": "^8.61.1", "babel-loader": "^8.4.1", "css-loader": "^5.2.7", - "eslint": "^10.3.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-nuxt": "^4.0.0", - "eslint-plugin-vue": "^10.8.0", - "globals": "^16.4.0", + "eslint-plugin-vue": "^10.9.2", + "globals": "^17.6.0", "postcss-loader": "^4.3.0", - "prettier": "^3.8.2", + "prettier": "^3.8.4", "ts-loader": "^8.4.0", - "vue-eslint-parser": "^10.4.0", + "vue-eslint-parser": "^10.4.1", "vue-loader": "^15.11.1", "vue-template-babel-compiler": "^2.0.0", "webpack": "^4.47.0" diff --git a/demo/nuxt3/CHANGELOG.md b/demo/nuxt3/CHANGELOG.md index 6e3df9abfa5..ca2e6182fd8 100644 --- a/demo/nuxt3/CHANGELOG.md +++ b/demo/nuxt3/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/nuxt3-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/nuxt3-demo diff --git a/demo/nuxt3/package.json b/demo/nuxt3/package.json index 6be6b979840..6959aa4a8d1 100644 --- a/demo/nuxt3/package.json +++ b/demo/nuxt3/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/nuxt3-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "type": "module", "repository": { @@ -23,27 +23,27 @@ "*.**": "prettier --check --ignore-unknown" }, "dependencies": { - "@babel/core": "^7.29.0", + "@babel/core": "^8.0.1", "@eslint/js": "^10.0.1", - "@tsparticles/engine": "workspace:^", - "@tsparticles/nuxt3": "workspace:^", - "@tsparticles/vue3": "workspace:^", - "@typescript-eslint/parser": "^8.58.1", - "@vue/reactivity": "^3.5.32", - "@vue/runtime-core": "^3.5.32", - "@vue/runtime-dom": "^3.5.32", - "@vue/shared": "^3.5.32", + "@tsparticles/engine": "workspace:*", + "@tsparticles/nuxt3": "workspace:*", + "@tsparticles/vue3": "workspace:*", + "@typescript-eslint/parser": "^8.61.1", + "@vue/reactivity": "^3.5.38", + "@vue/runtime-core": "^3.5.38", + "@vue/runtime-dom": "^3.5.38", + "@vue/shared": "^3.5.38", "consola": "^3.4.2", - "eslint": "^10.2.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-vue": "^10.8.0", - "globals": "^17.5.0", - "lint-staged": "^16.4.0", - "nuxt": "^3.21.2", - "prettier": "^3.8.2", - "tsparticles": "workspace:^", - "typescript": "^6.0.2", - "vue": "^3.5.32", - "vue-eslint-parser": "^10.4.0" + "eslint-plugin-vue": "^10.9.2", + "globals": "^17.6.0", + "lint-staged": "^17.0.7", + "nuxt": "^3.21.8", + "prettier": "^3.8.4", + "tsparticles": "workspace:*", + "typescript": "^6.0.3", + "vue": "^3.5.38", + "vue-eslint-parser": "^10.4.1" } } diff --git a/demo/nuxt4/CHANGELOG.md b/demo/nuxt4/CHANGELOG.md index af0c629bc2f..ed30f0e12da 100644 --- a/demo/nuxt4/CHANGELOG.md +++ b/demo/nuxt4/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/nuxt4-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/nuxt4-demo diff --git a/demo/nuxt4/package.json b/demo/nuxt4/package.json index 35c1c37ce71..85ff6c2d326 100644 --- a/demo/nuxt4/package.json +++ b/demo/nuxt4/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/nuxt4-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "type": "module", "repository": { @@ -23,27 +23,27 @@ "*.**": "prettier --check --ignore-unknown" }, "dependencies": { - "@babel/core": "^7.29.0", + "@babel/core": "^8.0.1", "@eslint/js": "^10.0.1", - "@tsparticles/engine": "workspace:^", - "@tsparticles/nuxt4": "workspace:^", - "@tsparticles/vue3": "workspace:^", - "@typescript-eslint/parser": "^8.58.1", - "@vue/reactivity": "^3.5.32", - "@vue/runtime-core": "^3.5.32", - "@vue/runtime-dom": "^3.5.32", - "@vue/shared": "^3.5.32", + "@tsparticles/engine": "workspace:*", + "@tsparticles/nuxt4": "workspace:*", + "@tsparticles/vue3": "workspace:*", + "@typescript-eslint/parser": "^8.61.1", + "@vue/reactivity": "^3.5.38", + "@vue/runtime-core": "^3.5.38", + "@vue/runtime-dom": "^3.5.38", + "@vue/shared": "^3.5.38", "consola": "^3.4.2", - "eslint": "^10.2.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-vue": "^10.8.0", - "globals": "^17.5.0", - "lint-staged": "^16.4.0", - "nuxt": "^4.4.2", - "prettier": "^3.8.2", - "tsparticles": "workspace:^", - "typescript": "^6.0.2", - "vue": "^3.5.32", - "vue-eslint-parser": "^10.4.0" + "eslint-plugin-vue": "^10.9.2", + "globals": "^17.6.0", + "lint-staged": "^17.0.7", + "nuxt": "^4.4.8", + "prettier": "^3.8.4", + "tsparticles": "workspace:*", + "typescript": "^6.0.3", + "vue": "^3.5.38", + "vue-eslint-parser": "^10.4.1" } } diff --git a/demo/preact/CHANGELOG.md b/demo/preact/CHANGELOG.md index e295331b805..773498f3bd9 100644 --- a/demo/preact/CHANGELOG.md +++ b/demo/preact/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed preact wrapper ([8c7d9f9](https://github.com/tsparticles/tsparticles/commit/8c7d9f9a10b4806c9085457dfe58bd43373bd5aa)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preact-demo diff --git a/demo/preact/LICENSE b/demo/preact/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/preact/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/preact/package.json b/demo/preact/package.json index e40068118bd..1d125f5597a 100644 --- a/demo/preact/package.json +++ b/demo/preact/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preact-demo", "private": true, - "version": "4.1.3", + "version": "4.2.0", "type": "module", "description": "> TODO: description", "author": "Matteo Bruni ", @@ -29,28 +29,28 @@ "url": "https://github.com/tsparticles/preact/issues" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^8.59.1", - "@typescript-eslint/parser": "^8.59.1", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", "copyfiles": "^2.4.1", "enzyme": "^3.11.0", "enzyme-adapter-preact-pure": "^4.1.0", - "eslint": "^10.3.0", - "eslint-config-preact": "^1.3.0", + "eslint": "^10.5.0", + "eslint-config-preact": "^2.0.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-hooks": "^7.1.1", "identity-obj-proxy": "^3.0.0", - "preact-cli": "^3.5.0", - "prettier": "^3.1.1", - "sirv-cli": "^2.0.2", - "typescript": "^5.3.3" + "preact-cli": "^3.5.1", + "prettier": "^3.8.4", + "sirv-cli": "^3.0.1", + "typescript": "^6.0.3" }, "dependencies": { - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/preact": "workspace:^", + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/preact": "workspace:*", "preact": "^10.19.3", "preact-render-to-string": "^6.3.1", "preact-router": "^4.1.2", - "tsparticles": "workspace:^" + "tsparticles": "workspace:*" } } diff --git a/demo/preact/src/components/app.js b/demo/preact/src/components/app.js index 6c50e079ca1..9a1777cc7b7 100644 --- a/demo/preact/src/components/app.js +++ b/demo/preact/src/components/app.js @@ -35,8 +35,6 @@ export default class App extends Component { constructor() { super(); - // Initialize particles on client after mount to avoid running during - // SSR or module evaluation. if (typeof window !== "undefined") { void initParticlesEngine(async (engine) => { await loadFull(engine); diff --git a/demo/qwik/CHANGELOG.md b/demo/qwik/CHANGELOG.md index 817ef7f3408..ee99410c98f 100644 --- a/demo/qwik/CHANGELOG.md +++ b/demo/qwik/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed qwik wrapper ([4d04ed9](https://github.com/tsparticles/tsparticles/commit/4d04ed907201dae50a16d130417e0aa3c00b73a4)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/qwik-demo diff --git a/demo/qwik/LICENSE b/demo/qwik/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/qwik/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/qwik/package.json b/demo/qwik/package.json index 7c2159787d0..bf51538ec43 100644 --- a/demo/qwik/package.json +++ b/demo/qwik/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/qwik-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "type": "module", "repository": { @@ -15,14 +15,14 @@ "preview": "vite preview" }, "dependencies": { - "@builder.io/qwik": "1.19.2", - "@tsparticles/engine": "workspace:^", - "tsparticles": "workspace:^" + "@builder.io/qwik": "^1.20.0", + "@tsparticles/engine": "workspace:*", + "tsparticles": "workspace:*" }, "devDependencies": { - "@types/node": "^25.6.0", - "typescript": "^6.0.2", - "vite": "^8.0.8", + "@types/node": "^25.9.3", + "typescript": "^6.0.3", + "vite": "^8.0.16", "vite-tsconfig-paths": "^6.1.1" } } diff --git a/demo/qwik/src/root.tsx b/demo/qwik/src/root.tsx index fbb9e6f8999..1807699ad09 100644 --- a/demo/qwik/src/root.tsx +++ b/demo/qwik/src/root.tsx @@ -1,21 +1,14 @@ import { Particles, initParticlesEngine } from "../../../wrappers/qwik/src/components/particles"; import type { Engine } from "@tsparticles/engine"; import { loadFull } from "tsparticles"; -import { component$, useSignal, useVisibleTask$ } from "@builder.io/qwik"; +import { component$, useVisibleTask$ } from "@builder.io/qwik"; -// Run initialization on the client only. useVisibleTask$ ensures the -// callback runs in the browser when the component becomes visible. export default component$(() => { - const particlesReady = useSignal(false); - useVisibleTask$(async () => { await initParticlesEngine(async (engine: Engine) => { await loadFull(engine); }); - - particlesReady.value = true; }); - return ( <> @@ -26,37 +19,35 @@ export default component$(() => {

tsParticles Qwik Demo

- {particlesReady.value && ( - - )} + links: { + enable: true, + }, + move: { + enable: true, + }, + number: { + value: 80, + }, + }, + }} + />
diff --git a/demo/react/CHANGELOG.md b/demo/react/CHANGELOG.md index aa5870ac6a5..51b9a857d7c 100644 --- a/demo/react/CHANGELOG.md +++ b/demo/react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/react-demo + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/react-demo diff --git a/demo/react/LICENSE b/demo/react/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/react/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/react/package.json b/demo/react/package.json index a12683fb699..302c584de71 100644 --- a/demo/react/package.json +++ b/demo/react/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/react-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "type": "module", "repository": { @@ -11,10 +11,10 @@ "dependencies": { "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-themes": "workspace:*", - "@tsparticles/react": "workspace:^", + "@tsparticles/react": "workspace:*", "@tsparticles/slim": "workspace:*", - "react": "^19.2.5", - "react-dom": "^19.2.5" + "react": "^19.2.7", + "react-dom": "^19.2.7" }, "scripts": { "start": "vite", @@ -25,8 +25,8 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@vitejs/plugin-react": "^6.0.1", - "eslint": "^10.2.0", - "vite": "^8.0.8" + "@vitejs/plugin-react": "^6.0.2", + "eslint": "^10.5.0", + "vite": "^8.0.16" } } diff --git a/demo/riot/CHANGELOG.md b/demo/riot/CHANGELOG.md index 2155cb6197a..b01519d462b 100644 --- a/demo/riot/CHANGELOG.md +++ b/demo/riot/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed riot wrapper ([3711e63](https://github.com/tsparticles/tsparticles/commit/3711e63c74c68ecbc078f3bbb4be5156d6ecdae3)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/riot-demo diff --git a/demo/riot/package.json b/demo/riot/package.json index c9bfa263690..227e236519b 100644 --- a/demo/riot/package.json +++ b/demo/riot/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/riot-demo", "private": true, - "version": "4.1.3", + "version": "4.2.0", "description": "", "main": "index.js", "repository": { @@ -21,31 +21,31 @@ "author": "Matteo Bruni ", "license": "MIT", "devDependencies": { - "@riotjs/compiler": "^10.0.0", + "@riotjs/compiler": "^10.0.2", "@riotjs/register": "^10.0.0", "@riotjs/webpack-loader": "^10.0.0", - "chai": "^4.4.0", - "css-loader": "^6.9.0", + "chai": "^4.5.0", + "css-loader": "^6.11.0", "esm": "^3.2.25", - "html-webpack-plugin": "^5.6.0", - "jsdom": "^24.0.0", + "html-webpack-plugin": "^5.6.7", + "jsdom": "^29.1.1", "jsdom-global": "^3.0.2", - "mini-css-extract-plugin": "^2.7.7", - "mocha": "^10.2.0", - "nyc": "^15.1.0", - "webpack": "^5.89.0", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.2.4" + "mini-css-extract-plugin": "^2.10.2", + "mocha": "^11.7.6", + "nyc": "^18.0.0", + "webpack": "^5.107.2", + "webpack-cli": "^7.0.3", + "webpack-dev-server": "^5.2.5" }, "dependencies": { "@riotjs/hot-reload": "^10.0.0", "@riotjs/lazy": "^10.0.0", "@riotjs/route": "^10.0.0", - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/riot": "workspace:^", + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/riot": "workspace:*", "path": "^0.12.7", "riot": "^10.1.4", - "tsparticles": "workspace:^" + "tsparticles": "workspace:*" } } diff --git a/demo/riot/src/components/global/my-component/my-component.riot b/demo/riot/src/components/global/my-component/my-component.riot index 322bf034e0d..391b5efd002 100644 --- a/demo/riot/src/components/global/my-component/my-component.riot +++ b/demo/riot/src/components/global/my-component/my-component.riot @@ -1,34 +1,41 @@

{ props.message }

- + + + +
diff --git a/demo/riot/webpack.config.js b/demo/riot/webpack.config.js index 3e7a590ece7..99bf726636c 100644 --- a/demo/riot/webpack.config.js +++ b/demo/riot/webpack.config.js @@ -17,6 +17,11 @@ module.exports = { // dependencies declared in demo/riot/package.json (eg. @riotjs/hot-reload) // are resolvable when modules are imported from the wrappers/ directory. modules: [path.resolve(__dirname, 'node_modules'), 'node_modules'], + alias: { + // Resolve @tsparticles/riot to the source .riot file for consistency + // with the direct import in index.js — avoids duplicate module instances. + "@tsparticles/riot$": path.resolve(__dirname, "../../wrappers/riot/src/riot-particles.riot"), + }, }, optimization: { runtimeChunk: { diff --git a/demo/solid/CHANGELOG.md b/demo/solid/CHANGELOG.md index 9432e52394e..b5dbcf4acfd 100644 --- a/demo/solid/CHANGELOG.md +++ b/demo/solid/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed solid wrapper ([fdd51c2](https://github.com/tsparticles/tsparticles/commit/fdd51c2c05bf140d83c04114250e9234f9c31bd1)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/solid-demo diff --git a/demo/solid/LICENSE b/demo/solid/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/solid/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/solid/package.json b/demo/solid/package.json index 9610165f42e..b7e2031f330 100644 --- a/demo/solid/package.json +++ b/demo/solid/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/solid-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "description": "", "repository": { @@ -16,16 +16,16 @@ }, "license": "MIT", "devDependencies": { - "solid-devtools": "^0.29.2", - "typescript": "^5.3.3", - "vite": "^5.0.11", - "vite-plugin-solid": "^2.8.2" + "solid-devtools": "^0.34.5", + "typescript": "^6.0.3", + "vite": "^8.0.16", + "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", "@tsparticles/solid": "workspace:*", - "solid-js": "^1.8.11", - "tsparticles": "workspace:^" + "solid-js": "^1.9.13", + "tsparticles": "workspace:*" } } diff --git a/demo/solid/src/App.tsx b/demo/solid/src/App.tsx index f4711784ab5..6e3a8d60761 100644 --- a/demo/solid/src/App.tsx +++ b/demo/solid/src/App.tsx @@ -1,25 +1,40 @@ import configs from "@tsparticles/configs"; +import type { Container } from "@tsparticles/engine"; import type { Component } from "solid-js"; -import { createSignal, Show, onMount } from "solid-js"; +import { createSignal } from "solid-js"; import { loadFull } from "tsparticles"; import Particles, { initParticlesEngine } from "@tsparticles/solid"; +type ConfigKey = keyof typeof configs; +const configKeys = Object.keys(configs) as ConfigKey[]; + +initParticlesEngine(async engine => { + await loadFull(engine); +}).catch(e => console.error("Failed to initialize particles engine:", e)); + const App: Component = () => { - const [initialized, setInitialized] = createSignal(false); + const [options, setOptions] = createSignal(configs.basic); + + const switchConfig = (key: ConfigKey) => { + setOptions(configs[key]); + }; - onMount(() => { - // Initialize only on the client to avoid SSR/module-eval side-effects. - void initParticlesEngine(async engine => { - await loadFull(engine); - }) - .then(() => setInitialized(true)) - .catch(e => console.error("Failed to initialize particles engine:", e)); - }); + const particlesLoaded = (container?: Container) => { + console.log("Particles loaded", container); + }; return ( - - - +
+
+ {configKeys.map(key => ( + switchConfig(key)}> + {key} + + ))} +
+ + +
); }; diff --git a/demo/solid/src/index.css b/demo/solid/src/index.css index ec2585e8c0b..01fb77be15d 100644 --- a/demo/solid/src/index.css +++ b/demo/solid/src/index.css @@ -5,9 +5,58 @@ body { sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + color: #fff; + background: #1a1a2e; } code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } + +.controls { + position: fixed; + top: 1rem; + left: 50%; + transform: translateX(-50%); + z-index: 10; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + justify-content: center; + max-width: 90vw; +} + +.pill { + background: rgba(255, 255, 255, 0.15); + backdrop-filter: blur(8px); + border: 1px solid rgba(255, 255, 255, 0.25); + color: #fff; + padding: 0.4rem 0.9rem; + border-radius: 999px; + font-size: 0.8rem; + cursor: pointer; + user-select: none; + transition: background 0.2s, transform 0.15s; +} + +.pill:hover { + background: rgba(255, 255, 255, 0.3); + transform: scale(1.05); +} + +main { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +.footer { + position: fixed; + bottom: 1rem; + left: 50%; + transform: translateX(-50%); + font-size: 0.75rem; + opacity: 0.6; + color: #fff; +} diff --git a/demo/stencil/CHANGELOG.md b/demo/stencil/CHANGELOG.md index 03d18d3b389..44c108569c8 100644 --- a/demo/stencil/CHANGELOG.md +++ b/demo/stencil/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed stencil wrapper ([4096a4a](https://github.com/tsparticles/tsparticles/commit/4096a4aafa5f5bdc53865c7df93f786d07d96957)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/demo/stencil/LICENSE b/demo/stencil/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/stencil/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/stencil/README.md b/demo/stencil/README.md new file mode 100644 index 00000000000..52347b6e800 --- /dev/null +++ b/demo/stencil/README.md @@ -0,0 +1,33 @@ +# Stencil Demo + +Stencil demo for @tsparticles/stencil. + +## Quick checklist + +1. Install dependencies from the repository root +2. Build workspace packages +3. Start the demo server in this folder + +## Usage + +From the repository root: + +```bash +pnpm i +pnpm run build +cd demo/stencil +pnpm start +``` + +Then open the local URL shown by the dev server. + +## Common pitfalls + +- Starting the demo before building packages may load stale or missing bundles +- Running commands from a different folder can pick the wrong workspace context +- Mixing old browser cache with new bundle output can show outdated behavior + +## Related docs + +- Main docs: +- Repository README: diff --git a/demo/stencil/package.json b/demo/stencil/package.json index b88414075cd..9a4ccf6ef4e 100644 --- a/demo/stencil/package.json +++ b/demo/stencil/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/stencil-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "description": "Stencil demo for @tsparticles/stencil", "repository": { @@ -14,13 +14,14 @@ "build:ci": "stencil build" }, "dependencies": { - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/slim": "workspace:^", - "@tsparticles/stencil": "workspace:^" + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/plugin-themes": "workspace:*", + "@tsparticles/slim": "workspace:*", + "@tsparticles/stencil": "workspace:*" }, "devDependencies": { - "@stencil/core": "^4.43.4", + "@stencil/core": "^4.43.5", "typescript": "^6.0.3" } } diff --git a/demo/stencil/src/components/app-root/AppRoot.tsx b/demo/stencil/src/components/app-root/AppRoot.tsx index f411e9de003..88671bd26b5 100644 --- a/demo/stencil/src/components/app-root/AppRoot.tsx +++ b/demo/stencil/src/components/app-root/AppRoot.tsx @@ -1,7 +1,6 @@ import { Component, type JSX, State, h } from "@stencil/core"; import type { ISourceOptions } from "@tsparticles/engine"; import { defineCustomElements } from "@tsparticles/stencil/loader"; -import { loadSlim } from "@tsparticles/slim"; @Component({ tag: "app-root", @@ -89,9 +88,47 @@ export class AppRoot { }, }, detectRetina: true, + themes: [ + { + name: "dark", + default: { + value: true, + auto: false, + }, + }, + { + name: "light", + default: { + value: false, + auto: false, + }, + background: { + color: { + value: "#f8fafc", + }, + }, + particles: { + paint: { + color: { + value: "#0f172a", + }, + }, + }, + }, + ], }; @State() private engineReady = false; @State() private initError?: string; + @State() private particlesLoaded = false; + @State() private darkTheme = true; + + private onParticlesLoaded = (): void => { + this.particlesLoaded = true; + }; + + private toggleTheme = (): void => { + this.darkTheme = !this.darkTheme; + }; componentWillLoad(): void { if (!AppRoot.elementsDefined) { @@ -112,10 +149,16 @@ export class AppRoot { { try { + const { loadSlim } = await import("@tsparticles/slim"); + const { loadThemesPlugin } = await import("@tsparticles/plugin-themes"); + await loadSlim(engine); + await loadThemesPlugin(engine); } catch (error: unknown) { const message = error instanceof Error ? error.message : "Unknown initialization error"; @@ -125,6 +168,10 @@ export class AppRoot { }} > ) : null} + +

Particles loaded: {this.particlesLoaded ? "yes" : "no"}

); } diff --git a/demo/svelte-kit/CHANGELOG.md b/demo/svelte-kit/CHANGELOG.md index cc900f6c909..9c12b544f21 100644 --- a/demo/svelte-kit/CHANGELOG.md +++ b/demo/svelte-kit/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + + +### Bug Fixes + +* fixed svelte wrapper ([9667e21](https://github.com/tsparticles/tsparticles/commit/9667e214a02c933dbf0778999fb878b78aa0efd7)) + + + + + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/svelte-kit-demo diff --git a/demo/svelte-kit/LICENSE b/demo/svelte-kit/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/svelte-kit/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/svelte-kit/package.json b/demo/svelte-kit/package.json index 28dd4bba21f..eb7653f65b0 100644 --- a/demo/svelte-kit/package.json +++ b/demo/svelte-kit/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/svelte-kit-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -17,28 +17,27 @@ "format": "prettier --plugin=\"prettier-plugin-svelte\" --write ." }, "devDependencies": { - "@fontsource/fira-mono": "^5.0.13", - "@sveltejs/adapter-auto": "^3.2.1", - "@sveltejs/kit": "^2.5.10", - "@sveltejs/vite-plugin-svelte": "^3.1.0", - "@tsparticles/engine": "workspace:^", - "@tsparticles/svelte": "workspace:^", - "@types/cookie": "^0.6.0", - "@typescript-eslint/eslint-plugin": "^8.59.1", - "@typescript-eslint/parser": "^8.59.1", - "eslint": "^10.3.0", + "@fontsource/fira-mono": "^5.2.7", + "@sveltejs/adapter-auto": "^7.0.1", + "@sveltejs/kit": "^2.65.2", + "@sveltejs/vite-plugin-svelte": "^7.1.2", + "@tsparticles/engine": "workspace:*", + "@tsparticles/svelte": "workspace:*", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-svelte": "^2.39.0", - "prettier": "^3.2.5", - "prettier-plugin-svelte": "^4.0.1", - "svelte": "^5.55.7", - "svelte-check": "^3.7.1", - "svelte-eslint-parser": "^1.0.0", - "svelte-preprocess": "^5.1.4", - "tslib": "^2.6.2", - "tsparticles": "workspace:^", - "typescript": "^5.4.5", - "vite": "^5.2.11" + "eslint-plugin-svelte": "^3.19.0", + "prettier": "^3.8.4", + "prettier-plugin-svelte": "^4.1.1", + "svelte": "^5.56.3", + "svelte-check": "^4.6.0", + "svelte-eslint-parser": "^1.8.0", + "svelte-preprocess": "^6.0.5", + "tslib": "^2.8.1", + "tsparticles": "workspace:*", + "typescript": "^6.0.3", + "vite": "8.0.5" }, "type": "module" } diff --git a/demo/svelte-kit/src/routes/+page.svelte b/demo/svelte-kit/src/routes/+page.svelte index 3a74e91d160..ad52411f5ec 100644 --- a/demo/svelte-kit/src/routes/+page.svelte +++ b/demo/svelte-kit/src/routes/+page.svelte @@ -2,9 +2,6 @@ import Counter from './Counter.svelte'; import welcome from '$lib/images/svelte-welcome.webp'; import welcome_fallback from '$lib/images/svelte-welcome.png'; - import { particlesInit } from "@tsparticles/svelte"; - import { loadFull } from "tsparticles"; - import { type Engine } from "@tsparticles/engine"; import { browser } from '$app/environment'; let particlesConfig = { @@ -33,14 +30,18 @@ }, }; - void particlesInit(async (engine: Engine) => { - await loadFull(engine); - }); - const ParticlesConstructor = browser ? - import('@tsparticles/svelte').then((module) => module.default) : - new Promise(() => { - }); + import('@tsparticles/svelte').then(async (module) => { + const { initParticlesEngine } = module; + const { loadFull } = await import("tsparticles"); + + await initParticlesEngine(async (engine) => { + await loadFull(engine); + }); + + return module.default; + }) : + new Promise(() => {}); diff --git a/demo/svelte/CHANGELOG.md b/demo/svelte/CHANGELOG.md index 874198eb2f9..b8c8cf4722b 100644 --- a/demo/svelte/CHANGELOG.md +++ b/demo/svelte/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed svelte wrapper ([9667e21](https://github.com/tsparticles/tsparticles/commit/9667e214a02c933dbf0778999fb878b78aa0efd7)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/svelte-demo diff --git a/demo/svelte/LICENSE b/demo/svelte/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/svelte/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/svelte/package.json b/demo/svelte/package.json index adb922cf9e9..785aa9dc7fd 100644 --- a/demo/svelte/package.json +++ b/demo/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/svelte-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "repository": { "type": "git", @@ -15,27 +15,27 @@ "check": "svelte-check --tsconfig ./tsconfig.json" }, "devDependencies": { - "@rollup/plugin-commonjs": "^29.0.2", + "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^11.1.6", - "@tsconfig/svelte": "^5.0.4", - "rollup": "^4.18.0", - "rollup-plugin-css-only": "^4.5.2", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@rollup/plugin-typescript": "^12.3.0", + "@tsconfig/svelte": "^5.0.8", + "rollup": "^4.62.0", + "rollup-plugin-css-only": "^4.5.5", "rollup-plugin-livereload": "^2.0.5", - "rollup-plugin-svelte": "^7.2.0", - "svelte": "^5.55.7", - "svelte-check": "^3.7.1", - "svelte-preprocess": "^5.1.4", - "tslib": "^2.6.2", - "typescript": "~5.4.5" + "rollup-plugin-svelte": "^7.2.3", + "svelte": "^5.56.3", + "svelte-check": "^4.6.0", + "svelte-preprocess": "^6.0.5", + "tslib": "^2.8.1", + "typescript": "~6.0.3" }, "dependencies": { - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/svelte": "workspace:^", - "sirv-cli": "^2.0.2", - "tsparticles": "workspace:^" + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/svelte": "workspace:*", + "sirv-cli": "^3.0.1", + "tsparticles": "workspace:*" } } diff --git a/demo/svelte/src/App.svelte b/demo/svelte/src/App.svelte index 21008dc332d..4c7d336902f 100644 --- a/demo/svelte/src/App.svelte +++ b/demo/svelte/src/App.svelte @@ -1,11 +1,11 @@ @@ -29,6 +50,53 @@ export default class App extends Vue { -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; - margin-top: 60px; + width: 100%; +} + +main { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +.controls { + position: fixed; + top: 1rem; + left: 50%; + transform: translateX(-50%); + z-index: 10; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + justify-content: center; + max-width: 90vw; +} + +.pill { + background: rgba(255, 255, 255, 0.15); + backdrop-filter: blur(8px); + border: 1px solid rgba(255, 255, 255, 0.25); + color: #2c3e50; + padding: 0.4rem 0.9rem; + border-radius: 999px; + font-size: 0.8rem; + cursor: pointer; + user-select: none; + transition: background 0.2s, transform 0.15s; +} + +.pill:hover { + background: rgba(255, 255, 255, 0.3); + transform: scale(1.05); +} + +.footer { + position: fixed; + bottom: 1rem; + left: 50%; + transform: translateX(-50%); + font-size: 0.75rem; + opacity: 0.6; + color: #2c3e50; } diff --git a/demo/vue2/tsconfig.json b/demo/vue2/tsconfig.json index ab9730fc819..5603a137717 100644 --- a/demo/vue2/tsconfig.json +++ b/demo/vue2/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "ignoreDeprecations": "6.0", "target": "es2015", "module": "es2015", "strict": true, diff --git a/demo/vue3/CHANGELOG.md b/demo/vue3/CHANGELOG.md index 73203db620b..7393fdee884 100644 --- a/demo/vue3/CHANGELOG.md +++ b/demo/vue3/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed vue 3 wrapper ([53482f1](https://github.com/tsparticles/tsparticles/commit/53482f141597e1a8082141a3d66a0e8970b449d2)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/vue3-demo diff --git a/demo/vue3/LICENSE b/demo/vue3/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/vue3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/vue3/package.json b/demo/vue3/package.json index 466b2e46d90..142e54040b6 100644 --- a/demo/vue3/package.json +++ b/demo/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/vue3-demo", - "version": "4.1.3", + "version": "4.2.0", "private": true, "type": "module", "repository": { @@ -18,33 +18,33 @@ "lint": "eslint . --fix" }, "dependencies": { - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/vue3": "workspace:^", - "tsparticles": "workspace:^", - "vue": "^3.5.32", - "vue-router": "^5.0.4" + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/vue3": "workspace:*", + "tsparticles": "workspace:*", + "vue": "^3.5.38", + "vue-router": "^5.1.0" }, "devDependencies": { "@eslint/js": "^10.0.1", "@rushstack/eslint-patch": "^1.16.1", "@tsconfig/node18": "^18.2.6", - "@types/node": "^25.6.0", - "@typescript-eslint/parser": "^8.58.1", - "@vitejs/plugin-vue": "^6.0.5", + "@types/node": "^25.9.3", + "@typescript-eslint/parser": "^8.61.1", + "@vitejs/plugin-vue": "^6.0.7", "@vitejs/plugin-vue-jsx": "^5.1.5", "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.7.0", + "@vue/eslint-config-typescript": "^14.8.0", "@vue/tsconfig": "^0.9.1", - "eslint": "^10.2.0", - "eslint-plugin-vue": "^10.8.0", - "globals": "^17.5.0", + "eslint": "^10.5.0", + "eslint-plugin-vue": "^10.9.2", + "globals": "^17.6.0", "minimatch": "^10.2.5", "npm-run-all": "^4.1.5", - "prettier": "^3.8.2", - "typescript": "^6.0.2", - "vite": "^8.0.8", - "vue-eslint-parser": "^10.4.0", - "vue-tsc": "^3.2.6" + "prettier": "^3.8.4", + "typescript": "^6.0.3", + "vite": "^8.0.16", + "vue-eslint-parser": "^10.4.1", + "vue-tsc": "^3.3.5" } } diff --git a/demo/vue3/src/App.vue b/demo/vue3/src/App.vue index a6ceb2b23ef..ae795daef90 100644 --- a/demo/vue3/src/App.vue +++ b/demo/vue3/src/App.vue @@ -1,83 +1,105 @@ diff --git a/demo/webcomponents/CHANGELOG.md b/demo/webcomponents/CHANGELOG.md index 4646641fee2..343f71986ef 100644 --- a/demo/webcomponents/CHANGELOG.md +++ b/demo/webcomponents/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed webcomponents wrapper ([53bef05](https://github.com/tsparticles/tsparticles/commit/53bef05388ea31285e2d9b4c4ad8b86747553f37)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/webcomponents-demo diff --git a/demo/webcomponents/LICENSE b/demo/webcomponents/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/demo/webcomponents/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/webcomponents/app.js b/demo/webcomponents/app.js index eb8501129ec..9e061b17ee3 100644 --- a/demo/webcomponents/app.js +++ b/demo/webcomponents/app.js @@ -29,7 +29,7 @@ app.use("/@tsparticles/configs", express.static(path.join(__dirname, "./public/p // node_modules. This points to the workspace package build output. app.use( "/@tsparticles/webcomponents", - express.static(path.join(__dirname, "./node_modules/@tsparticles/webcomponents/dist")), + express.static(path.join(__dirname, "./node_modules/@tsparticles/webcomponents")), ); app.use( "/webcomponentsjs", diff --git a/demo/webcomponents/package.json b/demo/webcomponents/package.json index af4e4b34df3..8ada34cb7d5 100644 --- a/demo/webcomponents/package.json +++ b/demo/webcomponents/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/webcomponents-demo", "private": true, - "version": "4.1.3", + "version": "4.2.0", "description": "> TODO: description", "author": "Matteo Bruni ", "homepage": "https://particles.js.org", @@ -26,21 +26,21 @@ "build:style": "stylus ./public/stylesheets/main.styl" }, "devDependencies": { - "@fortawesome/fontawesome-free": "^6.4.0", - "@tsparticles/configs": "workspace:^", - "@tsparticles/engine": "workspace:^", - "@tsparticles/webcomponents": "workspace:^", - "@typescript-eslint/eslint-plugin": "^8.59.1", - "@typescript-eslint/parser": "^8.59.1", + "@fortawesome/fontawesome-free": "^7.2.0", + "@tsparticles/configs": "workspace:*", + "@tsparticles/engine": "workspace:*", + "@tsparticles/webcomponents": "workspace:*", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", "@webcomponents/webcomponentsjs": "^2.8.0", - "eslint": "^10.3.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "express": "^4.18.2", - "helmet": "^8.1.0", - "prettier": "^3.0.0", - "pug": "^3.0.2", + "express": "^4.22.2", + "helmet": "^8.2.0", + "prettier": "^3.8.4", + "pug": "^3.0.4", "stylus": "^0.64.0", - "tsparticles": "workspace:^", - "typescript": "^5.0.4" + "tsparticles": "workspace:*", + "typescript": "^6.0.3" } } diff --git a/demo/webcomponents/views/index.pug b/demo/webcomponents/views/index.pug index 6ec157e0b1e..eb86a3d29da 100644 --- a/demo/webcomponents/views/index.pug +++ b/demo/webcomponents/views/index.pug @@ -28,8 +28,8 @@ html(lang="en") // custom-elements ES5 adapter is needed because the wrapper is // transpiled to ES5 and relies on the adapter when run in older // environments or when classes are downleveled. - script(src="https://unpkg.com/@webcomponents/webcomponentsjs@2.6.0/custom-elements-es5-adapter.js") - script(src="https://unpkg.com/@webcomponents/webcomponentsjs@2.6.0/webcomponents-loader.js") + script(src="https://unpkg.com/@webcomponents/webcomponentsjs@2.8.0/custom-elements-es5-adapter.js") + script(src="https://unpkg.com/@webcomponents/webcomponentsjs@2.8.0/webcomponents-loader.js") // Import the webcomponents module and bootstrap the demo from an // external script. The heavy inline debug UI was moved into a diff --git a/demo/wordpress/README.md b/demo/wordpress/README.md deleted file mode 100644 index da51f4895e1..00000000000 --- a/demo/wordpress/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# WordPress Demo Notes - -This repository does not include a runnable `demo/wordpress` application like the other framework demos. - -The WordPress wrapper is distributed as a WordPress plugin (`@tsparticles/wordpress`) and must run inside a WordPress installation. - -## Why there is no standalone demo - -- The wrapper depends on the WordPress block editor/runtime. -- It cannot be executed as a plain Vite/React/vanilla app from this monorepo. - -## How to test it locally - -From the repository root: - -```bash -pnpm i -pnpm run build -pnpm --filter @tsparticles/wordpress run build -``` - -Then load the plugin in a local WordPress instance from: - -- `wrappers/wordpress/` - -Useful wrapper files: - -- Plugin entry: `wrappers/wordpress/wordpress-particles.php` -- WordPress readme: `wrappers/wordpress/readme.txt` - -## Related docs - -- tsParticles docs: -- Wrapper package: `wrappers/wordpress/package.json` diff --git a/effects/bubble/CHANGELOG.md b/effects/bubble/CHANGELOG.md index 4738d31a95d..194d0bdb3c2 100644 --- a/effects/bubble/CHANGELOG.md +++ b/effects/bubble/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/effect-bubble diff --git a/effects/bubble/package.dist.json b/effects/bubble/package.dist.json index bae98ff39db..1c9b5bb2904 100644 --- a/effects/bubble/package.dist.json +++ b/effects/bubble/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/effect-bubble", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bubble effect", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/effects/bubble/package.json b/effects/bubble/package.json index dfd129c5df0..1c960150be8 100644 --- a/effects/bubble/package.json +++ b/effects/bubble/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/effect-bubble", - "version": "4.1.3", - "description": "tsParticles bubble effect", + "version": "4.2.0", + "description": "tsParticles effect for applying a bubbly, rounded visual effect to particle rendering", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-effect" + "typescript", + "javascript", + "tsparticles-effect", + "bubble" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/effects/bubble/src/BubbleDrawer.ts b/effects/bubble/src/BubbleDrawer.ts index e345bffc2bf..9db7b490653 100644 --- a/effects/bubble/src/BubbleDrawer.ts +++ b/effects/bubble/src/BubbleDrawer.ts @@ -6,7 +6,7 @@ const bubbleFactor = 3; export class BubbleDrawer implements IEffectDrawer { /** * Draws the bubble highlight after particle rendering - * @param data + * @param data - The data to handle */ drawAfter(data: IShapeDrawData): void { const { context, radius } = data, diff --git a/effects/bubble/src/index.lazy.ts b/effects/bubble/src/index.lazy.ts index 27dab0a45eb..8fddf5f9ece 100644 --- a/effects/bubble/src/index.lazy.ts +++ b/effects/bubble/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBubbleEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/bubble/src/index.ts b/effects/bubble/src/index.ts index f58d82dcd42..92ca199288b 100644 --- a/effects/bubble/src/index.ts +++ b/effects/bubble/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBubbleEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/filter/CHANGELOG.md b/effects/filter/CHANGELOG.md index 8dfdbd266d5..f8b94ebdb60 100644 --- a/effects/filter/CHANGELOG.md +++ b/effects/filter/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/effect-filter diff --git a/effects/filter/package.dist.json b/effects/filter/package.dist.json index d61a1312b1f..899f658b0eb 100644 --- a/effects/filter/package.dist.json +++ b/effects/filter/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/effect-filter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles filter effect", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/effects/filter/package.json b/effects/filter/package.json index 24099f923df..df43d71d1d1 100644 --- a/effects/filter/package.json +++ b/effects/filter/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/effect-filter", - "version": "4.1.3", - "description": "tsParticles filter effect", + "version": "4.2.0", + "description": "tsParticles effect for applying CSS filter effects (blur, grayscale, sepia, etc.) to particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-effect" + "typescript", + "javascript", + "tsparticles-effect", + "filter" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/effects/filter/src/FilterDrawer.ts b/effects/filter/src/FilterDrawer.ts index fc923e9bf52..3c30330136a 100644 --- a/effects/filter/src/FilterDrawer.ts +++ b/effects/filter/src/FilterDrawer.ts @@ -5,7 +5,7 @@ import type { FilterParticle } from "./FilterParticle.js"; export class FilterDrawer implements IEffectDrawer { /** * Restores the canvas context after filter rendering - * @param data + * @param data - The data to handle */ drawAfter(data: IShapeDrawData): void { const { context } = data; @@ -15,7 +15,7 @@ export class FilterDrawer implements IEffectDrawer { /** * Applies CSS filters before particle rendering - * @param data + * @param data - The data to handle */ drawBefore(data: IShapeDrawData): void { const { context, particle } = data; @@ -52,8 +52,8 @@ export class FilterDrawer implements IEffectDrawer { /** * Initializes filter-related particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: FilterParticle): void { const effectData = particle.effectData; diff --git a/effects/filter/src/index.lazy.ts b/effects/filter/src/index.lazy.ts index 6071d90c0ee..4fa6ff984ef 100644 --- a/effects/filter/src/index.lazy.ts +++ b/effects/filter/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFilterEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/filter/src/index.ts b/effects/filter/src/index.ts index 461f4c43230..9596aa293f5 100644 --- a/effects/filter/src/index.ts +++ b/effects/filter/src/index.ts @@ -4,7 +4,7 @@ import { FilterDrawer } from "./FilterDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFilterEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/particles/CHANGELOG.md b/effects/particles/CHANGELOG.md index 8714dd996ec..46cafdf6375 100644 --- a/effects/particles/CHANGELOG.md +++ b/effects/particles/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/effect-particles diff --git a/effects/particles/package.dist.json b/effects/particles/package.dist.json index d524da483f8..21d2c253aa2 100644 --- a/effects/particles/package.dist.json +++ b/effects/particles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/effect-particles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles effect", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/effects/particles/package.json b/effects/particles/package.json index 631053dbcc7..e65c410637f 100644 --- a/effects/particles/package.json +++ b/effects/particles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/effect-particles", - "version": "4.1.3", - "description": "tsParticles particles effect", + "version": "4.2.0", + "description": "tsParticles effect for rendering particles as miniature particle clusters, creating fractal-like patterns", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-effect" + "typescript", + "javascript", + "tsparticles-effect", + "particles" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/effects/particles/src/ParticlesDrawer.ts b/effects/particles/src/ParticlesDrawer.ts index bf8c133e06e..fa2991cc907 100644 --- a/effects/particles/src/ParticlesDrawer.ts +++ b/effects/particles/src/ParticlesDrawer.ts @@ -63,7 +63,7 @@ export class ParticlesDrawer implements IEffectDrawer { /** * ParticlesDrawer constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -71,7 +71,7 @@ export class ParticlesDrawer implements IEffectDrawer { /** * Spawns new particles after rendering - * @param data + * @param data - The data to handle */ drawAfter(data: IShapeDrawData): void { const { particle } = data, @@ -101,8 +101,8 @@ export class ParticlesDrawer implements IEffectDrawer { /** * Initializes the particle spawner properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: ParticlesParticle): void { const effectData = particle.effectData, diff --git a/effects/particles/src/index.lazy.ts b/effects/particles/src/index.lazy.ts index 0728b23e052..9bb2a2222c1 100644 --- a/effects/particles/src/index.lazy.ts +++ b/effects/particles/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/particles/src/index.ts b/effects/particles/src/index.ts index 81f6486b195..f8fb5a81917 100644 --- a/effects/particles/src/index.ts +++ b/effects/particles/src/index.ts @@ -4,7 +4,7 @@ import { ParticlesDrawer } from "./ParticlesDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/shadow/CHANGELOG.md b/effects/shadow/CHANGELOG.md index a73c0e6342c..6fdb6302704 100644 --- a/effects/shadow/CHANGELOG.md +++ b/effects/shadow/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/effect-shadow diff --git a/effects/shadow/package.dist.json b/effects/shadow/package.dist.json index a6fda70ced6..4c82a7a496e 100644 --- a/effects/shadow/package.dist.json +++ b/effects/shadow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/effect-shadow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles shadow effect", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/effects/shadow/package.json b/effects/shadow/package.json index bb8f5a49e27..2166b1d2f71 100644 --- a/effects/shadow/package.json +++ b/effects/shadow/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/effect-shadow", - "version": "4.1.3", - "description": "tsParticles shadow effect", + "version": "4.2.0", + "description": "tsParticles effect for adding drop shadows and depth effects to particle rendering", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-effect" + "typescript", + "javascript", + "tsparticles-effect", + "shadow" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/effects/shadow/src/ShadowDrawer.ts b/effects/shadow/src/ShadowDrawer.ts index af056e0af18..69d6ae3430a 100644 --- a/effects/shadow/src/ShadowDrawer.ts +++ b/effects/shadow/src/ShadowDrawer.ts @@ -52,8 +52,8 @@ export class ShadowDrawer implements IEffectDrawer { /** * ShadowDrawer constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#pluginManager = pluginManager; @@ -62,7 +62,7 @@ export class ShadowDrawer implements IEffectDrawer { /** * Restores the canvas context after shadow rendering - * @param data + * @param data - The data to handle */ drawAfter(data: IShapeDrawData): void { const { context } = data; @@ -72,7 +72,7 @@ export class ShadowDrawer implements IEffectDrawer { /** * Applies shadow styles before particle rendering - * @param data + * @param data - The data to handle */ drawBefore(data: IShapeDrawData): void { const { particle, context } = data, @@ -95,8 +95,8 @@ export class ShadowDrawer implements IEffectDrawer { /** * Initializes shadow-related particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: ShadowParticle): void { const effectData = particle.effectData, diff --git a/effects/shadow/src/index.lazy.ts b/effects/shadow/src/index.lazy.ts index d4c02c93d49..b6802ce6dcf 100644 --- a/effects/shadow/src/index.lazy.ts +++ b/effects/shadow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShadowEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/shadow/src/index.ts b/effects/shadow/src/index.ts index 2bd6e04b58d..e71acef8f24 100644 --- a/effects/shadow/src/index.ts +++ b/effects/shadow/src/index.ts @@ -4,7 +4,7 @@ import { ShadowDrawer } from "./ShadowDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShadowEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/trail/CHANGELOG.md b/effects/trail/CHANGELOG.md index ae0e16356ea..ab6a97f44e3 100644 --- a/effects/trail/CHANGELOG.md +++ b/effects/trail/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/effect-trail diff --git a/effects/trail/package.dist.json b/effects/trail/package.dist.json index 62c550a5f01..e800806c155 100644 --- a/effects/trail/package.dist.json +++ b/effects/trail/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/effect-trail", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles trail effect", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/effects/trail/package.json b/effects/trail/package.json index 7d5a56cb3e9..37a05013c3b 100644 --- a/effects/trail/package.json +++ b/effects/trail/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/effect-trail", - "version": "4.1.3", - "description": "tsParticles trail effect", + "version": "4.2.0", + "description": "tsParticles effect for creating visual motion trails that follow behind moving particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-effect" + "typescript", + "javascript", + "tsparticles-effect", + "trail" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/effects/trail/src/TrailDrawer.ts b/effects/trail/src/TrailDrawer.ts index 6202c7b96f2..c3366e55a04 100644 --- a/effects/trail/src/TrailDrawer.ts +++ b/effects/trail/src/TrailDrawer.ts @@ -89,7 +89,7 @@ export class TrailDrawer implements IEffectDrawer { /** * TrailDrawer constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -97,7 +97,7 @@ export class TrailDrawer implements IEffectDrawer { /** * Draws the particle trail after particle rendering - * @param data + * @param data - The data to handle */ drawAfter(data: IShapeDrawData): void { const { context, drawPosition, drawRadius, drawScale, particle, transformData } = data, @@ -248,8 +248,8 @@ export class TrailDrawer implements IEffectDrawer { /** * Initializes trail-related particle properties - * @param container - * @param particle + * @param container - The container to handle + * @param particle - The particle to process */ particleInit(container: Container, particle: TrailParticle): void { particle.trail = []; diff --git a/effects/trail/src/index.lazy.ts b/effects/trail/src/index.lazy.ts index b0010f88ecc..b0eead8481a 100644 --- a/effects/trail/src/index.lazy.ts +++ b/effects/trail/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTrailEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/effects/trail/src/index.ts b/effects/trail/src/index.ts index 6dd7236db77..eb0febc70a1 100644 --- a/effects/trail/src/index.ts +++ b/effects/trail/src/index.ts @@ -4,7 +4,7 @@ import { TrailDrawer } from "./TrailDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTrailEffect(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/engine/CHANGELOG.md b/engine/CHANGELOG.md index f9306458470..352ade3daf7 100644 --- a/engine/CHANGELOG.md +++ b/engine/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed hdr setup, and improved it too ([e2720fc](https://github.com/tsparticles/tsparticles/commit/e2720fcd20842aaaafd9849ae9ee8e9413409577)) +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/engine/package.dist.json b/engine/package.dist.json index 6483ed55d81..80044e0adf9 100644 --- a/engine/package.dist.json +++ b/engine/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/engine", - "version": "4.1.3", + "version": "4.2.0", "description": "Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { diff --git a/engine/package.json b/engine/package.json index 2f8aee784f9..15e0e0994ae 100644 --- a/engine/package.json +++ b/engine/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/engine", - "version": "4.1.3", + "version": "4.2.0", "description": "Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.", "homepage": "https://particles.js.org", "scripts": { @@ -123,6 +123,6 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*" } } diff --git a/engine/src/Core/CanvasManager.ts b/engine/src/Core/CanvasManager.ts index 72d66bac5cd..927c18c84b9 100644 --- a/engine/src/Core/CanvasManager.ts +++ b/engine/src/Core/CanvasManager.ts @@ -45,9 +45,9 @@ const transferredCanvases = new WeakMap(), /** * - * @param canvas - - * @param style - - * @param important - + * @param canvas - The canvas + * @param style - The style + * @param important - The important */ function setStyle(canvas: HTMLCanvasElement, style?: CSSStyleDeclaration, important = false): void { if (!style) { @@ -231,6 +231,7 @@ export class CanvasManager { }); this.initPlugins(); + this.#initContext(); this.render.init(); } @@ -251,7 +252,7 @@ export class CanvasManager { color = rangeColorToRgb(this.#pluginManager, background.color); if (color) { - elementStyle.backgroundColor = getStyleFromRgb(color, container.hdr, background.opacity); + elementStyle.backgroundColor = getStyleFromRgb(color, container.actualOptions.hdr, background.opacity); } else { elementStyle.backgroundColor = ""; } @@ -284,8 +285,7 @@ export class CanvasManager { this.domElement.remove(); } - const container = this.#container, - domCanvas = isHtmlCanvasElement(canvas) ? canvas : undefined; + const domCanvas = isHtmlCanvasElement(canvas) ? canvas : undefined; this.domElement = domCanvas; this.#generated = domCanvas ? domCanvas.dataset[generatedAttribute] === "true" : false; @@ -315,33 +315,6 @@ export class CanvasManager { renderCanvas.height = retinaSize.height = standardSize.height * pxRatio; renderCanvas.width = retinaSize.width = standardSize.width * pxRatio; - - const canSupportHdrQuery = safeMatchMedia("(color-gamut: p3)"); - - this.render.setContextSettings({ - alpha: true, - colorSpace: canSupportHdrQuery?.matches && container.hdr ? "display-p3" : "srgb", - desynchronized: true, - willReadFrequently: false, - }); - this.render.setContext(renderCanvas.getContext("2d", this.render.settings)); - - this.#safeMutationObserver(obs => { - obs.disconnect(); - }); - - container.retina.init(); - this.initBackground(); - - this.#safeMutationObserver(obs => { - const element = this.domElement; - - if (!element || !(element instanceof Node)) { - return; - } - - obs.observe(element, { attributes: true }); - }); } /** @@ -459,13 +432,36 @@ export class CanvasManager { } } - readonly #applyResizePlugins: () => void = () => { + #applyResizePlugins(): void { for (const plugin of this.#resizePlugins) { plugin.resize?.(); } - }; + } - readonly #initStyle: () => void = () => { + #initContext(): void { + const container = this.#container, + canSupportHdr = + container.actualOptions.hdr && + safeMatchMedia("(color-gamut: p3)")?.matches && + safeMatchMedia("(dynamic-range: high)")?.matches; + this.render.setContextSettings({ + alpha: true, + desynchronized: true, + willReadFrequently: false, + ...(canSupportHdr + ? { colorSpace: "display-p3" as const, colorType: "float16" as const } + : { colorSpace: "srgb" as const }), + }); + const renderCanvas = this.renderCanvas; + + if (!renderCanvas) { + return; + } + + this.render.setContext(renderCanvas.getContext("2d", this.render.settings)); + } + + #initStyle(): void { const element = this.domElement, options = this.#container.actualOptions; @@ -492,9 +488,9 @@ export class CanvasManager { element.style.setProperty(key, value, "important"); } - }; + } - readonly #repairStyle: () => void = () => { + #repairStyle(): void { const element = this.domElement; if (!element) { @@ -519,9 +515,9 @@ export class CanvasManager { observer.observe(element, { attributes: true }); }); - }; + } - readonly #resetOriginalStyle: () => void = () => { + #resetOriginalStyle(): void { const element = this.domElement, originalStyle = this.#originalStyle; @@ -530,17 +526,17 @@ export class CanvasManager { } setStyle(element, originalStyle, true); - }; + } - readonly #safeMutationObserver: (callback: (observer: MutationObserver) => void) => void = callback => { + #safeMutationObserver(callback: (observer: MutationObserver) => void): void { if (!this.#mutationObserver) { return; } callback(this.#mutationObserver); - }; + } - readonly #setFullScreenStyle: () => void = () => { + #setFullScreenStyle(): void { const element = this.domElement; if (!element) { @@ -548,5 +544,5 @@ export class CanvasManager { } setStyle(element, getFullScreenStyle(this.#container.actualOptions.fullScreen.zIndex), true); - }; + } } diff --git a/engine/src/Core/Container.ts b/engine/src/Core/Container.ts index 6b81dbfc164..03cd44c26c4 100644 --- a/engine/src/Core/Container.ts +++ b/engine/src/Core/Container.ts @@ -53,9 +53,9 @@ function updateDelta(delta: IDelta, value: number, fpsLimit = defaultFps, smooth } /** - * @param pluginManager - - * @param container - - * @param sourceOptionsArr - + * @param pluginManager - The plugin manager + * @param container - The container to handle + * @param sourceOptionsArr - The sourceOptionsArr * @returns the options loaded */ function loadContainerOptions( @@ -174,7 +174,7 @@ export class Container { /** * This is the core class, create an instance to have a new working particles manager - * @param params - + * @param params - The parameters */ constructor(params: ContainerParams) { const { dispatchCallback, pluginManager, id, onDestroy, sourceOptions } = params; @@ -243,7 +243,7 @@ export class Container { /** * Adds to the container lifetime - * @param value - + * @param value - The value */ addLifeTime(value: number): void { this.#lifeTime += value; @@ -299,8 +299,8 @@ export class Container { /** * Dispatches an event from the container - * @param type - - * @param data - + * @param type - The type + * @param data - The data to handle */ dispatchEvent(type: string, data?: unknown): void { this.#dispatchCallback(type, { @@ -311,7 +311,7 @@ export class Container { /** * Draws a frame - * @param force - + * @param force - The force */ draw(force: boolean): void { if (!guardCheck(this)) { @@ -333,8 +333,8 @@ export class Container { /** * Exports the container canvas to the specified format - * @param type - - * @param options - + * @param type - The type + * @param options - The options to handle * @returns the promise for the export data */ async export(type: string, options: Record = {}): Promise { @@ -483,7 +483,7 @@ export class Container { /** * Starts animations and resume from pause - * @param force - + * @param force - The force */ play(force?: boolean): void { if (!guardCheck(this)) { @@ -532,7 +532,7 @@ export class Container { /** * Resets the container with new options - * @param sourceOptions - + * @param sourceOptions - The sourceOptions * @returns the promise for the reset */ async reset(sourceOptions?: ISourceOptions): Promise { @@ -629,7 +629,7 @@ export class Container { return refresh; } - readonly #nextFrame = (timestamp: DOMHighResTimeStamp): void => { + #nextFrame(timestamp: DOMHighResTimeStamp): void { try { if ( !this.#smooth && @@ -668,5 +668,5 @@ export class Container { } catch (e) { getLogger().error("error in animation loop", e); } - }; + } } diff --git a/engine/src/Core/Engine.ts b/engine/src/Core/Engine.ts index bf694ac3f4d..c3f9aedb5bc 100644 --- a/engine/src/Core/Engine.ts +++ b/engine/src/Core/Engine.ts @@ -42,7 +42,7 @@ interface DataFromUrlParams { } /** - * @param data - + * @param data - The data to handle * @returns the options object from the jsonUrl */ async function getDataFromUrl( diff --git a/engine/src/Core/Interfaces/IColorManager.ts b/engine/src/Core/Interfaces/IColorManager.ts index 950ad9b0ec5..15a5f4f449b 100644 --- a/engine/src/Core/Interfaces/IColorManager.ts +++ b/engine/src/Core/Interfaces/IColorManager.ts @@ -2,15 +2,27 @@ import type { IColor, IRangeColor, IRgb, IRgba } from "./Colors.js"; /** Color manager interface for parsing and converting colors */ export interface IColorManager { - /** Checks if the manager accepts the given input string */ + /** + * Checks if the manager accepts the given input string + * @returns The boolean value + */ accepts(input: string): boolean; - /** Converts a color to RGB */ + /** + * Converts a color to RGB + * @returns The value, or undefined if not available + */ handleColor(color: IColor): IRgb | undefined; - /** Converts a range color to RGB */ + /** + * Converts a range color to RGB + * @returns The value, or undefined if not available + */ handleRangeColor(color: IRangeColor): IRgb | undefined; - /** Parses a string into RGBA */ + /** + * Parses a string into RGBA + * @returns The value, or undefined if not available + */ parseString(input: string): IRgba | undefined; } diff --git a/engine/src/Core/Interfaces/IParticleUpdater.ts b/engine/src/Core/Interfaces/IParticleUpdater.ts index 22cd5f777cd..c47566b5192 100644 --- a/engine/src/Core/Interfaces/IParticleUpdater.ts +++ b/engine/src/Core/Interfaces/IParticleUpdater.ts @@ -40,7 +40,10 @@ export interface IParticleUpdater { /** Initializes the updater for a particle */ init(particle: Particle): void; - /** Checks if the updater is enabled for the given particle */ + /** + * Checks if the updater is enabled for the given particle + * @returns The boolean value + */ isEnabled(particle: Particle): boolean; /** Updates the particle each frame */ diff --git a/engine/src/Core/Interfaces/IPlugin.ts b/engine/src/Core/Interfaces/IPlugin.ts index 23e5ca2e766..1cfc0655455 100644 --- a/engine/src/Core/Interfaces/IPlugin.ts +++ b/engine/src/Core/Interfaces/IPlugin.ts @@ -20,12 +20,18 @@ export interface IPlugin { source?: RecursivePartial, ) => void; - /** Gets the container plugin instance for the given container */ + /** + * Gets the container plugin instance for the given container + * @returns A promise + */ getPlugin(container: Container): Promise; /** Loads the plugin options into the given options object */ loadOptions(container: Container, options: Options, source?: ISourceOptions): void; - /** Checks if this plugin is needed for the given options */ + /** + * Checks if this plugin is needed for the given options + * @returns The boolean value + */ needsPlugin(options?: ISourceOptions): boolean; } diff --git a/engine/src/Core/Particle.ts b/engine/src/Core/Particle.ts index 18f8424d822..f36fe5473e5 100644 --- a/engine/src/Core/Particle.ts +++ b/engine/src/Core/Particle.ts @@ -44,6 +44,7 @@ import type { IParticleRetinaProps } from "./Interfaces/IParticleRetinaProps.js" import type { IParticleRoll } from "./Interfaces/IParticleRoll.js"; import type { IParticleRotateData } from "./Interfaces/IParticleRotateData.js"; import type { IParticleTransformValues } from "../export-types.js"; +import type { IParticleUpdater } from "./Interfaces/IParticleUpdater.js"; import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js"; import type { IShape } from "../Options/Interfaces/Particles/Shape/IShape.js"; import type { IShapeDrawer } from "./Interfaces/IShapeDrawer.js"; @@ -56,7 +57,7 @@ import { ParticleOutType } from "../Enums/Types/ParticleOutType.js"; import type { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js"; import type { PluginManager } from "./Utils/PluginManager.js"; import type { RecursivePartial } from "../Types/RecursivePartial.js"; -import { loadParticlesOptions } from "../Utils/OptionsUtils.js"; +import { loadParticlesOptions } from "../Utils/ParticlesOptionsLoader.js"; /** * @internal @@ -78,17 +79,17 @@ interface FixOutModeParams { */ radius: number; /** - * @param value - + * @param value - The value */ setCb: (value: number) => void; } /** * - * @param effect - - * @param effectOptions - - * @param id - - * @param reduceDuplicates - + * @param effect - The effect + * @param effectOptions - The effectOptions + * @param id - The id + * @param reduceDuplicates - The reduceDuplicates * @returns the effect data */ function loadEffectData( @@ -109,10 +110,10 @@ function loadEffectData( /** * - * @param shape - - * @param shapeOptions - - * @param id - - * @param reduceDuplicates - + * @param shape - The shape + * @param shapeOptions - The shapeOptions + * @param id - The id + * @param reduceDuplicates - The reduceDuplicates * @returns the shape data */ function loadShapeData( @@ -134,7 +135,7 @@ function loadShapeData( /** * fixes out mode, calling the given callback if needed * @internal - * @param data - + * @param data - The data to handle */ function fixOutMode(data: FixOutModeParams): void { if (!isInArray(data.outMode, data.checkModes)) { @@ -150,6 +151,223 @@ function fixOutMode(data: FixOutModeParams): void { } } +/** + * + * @param angle - The angle + * @param modulus - The modulus + * @returns - + */ +function normalizeAngle(angle: number, modulus: number): number { + const normalized = angle % modulus; + + return normalized < defaultAngle ? normalized + modulus : normalized; +} + +/** + * + * @param particle - The particle to process + * @param id - The id + * @param group - The group + */ +function initParticleState(particle: Particle, id: number, group?: string): void { + particle.id = id; + particle.group = group; + particle.justWarped = false; + particle.effectClose = true; + particle.shapeClose = true; + particle.pathRotation = false; + particle.lastPathTime = 0; + particle.destroyed = false; + particle.unbreakable = false; + particle.isRotating = false; + particle.rotation = 0; + particle.misplaced = false; + particle.retina = { + maxDistance: {}, + maxSpeed: 0, + moveDrift: 0, + moveSpeed: 0, + sizeAnimationSpeed: 0, + }; + particle.size = { + value: 1, + max: 1, + min: 1, + enable: false, + }; + particle.outType = ParticleOutType.normal; + particle.ignoresResizeRatio = true; +} + +/** + * + * @param particle - The particle to process + * @param container - The container to handle + * @param pluginManager - The plugin manager + * @param overrideOptions - The overrideOptions + * @returns the resolved particles options + */ +function resolveParticleOptions( + particle: Particle, + container: Container, + pluginManager: PluginManager, + overrideOptions?: RecursivePartial, +): ParticlesOptions { + const mainOptions = container.actualOptions, + particlesOptions = loadParticlesOptions(pluginManager, container, mainOptions.particles), + reduceDuplicates = particlesOptions.reduceDuplicates; + + particle.effect = itemFromSingleOrMultiple(particlesOptions.effect.type, particle.id, reduceDuplicates); + particle.shape = itemFromSingleOrMultiple(particlesOptions.shape.type, particle.id, reduceDuplicates); + + const effectOptions = particlesOptions.effect, + shapeOptions = particlesOptions.shape; + + if (overrideOptions) { + if (overrideOptions.effect) { + const overrideEffectType = overrideOptions.effect.type; + + if (overrideEffectType && overrideEffectType !== particle.effect) { + const effect = itemFromSingleOrMultiple(overrideEffectType, particle.id, reduceDuplicates); + + if (effect) { + particle.effect = effect; + } + } + + effectOptions.load(overrideOptions.effect); + } + + if (overrideOptions.shape) { + const overrideShapeType = overrideOptions.shape.type; + + if (overrideShapeType && overrideShapeType !== particle.shape) { + const shape = itemFromSingleOrMultiple(overrideShapeType, particle.id, reduceDuplicates); + + if (shape) { + particle.shape = shape; + } + } + + shapeOptions.load(overrideOptions.shape); + } + } + + if (particle.effect === randomColorValue) { + const availableEffects = [...container.effectDrawers.keys()]; + + particle.effect = availableEffects[Math.floor(getRandom() * availableEffects.length)]; + } + + if (particle.shape === randomColorValue) { + const availableShapes = [...container.shapeDrawers.keys()]; + + particle.shape = availableShapes[Math.floor(getRandom() * availableShapes.length)]; + } + + particle.effectData = particle.effect + ? loadEffectData(particle.effect, effectOptions, particle.id, reduceDuplicates) + : undefined; + particle.shapeData = particle.shape + ? loadShapeData(particle.shape, shapeOptions, particle.id, reduceDuplicates) + : undefined; + + particlesOptions.load(overrideOptions); + + const effectData = particle.effectData, + shapeData = particle.shapeData; + + if (effectData) { + particlesOptions.load(effectData.particles); + } + + if (shapeData) { + particlesOptions.load(shapeData.particles); + } + + particle.effectClose = effectData?.close ?? particlesOptions.effect.close; + particle.shapeClose = shapeData?.close ?? particlesOptions.shape.close; + + return particlesOptions; +} + +/** + * + * @param particle - The particle to process + * @param container - The container to handle + */ +function initParticleDrawers(particle: Particle, container: Container): void { + let effectDrawer: IEffectDrawer | undefined, shapeDrawer: IShapeDrawer | undefined; + + if (particle.effect) { + effectDrawer = container.effectDrawers.get(particle.effect); + } + + if (effectDrawer?.loadEffect) { + effectDrawer.loadEffect(particle); + } + + if (particle.shape) { + shapeDrawer = container.shapeDrawers.get(particle.shape); + } + + if (shapeDrawer?.loadShape) { + shapeDrawer.loadShape(particle); + } + + const sideCountFunc = shapeDrawer?.getSidesCount; + + if (sideCountFunc) { + particle.sides = sideCountFunc(particle); + } +} + +/** + * + * @param updaters - The updaters + * @param particle - The particle to process + */ +function runUpdaterPreInit(updaters: IParticleUpdater[], particle: Particle): void { + for (const updater of updaters) { + updater.preInit?.(particle); + } +} + +/** + * + * @param updaters - The updaters + * @param particle - The particle to process + */ +function runUpdaterInit(updaters: IParticleUpdater[], particle: Particle): void { + for (const updater of updaters) { + updater.init(particle); + } +} + +/** + * + * @param container - The container to handle + * @param particle - The particle to process + */ +function runDrawerInit(container: Container, particle: Particle): void { + const shapeDrawer = particle.shape ? container.shapeDrawers.get(particle.shape) : undefined, + effectDrawer = particle.effect ? container.effectDrawers.get(particle.effect) : undefined; + + effectDrawer?.particleInit?.(container, particle); + shapeDrawer?.particleInit?.(container, particle); +} + +/** + * + * @param container - The container to handle + * @param particle - The particle to process + */ +function runParticleCreatedPlugins(container: Container, particle: Particle): void { + for (const plugin of container.particleCreatedPlugins) { + plugin.particleCreated?.(particle); + } +} + /** * The single particle object */ @@ -387,7 +605,7 @@ export class Particle { /** * Destroys the particle - * @param override - + * @param override - The override */ destroy(override?: boolean): void { if (this.unbreakable || this.destroyed) { @@ -418,7 +636,7 @@ export class Particle { /** * Draws the particle - * @param delta - + * @param delta - The delta time */ draw(delta: IDelta): void { const container = this.#container, @@ -514,7 +732,7 @@ export class Particle { /** * Gets the particle transform data - * @param externalTransform - + * @param externalTransform - The externalTransform * @returns get transform data */ getTransformData(externalTransform: Partial): IParticleTransformValues { @@ -535,10 +753,10 @@ export class Particle { /** * Initializes the particle with the given parameters - * @param id - - * @param position - - * @param overrideOptions - - * @param group - + * @param id - The id + * @param position - The position + * @param overrideOptions - The overrideOptions + * @param group - The group */ init( id: number, @@ -548,113 +766,13 @@ export class Particle { ): void { const container = this.#container; - this.id = id; - this.group = group; - this.justWarped = false; - this.effectClose = true; - this.shapeClose = true; - this.pathRotation = false; - this.lastPathTime = 0; - this.destroyed = false; - this.unbreakable = false; - this.isRotating = false; - this.rotation = 0; - this.misplaced = false; - this.retina = { - maxDistance: {}, - maxSpeed: 0, - moveDrift: 0, - moveSpeed: 0, - sizeAnimationSpeed: 0, - }; - this.size = { - value: 1, - max: 1, - min: 1, - enable: false, - }; - this.outType = ParticleOutType.normal; - this.ignoresResizeRatio = true; - - const mainOptions = container.actualOptions, - particlesOptions = loadParticlesOptions(this.#pluginManager, container, mainOptions.particles), - reduceDuplicates = particlesOptions.reduceDuplicates, - effectType = particlesOptions.effect.type, - shapeType = particlesOptions.shape.type; - - this.effect = itemFromSingleOrMultiple(effectType, this.id, reduceDuplicates); - this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates); - - const effectOptions = particlesOptions.effect, - shapeOptions = particlesOptions.shape; - - if (overrideOptions) { - if (overrideOptions.effect) { - const overrideEffectType = overrideOptions.effect.type; - - if (overrideEffectType && overrideEffectType !== this.effect) { - const effect = itemFromSingleOrMultiple(overrideEffectType, this.id, reduceDuplicates); - - if (effect) { - this.effect = effect; - } - } - - effectOptions.load(overrideOptions.effect); - } - - if (overrideOptions.shape) { - const overrideShapeType = overrideOptions.shape.type; - - if (overrideShapeType && overrideShapeType !== this.shape) { - const shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates); - - if (shape) { - this.shape = shape; - } - } - - shapeOptions.load(overrideOptions.shape); - } - } - - if (this.effect === randomColorValue) { - const availableEffects = [...this.#container.effectDrawers.keys()]; - - this.effect = availableEffects[Math.floor(getRandom() * availableEffects.length)]; - } - - if (this.shape === randomColorValue) { - const availableShapes = [...this.#container.shapeDrawers.keys()]; - - this.shape = availableShapes[Math.floor(getRandom() * availableShapes.length)]; - } - - this.effectData = this.effect ? loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates) : undefined; - this.shapeData = this.shape ? loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates) : undefined; - - particlesOptions.load(overrideOptions); - - const effectData = this.effectData, - shapeData = this.shapeData; - - if (effectData) { - particlesOptions.load(effectData.particles); - } - - if (shapeData) { - particlesOptions.load(shapeData.particles); - } + initParticleState(this, id, group); - this.effectClose = effectData?.close ?? particlesOptions.effect.close; - this.shapeClose = shapeData?.close ?? particlesOptions.shape.close; - this.options = particlesOptions; + this.options = resolveParticleOptions(this, container, this.#pluginManager, overrideOptions); container.retina.initParticle(this); - for (const updater of container.particleUpdaters) { - updater.preInit?.(this); - } + runUpdaterPreInit(container.particleUpdaters, this); /* position */ this.bubble = { @@ -675,42 +793,15 @@ export class Particle { this.zIndexFactor = this.position.z / container.zLayers; this.sides = 24; - let effectDrawer: IEffectDrawer | undefined, shapeDrawer: IShapeDrawer | undefined; - - if (this.effect) { - effectDrawer = container.effectDrawers.get(this.effect); - } - - if (effectDrawer?.loadEffect) { - effectDrawer.loadEffect(this); - } - - if (this.shape) { - shapeDrawer = container.shapeDrawers.get(this.shape); - } - - if (shapeDrawer?.loadShape) { - shapeDrawer.loadShape(this); - } - - const sideCountFunc = shapeDrawer?.getSidesCount; - - if (sideCountFunc) { - this.sides = sideCountFunc(this); - } + initParticleDrawers(this, container); this.spawning = false; - for (const updater of container.particleUpdaters) { - updater.init(this); - } + runUpdaterInit(container.particleUpdaters, this); - effectDrawer?.particleInit?.(container, this); - shapeDrawer?.particleInit?.(container, this); + runDrawerInit(container, this); - for (const plugin of container.particleCreatedPlugins) { - plugin.particleCreated?.(this); - } + runParticleCreatedPlugins(container, this); } /** @@ -744,22 +835,19 @@ export class Particle { const angle = this.roll.angle; if (this.roll.horizontal && this.roll.vertical) { - const normalizedAngle = angle % doublePI, - adjustedAngle = normalizedAngle < defaultAngle ? normalizedAngle + doublePI : normalizedAngle; + const adjustedAngle = normalizeAngle(angle, doublePI); return adjustedAngle >= Math.PI * half && adjustedAngle < Math.PI * triple * half; } if (this.roll.horizontal) { - const normalizedAngle = (angle + Math.PI * half) % (Math.PI * double), - adjustedAngle = normalizedAngle < defaultAngle ? normalizedAngle + Math.PI * double : normalizedAngle; + const adjustedAngle = normalizeAngle(angle + Math.PI * half, doublePI); return adjustedAngle >= Math.PI && adjustedAngle < Math.PI * double; } if (this.roll.vertical) { - const normalizedAngle = angle % (Math.PI * double), - adjustedAngle = normalizedAngle < defaultAngle ? normalizedAngle + Math.PI * double : normalizedAngle; + const adjustedAngle = normalizeAngle(angle, doublePI); return adjustedAngle >= Math.PI && adjustedAngle < Math.PI * double; } @@ -784,10 +872,7 @@ export class Particle { } } - readonly #calcPosition: (position: ICoordinates | undefined, zIndex: number) => Vector3d | undefined = ( - position, - zIndex, - ) => { + #calcPosition(position: ICoordinates | undefined, zIndex: number): Vector3d | undefined { let tryCount = defaultRetryCount, posVec = position ? Vector3d.create(position.x, position.y, zIndex) : undefined; @@ -795,11 +880,9 @@ export class Particle { plugins = container.particlePositionPlugins, outModes = this.options.move.outModes, radius = this.getRadius(), - canvasSize = container.canvas.size, - abortController = new AbortController(), - { signal } = abortController; + canvasSize = container.canvas.size; - while (!signal.aborted) { + for (;;) { for (const plugin of plugins) { const pluginPos = plugin.particlePosition?.(posVec, this); @@ -838,11 +921,9 @@ export class Particle { posVec = undefined; } + } - return posVec; - }; - - readonly #calculateVelocity: () => Vector = () => { + #calculateVelocity(): Vector { const moveOptions = this.options.move, baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(); @@ -867,9 +948,9 @@ export class Particle { } return res; - }; + } - readonly #fixHorizontal = (pos: ICoordinates, radius: number, outMode: OutMode | keyof typeof OutMode): void => { + #fixHorizontal(pos: ICoordinates, radius: number, outMode: OutMode | keyof typeof OutMode): void { fixOutMode({ outMode, checkModes: [OutMode.bounce], @@ -878,9 +959,9 @@ export class Particle { setCb: (value: number) => (pos.x += value), radius, }); - }; + } - readonly #fixVertical = (pos: ICoordinates, radius: number, outMode: OutMode | keyof typeof OutMode): void => { + #fixVertical(pos: ICoordinates, radius: number, outMode: OutMode | keyof typeof OutMode): void { fixOutMode({ outMode, checkModes: [OutMode.bounce], @@ -889,12 +970,12 @@ export class Particle { setCb: (value: number) => (pos.y += value), radius, }); - }; + } - readonly #getDefaultInsideCanvasResult = ( + #getDefaultInsideCanvasResult( direction?: OutModeDirection, outMode?: OutMode | keyof typeof OutMode, - ): IParticleCanvasBoundsResult => { + ): IParticleCanvasBoundsResult { const radius = this.getRadius(), canvasSize = this.#container.canvas.size, position = this.position, @@ -936,12 +1017,12 @@ export class Particle { position.x <= canvasSize.width + radius, reason: "default", }; - }; + } - readonly #getInsideCanvasCallbackData = ( + #getInsideCanvasCallbackData( direction?: OutModeDirection, outMode?: OutMode | keyof typeof OutMode, - ): IParticleCanvasBoundsData => { + ): IParticleCanvasBoundsData { return { canvasSize: this.#container.canvas.size, direction, @@ -949,12 +1030,12 @@ export class Particle { particle: this, radius: this.getRadius(), }; - }; + } - readonly #getInsideCanvasResult = (data: { + #getInsideCanvasResult(data: { direction?: OutModeDirection; outMode?: OutMode | keyof typeof OutMode; - }): IParticleCanvasBoundsResult => { + }): IParticleCanvasBoundsResult { const defaultResult = this.#getDefaultInsideCanvasResult(data.direction, data.outMode), container = this.#container, shapeDrawer = this.shape ? container.shapeDrawers.get(this.shape) : undefined, @@ -981,9 +1062,9 @@ export class Particle { } return shapeResult ?? effectResult ?? defaultResult; - }; + } - readonly #getRollColor: (color?: IHsl) => IHsl | undefined = color => { + #getRollColor(color?: IHsl): IHsl | undefined { if (!color || !this.roll || (!this.backColor && !this.roll.alter)) { return color; } @@ -1001,9 +1082,9 @@ export class Particle { } return color; - }; + } - readonly #initPosition: (position?: ICoordinates) => void = position => { + #initPosition(position?: ICoordinates): void { const container = this.#container, zIndexValue = Math.floor(getRangeValue(this.options.zIndex.value)), initialPosition = this.#calcPosition(position, clamp(zIndexValue, minZ, container.zLayers)); @@ -1039,12 +1120,12 @@ export class Particle { /* parallax */ this.offset = Vector.origin; - }; + } - readonly #normalizeInsideCanvasResult = ( + #normalizeInsideCanvasResult( result: boolean | IParticleCanvasBoundsResult, reason: Exclude, - ): IParticleCanvasBoundsResult => { + ): IParticleCanvasBoundsResult { if (typeof result === "boolean") { return { inside: result, @@ -1057,5 +1138,5 @@ export class Particle { margin: result.margin, reason: result.reason ?? reason, }; - }; + } } diff --git a/engine/src/Core/ParticlesManager.ts b/engine/src/Core/ParticlesManager.ts index 3f288a18393..4ee1744956c 100644 --- a/engine/src/Core/ParticlesManager.ts +++ b/engine/src/Core/ParticlesManager.ts @@ -4,7 +4,6 @@ import { defaultRemoveQuantity, deleteCount, double, - empty, minCount, minIndex, minLimit, @@ -27,7 +26,7 @@ import type { PluginManager } from "./Utils/PluginManager.js"; import type { RecursivePartial } from "../Types/RecursivePartial.js"; import { SpatialHashGrid } from "./Utils/SpatialHashGrid.js"; import { getLogger } from "../Utils/LogUtils.js"; -import { loadParticlesOptions } from "../Utils/OptionsUtils.js"; +import { loadParticlesOptions } from "../Utils/ParticlesOptionsLoader.js"; /** * Particles manager object @@ -60,8 +59,8 @@ export class ParticlesManager { /** * - * @param pluginManager - - * @param container - + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#pluginManager = pluginManager; @@ -92,10 +91,10 @@ export class ParticlesManager { /** * Adds a particle to the manager - * @param position - - * @param overrideOptions - - * @param group - - * @param initializer - + * @param position - The position + * @param overrideOptions - The overrideOptions + * @param group - The group + * @param initializer - The initializer * @returns the particle added */ addParticle( @@ -190,7 +189,7 @@ export class ParticlesManager { /** * Draws all particles - * @param delta - + * @param delta - The delta time */ drawParticles(delta: IDelta): void { for (let i = this.#zBuckets.length - one; i >= minIndex; i--) { @@ -208,7 +207,7 @@ export class ParticlesManager { /** * Filters particles with a condition - * @param condition - + * @param condition - The condition * @returns the array of the particles filtered */ filter(condition: (particle: Particle) => boolean): Particle[] { @@ -217,7 +216,7 @@ export class ParticlesManager { /** * Finds a particle with a condition - * @param condition - + * @param condition - The condition * @returns the particle found */ find(condition: (particle: Particle) => boolean): Particle | undefined { @@ -226,7 +225,7 @@ export class ParticlesManager { /** * Gets a particle by index - * @param index - + * @param index - The index * @returns the particle at the index */ get(index: number): Particle | undefined { @@ -326,10 +325,10 @@ export class ParticlesManager { /** * Adds particles to the manager - * @param nb - - * @param position - - * @param overrideOptions - - * @param group - + * @param nb - The nb + * @param position - The position + * @param overrideOptions - The overrideOptions + * @param group - The group */ push( nb: number, @@ -352,9 +351,9 @@ export class ParticlesManager { /** * Removes a particle - * @param particle - - * @param group - - * @param override - + * @param particle - The particle to process + * @param group - The group + * @param override - The override */ remove(particle: Particle, group?: string, override?: boolean): void { this.removeAt(this.#array.indexOf(particle), undefined, group, override); @@ -362,10 +361,10 @@ export class ParticlesManager { /** * Removes particles at a specific index - * @param index - - * @param quantity - - * @param group - - * @param override - + * @param index - The index + * @param quantity - The quantity + * @param group - The group + * @param override - The override */ removeAt(index: number, quantity = defaultRemoveQuantity, group?: string, override?: boolean): void { if (index < minIndex || index > this.count) { @@ -384,8 +383,8 @@ export class ParticlesManager { /** * Removes a quantity of particles - * @param quantity - - * @param group - + * @param quantity - The quantity + * @param group - The group */ removeQuantity(quantity: number, group?: string): void { this.removeAt(minIndex, quantity, group); @@ -421,7 +420,7 @@ export class ParticlesManager { /** * Sets the resize factor - * @param factor - + * @param factor - The factor */ setResizeFactor(factor: IDimension): void { this.#resizeFactor = factor; @@ -429,7 +428,7 @@ export class ParticlesManager { /** * Updates all particles - * @param delta - + * @param delta - The delta time */ update(delta: IDelta): void { this.grid.clear(); @@ -455,16 +454,16 @@ export class ParticlesManager { this.#resizeFactor = undefined; } - readonly #addToPool = (...particles: Particle[]): void => { + #addToPool(...particles: Particle[]): void { this.#pool.push(...particles); - }; + } - readonly #applyDensity = ( + #applyDensity( options: ParticlesOptions, pluginsCount: number, group?: string, groupOptions?: ParticlesOptions, - ): void => { + ): void { const numberOptions = options.number; if (!numberOptions.density.enable) { @@ -494,15 +493,15 @@ export class ParticlesManager { } else if (particlesCount > particlesNumber) { this.removeQuantity(particlesCount - particlesNumber, group); } - }; + } - readonly #createBuckets = (zLayers: number): Particle[][] => { + #createBuckets(zLayers: number): Particle[][] { const bucketCount = Math.max(Math.floor(zLayers), one); return Array.from({ length: bucketCount }, () => []); - }; + } - readonly #getBucketIndex = (zIndex: number): number => { + #getBucketIndex(zIndex: number): number { const maxBucketIndex = this.#zBuckets.length - one; if (maxBucketIndex <= minIndex) { @@ -510,33 +509,9 @@ export class ParticlesManager { } return Math.min(Math.max(Math.floor(zIndex), minIndex), maxBucketIndex); - }; - - readonly #getParticleInsertIndex = (bucket: Particle[], particleId: number): number => { - let start = minIndex, - end = bucket.length; - - while (start < end) { - const middle = Math.floor((start + end) / double), - middleParticle = bucket[middle]; - - if (!middleParticle) { - end = middle; - - continue; - } - - if (middleParticle.id < particleId) { - start = middle + one; - } else { - end = middle; - } - } - - return start; - }; + } - readonly #initDensityFactor: (densityOptions: IParticlesDensity) => number = densityOptions => { + #initDensityFactor(densityOptions: IParticlesDensity): number { const container = this.#container; if (!densityOptions.enable) { @@ -556,9 +531,9 @@ export class ParticlesManager { return ( (canvasSize.width * canvasSize.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp) ); - }; + } - readonly #insertParticleIntoBucket = (particle: Particle): void => { + #insertParticleIntoBucket(particle: Particle): void { const bucketIndex = this.#getBucketIndex(particle.position.z), bucket = this.#zBuckets[bucketIndex]; @@ -566,11 +541,11 @@ export class ParticlesManager { return; } - bucket.splice(this.#getParticleInsertIndex(bucket, particle.id), empty, particle); + bucket.push(particle); this.#particleBuckets.set(particle.id, bucketIndex); - }; + } - readonly #removeParticle = (index: number, group?: string, override?: boolean): boolean => { + #removeParticle(index: number, group?: string, override?: boolean): boolean { const particle = this.#array[index]; if (!particle) { @@ -593,9 +568,9 @@ export class ParticlesManager { this.#addToPool(particle); return true; - }; + } - readonly #removeParticleFromBucket = (particle: Particle): void => { + #removeParticleFromBucket(particle: Particle): void { const bucketIndex = this.#particleBuckets.get(particle.id) ?? this.#getBucketIndex(particle.position.z), bucket = this.#zBuckets[bucketIndex]; @@ -605,19 +580,16 @@ export class ParticlesManager { return; } - const particleIndex = this.#getParticleInsertIndex(bucket, particle.id); - - if (bucket[particleIndex]?.id !== particle.id) { - this.#particleBuckets.delete(particle.id); + const idx = bucket.findIndex(p => p.id === particle.id); - return; + if (idx >= minIndex) { + bucket.splice(idx, deleteCount); } - bucket.splice(particleIndex, deleteCount); this.#particleBuckets.delete(particle.id); - }; + } - readonly #resetBuckets = (zLayers: number): void => { + #resetBuckets(zLayers: number): void { const bucketCount = Math.max(Math.floor(zLayers), one); if (this.#zBuckets.length !== bucketCount) { @@ -629,9 +601,9 @@ export class ParticlesManager { for (const bucket of this.#zBuckets) { bucket.length = minIndex; } - }; + } - readonly #updateParticleBucket = (particle: Particle): void => { + #updateParticleBucket(particle: Particle): void { const newBucketIndex = this.#getBucketIndex(particle.position.z), currentBucketIndex = this.#particleBuckets.get(particle.id); @@ -648,10 +620,10 @@ export class ParticlesManager { const currentBucket = this.#zBuckets[currentBucketIndex]; if (currentBucket) { - const particleIndex = this.#getParticleInsertIndex(currentBucket, particle.id); + const idx = currentBucket.findIndex(p => p.id === particle.id); - if (currentBucket[particleIndex]?.id === particle.id) { - currentBucket.splice(particleIndex, deleteCount); + if (idx >= minIndex) { + currentBucket.splice(idx, deleteCount); } } @@ -663,11 +635,20 @@ export class ParticlesManager { return; } - newBucket.splice(this.#getParticleInsertIndex(newBucket, particle.id), empty, particle); + newBucket.push(particle); + + if (newBucket.length >= double) { + const prev = newBucket[newBucket.length - double]; + + if (prev && particle.id < prev.id) { + newBucket.sort((a, b) => a.id - b.id); + } + } + this.#particleBuckets.set(particle.id, newBucketIndex); - }; + } - readonly #updateParticlesPhase1 = (delta: IDelta): Set => { + #updateParticlesPhase1(delta: IDelta): Set { const particlesToDelete = new Set(), resizeFactor = this.#resizeFactor; @@ -703,9 +684,9 @@ export class ParticlesManager { } return particlesToDelete; - }; + } - readonly #updateParticlesPhase2 = (delta: IDelta, particlesToDelete: Set): void => { + #updateParticlesPhase2(delta: IDelta, particlesToDelete: Set): void { for (const particle of this.#array) { if (particle.destroyed) { particlesToDelete.add(particle); @@ -725,5 +706,5 @@ export class ParticlesManager { this.#updateParticleBucket(particle); } - }; + } } diff --git a/engine/src/Core/RenderManager.ts b/engine/src/Core/RenderManager.ts index ca98ac51a03..5ebe016031e 100644 --- a/engine/src/Core/RenderManager.ts +++ b/engine/src/Core/RenderManager.ts @@ -1,14 +1,25 @@ -import { clear, drawParticle, drawParticlePlugin, paintBase, paintImage } from "../Utils/CanvasUtils.js"; -import { defaultCompositeValue, defaultTransformValue, minimumSize, zIndexFactorOffset } from "./Utils/Constants.js"; +import { + defaultCompositeValue, + defaultTransformValue, + defaultZoom, + minStrokeWidth, + minimumSize, + originPoint, + zIndexFactorOffset, +} from "./Utils/Constants.js"; import { getStyleFromHsl, rangeColorToHsl } from "../Utils/ColorUtils.js"; import type { CanvasManager } from "./CanvasManager.js"; import type { Container } from "./Container.js"; import type { IContainerPlugin } from "./Interfaces/IContainerPlugin.js"; import type { IDelta } from "./Interfaces/IDelta.js"; +import type { IDrawParticleParams } from "./Interfaces/IDrawParticleParams.js"; +import type { IEffectDrawer } from "./Interfaces/IEffectDrawer.js"; import type { IHsl } from "./Interfaces/Colors.js"; import type { IParticleColorStyle } from "./Interfaces/IParticleColorStyle.js"; import type { IParticleTransformValues } from "./Interfaces/IParticleTransformValues.js"; import type { IParticleUpdater } from "./Interfaces/IParticleUpdater.js"; +import type { IShapeDrawData } from "./Interfaces/IShapeDrawData.js"; +import type { IShapeDrawer } from "./Interfaces/IShapeDrawer.js"; import type { Particle } from "./Particle.js"; import type { PluginManager } from "./Utils/PluginManager.js"; @@ -16,9 +27,9 @@ const fColorIndex = 0, sColorIndex = 1; /** - * @param factor - - * @param newFactor - - * @param key - + * @param factor - The factor + * @param newFactor - The newFactor + * @param key - The key */ function setTransformValue( factor: Partial, @@ -64,7 +75,7 @@ export class RenderManager { * Constructor of canvas manager * @param pluginManager - the engine managing the whole library * @param container - the parent container - * @param canvasManager - + * @param canvasManager - The canvasManager */ constructor(pluginManager: PluginManager, container: Container, canvasManager: CanvasManager) { this.#pluginManager = pluginManager; @@ -100,7 +111,7 @@ export class RenderManager { } this.draw(ctx => { - clear(ctx, this.#canvasManager.size); + ctx.clearRect(originPoint.x, originPoint.y, this.#canvasManager.size.width, this.#canvasManager.size.height); }); } @@ -147,7 +158,7 @@ export class RenderManager { /** * Generic draw method for drawing stuff on the canvas context - * @param cb - + * @param cb - The cb * @returns the result of the callback */ draw(cb: (context: OffscreenCanvasRenderingContext2D) => T): T | undefined { @@ -209,7 +220,7 @@ export class RenderManager { this.#applyPreDrawUpdaters(context, particle, radius, opacity, colorStyles, transform); - drawParticle({ + this.#drawParticle({ container, context, particle, @@ -236,14 +247,14 @@ export class RenderManager { drawParticlePlugins(particle: Particle, delta: IDelta): void { this.draw(ctx => { for (const plugin of this.#drawParticlePlugins) { - drawParticlePlugin(ctx, plugin, particle, delta); + this.#drawParticlePlugin(ctx, plugin, particle, delta); } }); } /** * Draws all particles for the current frame - * @param delta - + * @param delta - The delta time */ drawParticles(delta: IDelta): void { const { particles } = this.#container; @@ -382,28 +393,45 @@ export class RenderManager { /** * Paints the canvas background with an optional base color - * @param baseColor - + * @param baseColor - The baseColor */ paintBase(baseColor?: string): void { this.draw(ctx => { - paintBase(ctx, this.#canvasManager.size, baseColor); + ctx.fillStyle = baseColor ?? "rgba(0,0,0,0)"; + ctx.fillRect(originPoint.x, originPoint.y, this.#canvasManager.size.width, this.#canvasManager.size.height); }); } /** * Paints an image on the canvas with the given opacity - * @param image - - * @param opacity - + * @param image - The image + * @param opacity - The opacity value */ - paintImage(image: HTMLImageElement, opacity: number): void { + paintImage(image: HTMLImageElement | undefined | null, opacity: number): void { this.draw(ctx => { - paintImage(ctx, this.#canvasManager.size, image, opacity); + if (!image) { + return; + } + + const prevAlpha = ctx.globalAlpha; + + ctx.globalAlpha = opacity; + + ctx.drawImage( + image, + originPoint.x, + originPoint.y, + this.#canvasManager.size.width, + this.#canvasManager.size.height, + ); + + ctx.globalAlpha = prevAlpha; }); } /** * Sets the canvas rendering context - * @param context - + * @param context - The rendering context */ setContext(context: OffscreenCanvasRenderingContext2D | null): void { this.#context = context; @@ -415,7 +443,7 @@ export class RenderManager { /** * Sets the canvas rendering context settings - * @param settings - + * @param settings - The settings */ setContextSettings(settings: CanvasRenderingContext2DSettings): void { this.#contextSettings = settings; @@ -424,24 +452,24 @@ export class RenderManager { /** Stops the renderer and clears the canvas */ stop(): void { this.draw(ctx => { - clear(ctx, this.#canvasManager.size); + ctx.clearRect(originPoint.x, originPoint.y, this.#canvasManager.size.width, this.#canvasManager.size.height); }); } - readonly #applyPostDrawUpdaters: (particle: Particle) => void = particle => { + #applyPostDrawUpdaters(particle: Particle): void { for (const updater of this.#postDrawUpdaters) { updater.afterDraw?.(particle); } - }; + } - readonly #applyPreDrawUpdaters: ( + #applyPreDrawUpdaters( ctx: OffscreenCanvasRenderingContext2D, particle: Particle, radius: number, zOpacity: number, colorStyles: IParticleColorStyle, transform: Partial, - ) => void = (ctx, particle, radius, zOpacity, colorStyles, transform) => { + ): void { for (const updater of this.#preDrawUpdaters) { if (updater.getColorStyles) { const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity); @@ -465,9 +493,164 @@ export class RenderManager { updater.beforeDraw?.(particle); } - }; + } + + #drawAfterEffect(drawer: IEffectDrawer | undefined, data: IShapeDrawData): void { + if (!drawer?.drawAfter) { + return; + } + + const { particle } = data; + + if (!particle.effect) { + return; + } + + drawer.drawAfter(data); + } + + #drawBeforeEffect(drawer: IEffectDrawer | undefined, data: IShapeDrawData): void { + if (!drawer?.drawBefore) { + return; + } + + const { particle } = data; + + if (!particle.effect) { + return; + } + + drawer.drawBefore(data); + } + + #drawParticle(data: IDrawParticleParams): void { + const { container, context, particle, delta, colorStyles, radius, opacity, transform } = data, + { effectDrawers, shapeDrawers } = container, + pos = particle.getPosition(), + transformData = particle.getTransformData(transform), + drawScale = defaultZoom, + drawPosition = { + x: pos.x, + y: pos.y, + }; + + context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y); + + if (colorStyles.fill) { + context.fillStyle = colorStyles.fill; + } + + const fillEnabled = !!particle.fillEnabled, + strokeWidth = particle.strokeWidth ?? minStrokeWidth; + + context.lineWidth = strokeWidth; + + if (colorStyles.stroke) { + context.strokeStyle = colorStyles.stroke; + } + + const drawData: IShapeDrawData = { + context, + particle, + radius, + drawRadius: radius * drawScale, + opacity, + delta, + pixelRatio: container.retina.pixelRatio, + fill: fillEnabled, + stroke: strokeWidth > minStrokeWidth, + transformData, + position: { ...pos }, + drawPosition, + drawScale, + }; + + for (const plugin of container.plugins) { + plugin.drawParticleTransform?.(drawData); + } + + const effect = particle.effect ? effectDrawers.get(particle.effect) : undefined, + shape = particle.shape ? shapeDrawers.get(particle.shape) : undefined; + + this.#drawBeforeEffect(effect, drawData); + this.#drawShapeBeforeDraw(shape, drawData); + this.#drawShape(shape, drawData); + this.#drawShapeAfterDraw(shape, drawData); + this.#drawAfterEffect(effect, drawData); + + context.resetTransform(); + } + + #drawParticlePlugin( + context: OffscreenCanvasRenderingContext2D, + plugin: IContainerPlugin, + particle: Particle, + delta: IDelta, + ): void { + if (!plugin.drawParticle) { + return; + } + + plugin.drawParticle(context, particle, delta); + } + + #drawShape(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { + if (!drawer) { + return; + } + + const { context, fill, particle, stroke } = data; + + if (!particle.shape) { + return; + } + + context.beginPath(); + + drawer.draw(data); + + if (particle.shapeClose) { + context.closePath(); + } + + if (fill) { + context.fill(); + } + + if (stroke) { + context.stroke(); + } + } - readonly #getPluginParticleColors: (particle: Particle) => (IHsl | undefined)[] = particle => { + #drawShapeAfterDraw(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { + if (!drawer?.afterDraw) { + return; + } + + const { particle } = data; + + if (!particle.shape) { + return; + } + + drawer.afterDraw(data); + } + + #drawShapeBeforeDraw(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { + if (!drawer?.beforeDraw) { + return; + } + + const { particle } = data; + + if (!particle.shape) { + return; + } + + drawer.beforeDraw(data); + } + + #getPluginParticleColors(particle: Particle): (IHsl | undefined)[] { let fColor: IHsl | undefined, sColor: IHsl | undefined; for (const plugin of this.#colorPlugins) { @@ -488,5 +671,5 @@ export class RenderManager { this.#reusablePluginColors[sColorIndex] = sColor; return this.#reusablePluginColors; - }; + } } diff --git a/engine/src/Core/Retina.ts b/engine/src/Core/Retina.ts index 7a5730263fd..a33a6438664 100644 --- a/engine/src/Core/Retina.ts +++ b/engine/src/Core/Retina.ts @@ -40,7 +40,7 @@ export class Retina { /** * Initializes retina-scaled properties for a particle - * @param particle - + * @param particle - The particle to process */ initParticle(particle: Particle): void { const options = particle.options, diff --git a/engine/src/Core/Utils/Constants.ts b/engine/src/Core/Utils/Constants.ts index a43d276f1b5..c2d08f4b3ce 100644 --- a/engine/src/Core/Utils/Constants.ts +++ b/engine/src/Core/Utils/Constants.ts @@ -48,6 +48,8 @@ export const generatedAttribute = "generated", quarter = 0.25, threeQuarter = half + quarter, minVelocity = 0, + minDistance = 0, + minRadius = 0, defaultTransformValue = 1, minimumSize = 0, zIndexFactorOffset = 1, @@ -76,6 +78,7 @@ export const generatedAttribute = "generated", minStrokeWidth = 0, lFactor = 1, lMin = 0, + maxNits = 400, triple = 3, sextuple = 6, sNormalizedOffset = 1, diff --git a/engine/src/Core/Utils/EventListeners.ts b/engine/src/Core/Utils/EventListeners.ts index 06fda8b5d59..11ec814d263 100644 --- a/engine/src/Core/Utils/EventListeners.ts +++ b/engine/src/Core/Utils/EventListeners.ts @@ -50,7 +50,7 @@ export class EventListeners { * Handles blur event * @internal */ - readonly #handleVisibilityChange: () => void = () => { + #handleVisibilityChange(): void { const container = this.#container, options = container.actualOptions; @@ -71,13 +71,9 @@ export class EventListeners { container.draw(true); } } - }; + } - /** - * Handles window resize event - * @internal - */ - readonly #handleWindowResize = (): void => { + #handleWindowResize(): void { if (this.#resizeTimeout) { clearTimeout(this.#resizeTimeout); @@ -94,21 +90,21 @@ export class EventListeners { () => void handleResize(), this.#container.actualOptions.resize.delay * millisecondsToSeconds, ); - }; + } /** * Initializing event listeners - * @param add - + * @param add - The add */ - readonly #manageListeners: (add: boolean) => void = add => { + #manageListeners(add: boolean): void { const handlers = this.#handlers; this.#manageResize(add); manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false); - }; + } - readonly #manageResize: (add: boolean) => void = add => { + #manageResize(add: boolean): void { const handlers = this.#handlers, container = this.#container, options = container.actualOptions; @@ -146,5 +142,5 @@ export class EventListeners { this.#resizeObserver.observe(canvasEl); } - }; + } } diff --git a/engine/src/Core/Utils/PluginManager.ts b/engine/src/Core/Utils/PluginManager.ts index fd2d3e3259d..efa2e198f6e 100644 --- a/engine/src/Core/Utils/PluginManager.ts +++ b/engine/src/Core/Utils/PluginManager.ts @@ -1,4 +1,3 @@ -import type { EasingType, EasingTypeAlt } from "../../Enums/Types/EasingType.js"; import type { EffectInitializer, Initializers, @@ -44,7 +43,7 @@ export class PluginManager { readonly colorManagers = new Map(); /** The easing functions map */ - readonly easingFunctions = new Map(); + readonly easingFunctions = new Map(); /** * The drawers (additional effects) array @@ -142,7 +141,7 @@ export class PluginManager { * @param name - Easing identifier. * @param easing - Easing function implementation. */ - addEasing(name: EasingType | EasingTypeAlt, easing: EasingFunction): void { + addEasing(name: string, easing: EasingFunction): void { if (this.easingFunctions.get(name)) { return; } @@ -229,7 +228,7 @@ export class PluginManager { * @param name - Easing identifier. * @returns The easing function, or a passthrough easing if not found. */ - getEasing(name: EasingType | EasingTypeAlt): EasingFunction { + getEasing(name: string): EasingFunction { return this.easingFunctions.get(name) ?? ((value: number): number => value); } diff --git a/engine/src/Core/Utils/SpatialHashGrid.ts b/engine/src/Core/Utils/SpatialHashGrid.ts index e9c89b490c1..6075194f873 100644 --- a/engine/src/Core/Utils/SpatialHashGrid.ts +++ b/engine/src/Core/Utils/SpatialHashGrid.ts @@ -164,8 +164,8 @@ export class SpatialHashGrid { /** * Convert coordinates to cell key - * @param x - - * @param y - + * @param x - The x coordinate + * @param y - The y coordinate * @returns - */ #cellKeyFromCoords(x: number, y: number): string { @@ -177,7 +177,7 @@ export class SpatialHashGrid { /** * Compute grid bounds depending on range type - * @param range - + * @param range - The range * @returns - */ #getRangeBounds(range: BaseRange): RangeBounds | null { diff --git a/engine/src/Core/Utils/Vectors.ts b/engine/src/Core/Utils/Vectors.ts index 6e249f241f9..3a7c233a416 100644 --- a/engine/src/Core/Utils/Vectors.ts +++ b/engine/src/Core/Utils/Vectors.ts @@ -141,16 +141,6 @@ export class Vector3d implements ICoordinates3d { return Vector3d.create(this.x / n, this.y / n, this.z / n); } - /** - * Divides the given scalar from the current vector, modifying it - * @param n - the scalar value to divide from the current vector - */ - divTo(n: number): void { - this.x /= n; - this.y /= n; - this.z /= n; - } - /** * Get the squared length value * @returns the squared length value diff --git a/engine/src/Enums/Types/EasingType.ts b/engine/src/Enums/Types/EasingType.ts deleted file mode 100644 index 0c2b9fcb6b1..00000000000 --- a/engine/src/Enums/Types/EasingType.ts +++ /dev/null @@ -1,132 +0,0 @@ -/** Easing type values for animations */ -export enum EasingType { - /** Ease-in back easing */ - easeInBack = "ease-in-back", - /** Ease-in bounce easing */ - easeInBounce = "ease-in-bounce", - /** Ease-in circular easing */ - easeInCirc = "ease-in-circ", - /** Ease-in cubic easing */ - easeInCubic = "ease-in-cubic", - /** Ease-in elastic easing */ - easeInElastic = "ease-in-elastic", - /** Ease-in exponential easing */ - easeInExpo = "ease-in-expo", - /** Ease-in gaussian easing */ - easeInGaussian = "ease-in-gaussian", - /** Ease-in linear easing */ - easeInLinear = "ease-in-linear", - /** Ease-in quadratic easing */ - easeInQuad = "ease-in-quad", - /** Ease-in quartic easing */ - easeInQuart = "ease-in-quart", - /** Ease-in quintic easing */ - easeInQuint = "ease-in-quint", - /** Ease-in sigmoid easing */ - easeInSigmoid = "ease-in-sigmoid", - /** Ease-in sine easing */ - easeInSine = "ease-in-sine", - /** Ease-in smoothstep easing */ - easeInSmoothstep = "ease-in-smoothstep", - /** Ease-out back easing */ - easeOutBack = "ease-out-back", - /** Ease-out bounce easing */ - easeOutBounce = "ease-out-bounce", - /** Ease-out circular easing */ - easeOutCirc = "ease-out-circ", - /** Ease-out cubic easing */ - easeOutCubic = "ease-out-cubic", - /** Ease-out elastic easing */ - easeOutElastic = "ease-out-elastic", - /** Ease-out exponential easing */ - easeOutExpo = "ease-out-expo", - /** Ease-out gaussian easing */ - easeOutGaussian = "ease-out-gaussian", - /** Ease-out linear easing */ - easeOutLinear = "ease-out-linear", - /** Ease-out quadratic easing */ - easeOutQuad = "ease-out-quad", - /** Ease-out quartic easing */ - easeOutQuart = "ease-out-quart", - /** Ease-out quintic easing */ - easeOutQuint = "ease-out-quint", - /** Ease-out sigmoid easing */ - easeOutSigmoid = "ease-out-sigmoid", - /** Ease-out sine easing */ - easeOutSine = "ease-out-sine", - /** Ease-out smoothstep easing */ - easeOutSmoothstep = "ease-out-smoothstep", - /** Ease-in-out back easing */ - easeInOutBack = "ease-in-out-back", - /** Ease-in-out bounce easing */ - easeInOutBounce = "ease-in-out-bounce", - /** Ease-in-out circular easing */ - easeInOutCirc = "ease-in-out-circ", - /** Ease-in-out cubic easing */ - easeInOutCubic = "ease-in-out-cubic", - /** Ease-in-out elastic easing */ - easeInOutElastic = "ease-in-out-elastic", - /** Ease-in-out exponential easing */ - easeInOutExpo = "ease-in-out-expo", - /** Ease-in-out gaussian easing */ - easeInOutGaussian = "ease-in-out-gaussian", - /** Ease-in-out linear easing */ - easeInOutLinear = "ease-in-out-linear", - /** Ease-in-out quadratic easing */ - easeInOutQuad = "ease-in-out-quad", - /** Ease-in-out quartic easing */ - easeInOutQuart = "ease-in-out-quart", - /** Ease-in-out quintic easing */ - easeInOutQuint = "ease-in-out-quint", - /** Ease-in-out sigmoid easing */ - easeInOutSigmoid = "ease-in-out-sigmoid", - /** Ease-in-out sine easing */ - easeInOutSine = "ease-in-out-sine", - /** Ease-in-out smoothstep easing */ - easeInOutSmoothstep = "ease-in-out-smoothstep", -} - -/** Alternative easing type values as a string literal union */ -export type EasingTypeAlt = - | "ease-in-back" - | "ease-out-back" - | "ease-in-out-back" - | "ease-in-bounce" - | "ease-out-bounce" - | "ease-in-out-bounce" - | "ease-in-circ" - | "ease-out-circ" - | "ease-in-out-circ" - | "ease-in-cubic" - | "ease-out-cubic" - | "ease-in-out-cubic" - | "ease-in-elastic" - | "ease-out-elastic" - | "ease-in-out-elastic" - | "ease-in-expo" - | "ease-out-expo" - | "ease-in-out-expo" - | "ease-in-gaussian" - | "ease-out-gaussian" - | "ease-in-out-gaussian" - | "ease-in-linear" - | "ease-out-linear" - | "ease-in-out-linear" - | "ease-in-quad" - | "ease-out-quad" - | "ease-in-out-quad" - | "ease-in-quart" - | "ease-out-quart" - | "ease-in-out-quart" - | "ease-in-quint" - | "ease-out-quint" - | "ease-in-out-quint" - | "ease-in-sigmoid" - | "ease-out-sigmoid" - | "ease-in-out-sigmoid" - | "ease-in-sine" - | "ease-out-sine" - | "ease-in-out-sine" - | "ease-in-smoothstep" - | "ease-out-smoothstep" - | "ease-in-out-smoothstep"; diff --git a/engine/src/Options/Classes/AnimatableColor.ts b/engine/src/Options/Classes/AnimatableColor.ts index f726022ec53..6ef5158c2de 100644 --- a/engine/src/Options/Classes/AnimatableColor.ts +++ b/engine/src/Options/Classes/AnimatableColor.ts @@ -1,9 +1,8 @@ -import { isArray, isNull, isString } from "../../Utils/TypeUtils.js"; +import { isArray, isString } from "../../Utils/TypeUtils.js"; import { HslAnimation } from "./HslAnimation.js"; import type { IAnimatableColor } from "../Interfaces/IAnimatableColor.js"; import type { IColorAnimation } from "../Interfaces/IColorAnimation.js"; import type { IHslAnimation } from "../Interfaces/IHslAnimation.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; import { OptionsColor } from "./OptionsColor.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js"; @@ -11,14 +10,8 @@ import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js"; /** * [[include:Options/Particles/Color.md]] */ -export class AnimatableColor extends OptionsColor implements IAnimatableColor, IOptionLoader { - animation; - - constructor() { - super(); - - this.animation = new HslAnimation(); - } +export class AnimatableColor extends OptionsColor implements IAnimatableColor { + readonly animation = new HslAnimation(); /** * Creates an animatable color from optional source and input data. @@ -45,12 +38,8 @@ export class AnimatableColor extends OptionsColor implements IAnimatableColor, I return color; } - override load(data?: RecursivePartial): void { - super.load(data); - - if (isNull(data)) { - return; - } + protected override doLoad(data: RecursivePartial): void { + super.doLoad(data); const colorAnimation = data.animation as RecursivePartial; diff --git a/engine/src/Options/Classes/AnimationOptions.ts b/engine/src/Options/Classes/AnimationOptions.ts index 1c2875f6824..12fa3d2199d 100644 --- a/engine/src/Options/Classes/AnimationOptions.ts +++ b/engine/src/Options/Classes/AnimationOptions.ts @@ -1,95 +1,47 @@ import type { IAnimation, IRangedAnimation } from "../Interfaces/IAnimation.js"; +import { loadProperty, loadRangeProperty } from "../../Utils/OptionsUtils.js"; import { AnimationMode } from "../../Enums/Modes/AnimationMode.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../Utils/OptionLoader.js"; import type { RangeValue } from "../../Types/RangeValue.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; import { StartValueType } from "../../Enums/Types/StartValueType.js"; -import { isNull } from "../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../Utils/MathUtils.js"; /** Animation options configuration class */ -export class AnimationOptions implements IAnimation, IOptionLoader { +export class AnimationOptions extends OptionLoader implements IAnimation { /** Number of animation loops (0 = infinite) */ - count: RangeValue; + count: RangeValue = 0; /** Animation decay factor */ - decay: RangeValue; + decay: RangeValue = 0; /** Delay before animation starts */ - delay: RangeValue; + delay: RangeValue = 0; /** Enables the animation */ - enable; + enable = false; /** Animation speed */ - speed: RangeValue; + speed: RangeValue = 1; /** Whether the animation is synchronized across particles */ - sync; - - constructor() { - this.count = 0; - this.enable = false; - this.speed = 1; - this.decay = 0; - this.delay = 0; - this.sync = false; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.count !== undefined) { - this.count = setRangeValue(data.count); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } - - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } - - if (data.sync !== undefined) { - this.sync = data.sync; - } + sync = false; + + protected doLoad(data: RecursivePartial): void { + loadRangeProperty(this, "count", data.count); + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "speed", data.speed); + loadRangeProperty(this, "decay", data.decay); + loadRangeProperty(this, "delay", data.delay); + loadProperty(this, "sync", data.sync); } } /** Ranged animation options with mode and start value */ -export class RangedAnimationOptions extends AnimationOptions implements IOptionLoader { +export class RangedAnimationOptions extends AnimationOptions { /** Animation mode (auto, increase, decrease, random) */ - mode: AnimationMode | keyof typeof AnimationMode; + mode: AnimationMode | keyof typeof AnimationMode = AnimationMode.auto; /** Start value type for the animation */ - startValue: StartValueType | keyof typeof StartValueType; - - constructor() { - super(); - - this.mode = AnimationMode.auto; - this.startValue = StartValueType.random; - } - - override load(data?: RecursivePartial): void { - super.load(data); - - if (isNull(data)) { - return; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } + startValue: StartValueType | keyof typeof StartValueType = StartValueType.random; - if (data.startValue !== undefined) { - this.startValue = data.startValue; - } + protected override doLoad(data: RecursivePartial): void { + super.doLoad(data); + loadProperty(this, "mode", data.mode); + loadProperty(this, "startValue", data.startValue); } } diff --git a/engine/src/Options/Classes/Background/Background.ts b/engine/src/Options/Classes/Background/Background.ts index 1df82031309..8d5e075916e 100644 --- a/engine/src/Options/Classes/Background/Background.ts +++ b/engine/src/Options/Classes/Background/Background.ts @@ -1,57 +1,34 @@ +import { OptionLoader, loadProperty } from "../../../Utils/OptionsUtils.js"; import type { IBackground } from "../../Interfaces/Background/IBackground.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; import { OptionsColor } from "../OptionsColor.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; -import { isNull } from "../../../Utils/TypeUtils.js"; /** * [[include:Options/Background.md]] */ -export class Background implements IBackground, IOptionLoader { - color; - image; - opacity; - position; - repeat; - size; +export class Background extends OptionLoader implements IBackground { + color: OptionsColor; + image = ""; + opacity = 1; + position = ""; + repeat = ""; + size = ""; constructor() { + super(); this.color = new OptionsColor(); this.color.value = ""; - this.image = ""; - this.position = ""; - this.repeat = ""; - this.size = ""; - this.opacity = 1; } - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { if (data.color !== undefined) { this.color = OptionsColor.create(this.color, data.color); } - if (data.image !== undefined) { - this.image = data.image; - } - - if (data.position !== undefined) { - this.position = data.position; - } - - if (data.repeat !== undefined) { - this.repeat = data.repeat; - } - - if (data.size !== undefined) { - this.size = data.size; - } - - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadProperty(this, "image", data.image); + loadProperty(this, "position", data.position); + loadProperty(this, "repeat", data.repeat); + loadProperty(this, "size", data.size); + loadProperty(this, "opacity", data.opacity); } } diff --git a/engine/src/Options/Classes/ColorAnimation.ts b/engine/src/Options/Classes/ColorAnimation.ts index 7747240ff35..cf70132b14a 100644 --- a/engine/src/Options/Classes/ColorAnimation.ts +++ b/engine/src/Options/Classes/ColorAnimation.ts @@ -1,50 +1,27 @@ +import { loadProperty, loadRangeProperty } from "../../Utils/OptionsUtils.js"; import { AnimationOptions } from "./AnimationOptions.js"; import type { IColorAnimation } from "../Interfaces/IColorAnimation.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; import type { RangeValue } from "../../Types/RangeValue.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; -import { isNull } from "../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../Utils/MathUtils.js"; /** Color animation options class */ -export class ColorAnimation extends AnimationOptions implements IColorAnimation, IOptionLoader { - /** Maximum color value */ - max; - /** Minimum color value */ - min; - /** Color value offset */ - offset: RangeValue; +export class ColorAnimation extends AnimationOptions implements IColorAnimation { + max: number; + min: number; + offset: RangeValue = 0; + override sync = true; constructor(min: number, max: number) { super(); this.min = min; this.max = max; - this.offset = 0; - this.sync = true; } - /** - * Loads color animation options from the given data - * @param data - - */ - override load(data?: RecursivePartial): void { - super.load(data); - - if (isNull(data)) { - return; - } - - if (data.max !== undefined) { - this.max = data.max; - } - - if (data.min !== undefined) { - this.min = data.min; - } - - if (data.offset !== undefined) { - this.offset = setRangeValue(data.offset); - } + protected override doLoad(data: RecursivePartial): void { + super.doLoad(data); + loadProperty(this, "max", data.max); + loadProperty(this, "min", data.min); + loadRangeProperty(this, "offset", data.offset); } } diff --git a/engine/src/Options/Classes/FullScreen/FullScreen.ts b/engine/src/Options/Classes/FullScreen/FullScreen.ts index 7d00930f33d..275af70e5fa 100644 --- a/engine/src/Options/Classes/FullScreen/FullScreen.ts +++ b/engine/src/Options/Classes/FullScreen/FullScreen.ts @@ -1,44 +1,29 @@ +import { OptionLoader, loadProperty } from "../../../Utils/OptionsUtils.js"; import type { IFullScreen } from "../../Interfaces/FullScreen/IFullScreen.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; -import { isNull } from "../../../Utils/TypeUtils.js"; /** * The options to set the particles in the background using CSS `fixed` position * The {@link FullScreen.zIndex} property sets the background CSS `z-index` property * [[include:Options/FullScreen.md]] */ -export class FullScreen implements IFullScreen, IOptionLoader { +export class FullScreen extends OptionLoader implements IFullScreen { /** * This property sets the canvas to a full window size acting like a background, the most common configuration. The default value is `false` since many already have different configurations. * * This is really helpful since there's no need to write CSS code to have a full size tsParticles instance. */ - enable; + enable = true; /** * This is the CSS `z-index` property set to the canvas. * * If the `z-index` is less than `0` the mouse interactions works only with the `interactivity.detectsOn` set to `window`. */ - zIndex; + zIndex = 0; - constructor() { - this.enable = true; - this.zIndex = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.zIndex !== undefined) { - this.zIndex = data.zIndex; - } + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "enable", data.enable); + loadProperty(this, "zIndex", data.zIndex); } } diff --git a/engine/src/Options/Classes/HslAnimation.ts b/engine/src/Options/Classes/HslAnimation.ts index 1c517a14e53..5be7d153474 100644 --- a/engine/src/Options/Classes/HslAnimation.ts +++ b/engine/src/Options/Classes/HslAnimation.ts @@ -1,20 +1,15 @@ import { hMax, hMin, lMax, lMin, sMax, sMin } from "../../Core/Utils/Constants.js"; import { ColorAnimation } from "./ColorAnimation.js"; import type { IHslAnimation } from "../Interfaces/IHslAnimation.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; -import { isNull } from "../../Utils/TypeUtils.js"; -export class HslAnimation implements IHslAnimation, IOptionLoader { +export class HslAnimation extends OptionLoader implements IHslAnimation { readonly h = new ColorAnimation(hMin, hMax); readonly l = new ColorAnimation(lMin, lMax); readonly s = new ColorAnimation(sMin, sMax); - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { this.h.load(data.h); this.s.load(data.s); this.l.load(data.l); diff --git a/engine/src/Options/Classes/Options.ts b/engine/src/Options/Classes/Options.ts index 245caa8b175..f4c8d99c078 100644 --- a/engine/src/Options/Classes/Options.ts +++ b/engine/src/Options/Classes/Options.ts @@ -1,18 +1,18 @@ import { deepExtend, executeOnSingleOrMultiple } from "../../Utils/Utils.js"; -import { isBoolean, isNull } from "../../Utils/TypeUtils.js"; +import { loadProperty, loadRangeProperty } from "../../Utils/OptionsUtils.js"; import { Background } from "./Background/Background.js"; import type { Container } from "../../Core/Container.js"; import { FullScreen } from "./FullScreen/FullScreen.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; import type { IOptions } from "../Interfaces/IOptions.js"; import type { ISourceOptions } from "../../Types/ISourceOptions.js"; +import { OptionLoader } from "../../Utils/OptionLoader.js"; import type { PluginManager } from "../../Core/Utils/PluginManager.js"; import type { RangeValue } from "../../Types/RangeValue.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; import { ResizeEvent } from "./ResizeEvent.js"; import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js"; -import { loadParticlesOptions } from "../../Utils/OptionsUtils.js"; -import { setRangeValue } from "../../Utils/MathUtils.js"; +import { isBoolean } from "../../Utils/TypeUtils.js"; +import { loadParticlesOptions } from "../../Utils/ParticlesOptionsLoader.js"; /** Default themes configuration */ export interface DefaultThemes { @@ -25,29 +25,29 @@ export interface DefaultThemes { /** * [[include:Options.md]] */ -export class Options implements IOptions, IOptionLoader { +export class Options extends OptionLoader implements IOptions { [name: string]: unknown; /** The autoPlay flag */ - autoPlay; + autoPlay = true; /** The background options */ - readonly background; + readonly background: Background; /** The clear flag */ - clear: boolean; + clear = true; /** The default themes */ - defaultThemes: DefaultThemes; + defaultThemes: DefaultThemes = {}; /** The delay value */ - delay: RangeValue; + delay: RangeValue = 0; /** The detect retina flag */ - detectRetina; + detectRetina = true; /** The duration value */ - duration: RangeValue; + duration: RangeValue = 0; /** The FPS limit */ - fpsLimit; + fpsLimit = 120; /** The full screen options */ - readonly fullScreen; + readonly fullScreen: FullScreen; /** The HDR flag */ - hdr; + hdr = true; /** The key value */ key?: string; /** The name value */ @@ -57,54 +57,38 @@ export class Options implements IOptions, IOptionLoader { /** The particles options */ readonly particles; /** The pause on blur flag */ - pauseOnBlur; + pauseOnBlur = true; /** The pause on outside viewport flag */ - pauseOnOutsideViewport; + pauseOnOutsideViewport = true; /** The preset value */ preset?: SingleOrMultiple; /** The resize options */ - readonly resize; + readonly resize: ResizeEvent; /** The smooth flag */ - smooth: boolean; + smooth = false; /** The style options */ - style: RecursivePartial; + style: RecursivePartial = {}; /** The z-layers value */ - zLayers; + zLayers = 100; readonly #container; readonly #pluginManager; constructor(pluginManager: PluginManager, container: Container) { + super(); this.#pluginManager = pluginManager; this.#container = container; - this.autoPlay = true; this.background = new Background(); - this.clear = true; - this.defaultThemes = {}; - this.delay = 0; this.fullScreen = new FullScreen(); - this.detectRetina = true; - this.duration = 0; - this.fpsLimit = 120; - this.hdr = true; this.particles = loadParticlesOptions(this.#pluginManager, this.#container); - this.pauseOnBlur = true; - this.pauseOnOutsideViewport = true; this.resize = new ResizeEvent(); - this.smooth = false; - this.style = {}; - this.zLayers = 100; } /** * This method loads the source object in the current instance * @param data - the source data to load into the instance */ - load(data?: ISourceOptions): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: ISourceOptions): void { if (data.preset !== undefined) { this.preset = data.preset; @@ -119,57 +103,18 @@ export class Options implements IOptions, IOptionLoader { this.#importPalette(this.palette); } - if (data.autoPlay !== undefined) { - this.autoPlay = data.autoPlay; - } - - if (data.clear !== undefined) { - this.clear = data.clear; - } - - if (data.key !== undefined) { - this.key = data.key; - } - - if (data.name !== undefined) { - this.name = data.name; - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } - - const detectRetina = data.detectRetina; - - if (detectRetina !== undefined) { - this.detectRetina = detectRetina; - } - - if (data.duration !== undefined) { - this.duration = setRangeValue(data.duration); - } - - const fpsLimit = data.fpsLimit; - - if (fpsLimit !== undefined) { - this.fpsLimit = fpsLimit; - } - - if (data.hdr !== undefined) { - this.hdr = data.hdr; - } - - if (data.pauseOnBlur !== undefined) { - this.pauseOnBlur = data.pauseOnBlur; - } - - if (data.pauseOnOutsideViewport !== undefined) { - this.pauseOnOutsideViewport = data.pauseOnOutsideViewport; - } - - if (data.zLayers !== undefined) { - this.zLayers = data.zLayers; - } + loadProperty(this, "autoPlay", data.autoPlay); + loadProperty(this, "clear", data.clear); + loadProperty(this, "key", data.key); + loadProperty(this, "name", data.name); + loadRangeProperty(this, "delay", data.delay); + loadProperty(this, "detectRetina", data.detectRetina); + loadRangeProperty(this, "duration", data.duration); + loadProperty(this, "fpsLimit", data.fpsLimit); + loadProperty(this, "hdr", data.hdr); + loadProperty(this, "pauseOnBlur", data.pauseOnBlur); + loadProperty(this, "pauseOnOutsideViewport", data.pauseOnOutsideViewport); + loadProperty(this, "zLayers", data.zLayers); this.background.load(data.background); @@ -187,16 +132,14 @@ export class Options implements IOptions, IOptionLoader { this.style = deepExtend(this.style, data.style) as RecursivePartial; - if (data.smooth !== undefined) { - this.smooth = data.smooth; - } + loadProperty(this, "smooth", data.smooth); this.#pluginManager.plugins.forEach(plugin => { plugin.loadOptions(this.#container, this, data); }); } - readonly #importPalette: (palette: string) => void = palette => { + #importPalette(palette: string): void { const paletteData = this.#pluginManager.getPalette(palette); if (!paletteData) { @@ -215,9 +158,9 @@ export class Options implements IOptions, IOptionLoader { palette, }, }); - }; + } - readonly #importPreset: (preset: string) => void = preset => { + #importPreset(preset: string): void { this.load(this.#pluginManager.getPreset(preset)); - }; + } } diff --git a/engine/src/Options/Classes/OptionsColor.ts b/engine/src/Options/Classes/OptionsColor.ts index 917e798207f..04958aeef84 100644 --- a/engine/src/Options/Classes/OptionsColor.ts +++ b/engine/src/Options/Classes/OptionsColor.ts @@ -10,15 +10,15 @@ import type { IRangeValueColor, } from "../../Core/Interfaces/Colors.js"; import { isArray, isNull, isString } from "../../Utils/TypeUtils.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; import type { IOptionsColor } from "../Interfaces/IOptionsColor.js"; +import { OptionLoader } from "../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js"; /** * [[include:Color.md]] */ -export class OptionsColor implements IOptionsColor, IOptionLoader { +export class OptionsColor extends OptionLoader implements IOptionsColor { value: SingleOrMultiple< | SingleOrMultiple | IRangeValueColor @@ -30,11 +30,7 @@ export class OptionsColor implements IOptionsColor, IOptionLoader | IRangeLch | IRangeOklab | IRangeOklch - >; - - constructor() { - this.value = ""; - } + > = ""; /** * Creates an options color from optional source and input data. @@ -61,11 +57,7 @@ export class OptionsColor implements IOptionsColor, IOptionLoader return color; } - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { if (!isNull(data.value)) { this.value = data.value; } diff --git a/engine/src/Options/Classes/Particles/Bounce/ParticlesBounce.ts b/engine/src/Options/Classes/Particles/Bounce/ParticlesBounce.ts index cdf6de4b062..fe0b7d6e1b7 100644 --- a/engine/src/Options/Classes/Particles/Bounce/ParticlesBounce.ts +++ b/engine/src/Options/Classes/Particles/Bounce/ParticlesBounce.ts @@ -1,23 +1,13 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IParticlesBounce } from "../../../Interfaces/Particles/Bounce/IParticlesBounce.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import { ParticlesBounceFactor } from "./ParticlesBounceFactor.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; -export class ParticlesBounce implements IParticlesBounce, IOptionLoader { - readonly horizontal; - readonly vertical; - - constructor() { - this.horizontal = new ParticlesBounceFactor(); - this.vertical = new ParticlesBounceFactor(); - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } +export class ParticlesBounce extends OptionLoader implements IParticlesBounce { + readonly horizontal = new ParticlesBounceFactor(); + readonly vertical = new ParticlesBounceFactor(); + protected doLoad(data: RecursivePartial): void { this.horizontal.load(data.horizontal); this.vertical.load(data.vertical); } diff --git a/engine/src/Options/Classes/Particles/Bounce/ParticlesBounceFactor.ts b/engine/src/Options/Classes/Particles/Bounce/ParticlesBounceFactor.ts index b0c2d800207..c975f78d297 100644 --- a/engine/src/Options/Classes/Particles/Bounce/ParticlesBounceFactor.ts +++ b/engine/src/Options/Classes/Particles/Bounce/ParticlesBounceFactor.ts @@ -1,8 +1,6 @@ +import type { RangeValue } from "../../../../Types/RangeValue.js"; import { ValueWithRandom } from "../../ValueWithRandom.js"; export class ParticlesBounceFactor extends ValueWithRandom { - constructor() { - super(); - this.value = 1; - } + override value: RangeValue = 1; } diff --git a/engine/src/Options/Classes/Particles/Effect/Effect.ts b/engine/src/Options/Classes/Particles/Effect/Effect.ts index 10cc1cbae83..4bd5fa3f607 100644 --- a/engine/src/Options/Classes/Particles/Effect/Effect.ts +++ b/engine/src/Options/Classes/Particles/Effect/Effect.ts @@ -1,34 +1,21 @@ import type { IEffect } from "../../../Interfaces/Particles/Effect/IEffect.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IShapeValues } from "../../../../Core/Interfaces/IShapeValues.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; import type { ShapeData } from "../../../../Types/ShapeData.js"; import type { SingleOrMultiple } from "../../../../Types/SingleOrMultiple.js"; import { deepExtend } from "../../../../Utils/Utils.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; /** * [[include:Options/Particles/Effect.md]] */ -export class Effect implements IEffect, IOptionLoader { - /** Whether the effect shape is closed */ - close; - /** Effect shape options data */ - options: ShapeData; - /** Effect type name or array of names */ - type: SingleOrMultiple; - - constructor() { - this.close = true; - this.options = {}; - this.type = []; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } +export class Effect extends OptionLoader implements IEffect { + close = true; + options: ShapeData = {}; + type: SingleOrMultiple = []; + protected doLoad(data: RecursivePartial): void { const options = data.options; if (options !== undefined) { @@ -41,12 +28,7 @@ export class Effect implements IEffect, IOptionLoader { } } - if (data.close !== undefined) { - this.close = data.close; - } - - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "close", data.close); + loadProperty(this, "type", data.type); } } diff --git a/engine/src/Options/Classes/Particles/Fill.ts b/engine/src/Options/Classes/Particles/Fill.ts index d79039bd5ce..4f828f3a2e4 100644 --- a/engine/src/Options/Classes/Particles/Fill.ts +++ b/engine/src/Options/Classes/Particles/Fill.ts @@ -1,39 +1,24 @@ +import { loadProperty, loadRangeProperty } from "../../../Utils/OptionsUtils.js"; import { AnimatableColor } from "../AnimatableColor.js"; import type { IFill } from "../../Interfaces/Particles/IFill.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../../Utils/OptionLoader.js"; import type { RangeValue } from "../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; -import { isNull } from "../../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../../Utils/MathUtils.js"; /** * [[include:Options/Particles/Fill.md]] */ -export class Fill implements IFill, IOptionLoader { +export class Fill extends OptionLoader implements IFill { color?: AnimatableColor; - enable: boolean; - opacity: RangeValue; - - constructor() { - this.enable = true; - this.opacity = 1; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } + enable = true; + opacity: RangeValue = 1; + protected doLoad(data: RecursivePartial): void { if (data.color !== undefined) { this.color = AnimatableColor.create(this.color, data.color); } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.opacity !== undefined) { - this.opacity = setRangeValue(data.opacity); - } + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "opacity", data.opacity); } } diff --git a/engine/src/Options/Classes/Particles/Move/Move.ts b/engine/src/Options/Classes/Particles/Move/Move.ts index 725ef1aa627..8be1b83e3b3 100644 --- a/engine/src/Options/Classes/Particles/Move/Move.ts +++ b/engine/src/Options/Classes/Particles/Move/Move.ts @@ -1,76 +1,47 @@ import { MoveDirection, type MoveDirectionAlt } from "../../../../Enums/Directions/MoveDirection.js"; -import { isNull, isNumber, isObject } from "../../../../Utils/TypeUtils.js"; +import { isNumber, isObject } from "../../../../Utils/TypeUtils.js"; +import { loadProperty, loadRangeProperty } from "../../../../Utils/OptionsUtils.js"; import type { IDistance } from "../../../../Core/Interfaces/IDistance.js"; import type { IMove } from "../../../Interfaces/Particles/Move/IMove.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import { MoveAngle } from "./MoveAngle.js"; import { MoveCenter } from "./MoveCenter.js"; import { MoveGravity } from "./MoveGravity.js"; import { MovePath } from "./Path/MovePath.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import { OutModes } from "./OutModes.js"; import type { RangeValue } from "../../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; import { Spin } from "./Spin.js"; -import { setRangeValue } from "../../../../Utils/MathUtils.js"; /** * [[include:Options/Particles/Move.md]] */ -export class Move implements IMove, IOptionLoader { - readonly angle; - readonly center: MoveCenter; - decay: RangeValue; - direction: MoveDirection | keyof typeof MoveDirection | MoveDirectionAlt | number; - distance: Partial; - drift: RangeValue; - enable; - readonly gravity; - readonly outModes: OutModes; - readonly path; - random; - size; - speed: RangeValue; - readonly spin; - straight; - vibrate; - warp; - - constructor() { - this.angle = new MoveAngle(); - this.center = new MoveCenter(); - this.decay = 0; - this.distance = {}; - this.direction = MoveDirection.none; - this.drift = 0; - this.enable = false; - this.gravity = new MoveGravity(); - this.path = new MovePath(); - this.outModes = new OutModes(); - this.random = false; - this.size = false; - this.speed = 2; - this.spin = new Spin(); - this.straight = false; - this.vibrate = false; - this.warp = false; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - +export class Move extends OptionLoader implements IMove { + readonly angle = new MoveAngle(); + readonly center = new MoveCenter(); + decay: RangeValue = 0; + direction: MoveDirection | keyof typeof MoveDirection | MoveDirectionAlt | number = MoveDirection.none; + distance: Partial = {}; + drift: RangeValue = 0; + enable = false; + readonly gravity = new MoveGravity(); + readonly outModes = new OutModes(); + readonly path = new MovePath(); + random = false; + size = false; + speed: RangeValue = 2; + readonly spin = new Spin(); + straight = false; + vibrate = false; + warp = false; + + protected doLoad(data: RecursivePartial): void { this.angle.load(isNumber(data.angle) ? { value: data.angle } : data.angle); this.center.load(data.center); - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.direction !== undefined) { - this.direction = data.direction; - } + loadRangeProperty(this, "decay", data.decay); + loadProperty(this, "direction", data.direction); if (data.distance !== undefined) { this.distance = isNumber(data.distance) @@ -81,13 +52,8 @@ export class Move implements IMove, IOptionLoader { : { ...data.distance }; } - if (data.drift !== undefined) { - this.drift = setRangeValue(data.drift); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadRangeProperty(this, "drift", data.drift); + loadProperty(this, "enable", data.enable); this.gravity.load(data.gravity); @@ -105,30 +71,14 @@ export class Move implements IMove, IOptionLoader { this.path.load(data.path); - if (data.random !== undefined) { - this.random = data.random; - } - - if (data.size !== undefined) { - this.size = data.size; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } + loadProperty(this, "random", data.random); + loadProperty(this, "size", data.size); + loadRangeProperty(this, "speed", data.speed); this.spin.load(data.spin); - if (data.straight !== undefined) { - this.straight = data.straight; - } - - if (data.vibrate !== undefined) { - this.vibrate = data.vibrate; - } - - if (data.warp !== undefined) { - this.warp = data.warp; - } + loadProperty(this, "straight", data.straight); + loadProperty(this, "vibrate", data.vibrate); + loadProperty(this, "warp", data.warp); } } diff --git a/engine/src/Options/Classes/Particles/Move/MoveAngle.ts b/engine/src/Options/Classes/Particles/Move/MoveAngle.ts index 5493aa8e3b0..a5848d26c62 100644 --- a/engine/src/Options/Classes/Particles/Move/MoveAngle.ts +++ b/engine/src/Options/Classes/Particles/Move/MoveAngle.ts @@ -1,37 +1,22 @@ import type { IMoveAngle } from "../../../Interfaces/Particles/Move/IMoveAngle.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RangeValue } from "../../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../../../Utils/MathUtils.js"; +import { loadRangeProperty } from "../../../../Utils/OptionsUtils.js"; /** Movement angle options class */ -export class MoveAngle implements IMoveAngle, IOptionLoader { +export class MoveAngle extends OptionLoader implements IMoveAngle { /** Angle offset value */ - offset: RangeValue; + offset: RangeValue = 0; /** Angle value in degrees */ - value: RangeValue; - - constructor() { - this.offset = 0; // 45; - this.value = 90; - } + value: RangeValue = 90; /** * Loads move angle options from the given data - * @param data - + * @param data - The data to handle */ - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.offset !== undefined) { - this.offset = setRangeValue(data.offset); - } - - if (data.value !== undefined) { - this.value = setRangeValue(data.value); - } + protected doLoad(data: RecursivePartial): void { + loadRangeProperty(this, "offset", data.offset); + loadRangeProperty(this, "value", data.value); } } diff --git a/engine/src/Options/Classes/Particles/Move/MoveCenter.ts b/engine/src/Options/Classes/Particles/Move/MoveCenter.ts index 330e0fc7635..e07b0013d56 100644 --- a/engine/src/Options/Classes/Particles/Move/MoveCenter.ts +++ b/engine/src/Options/Classes/Particles/Move/MoveCenter.ts @@ -1,41 +1,19 @@ import type { IMoveCenter } from "../../../Interfaces/Particles/Move/IMoveCenter.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import { PixelMode } from "../../../../Enums/Modes/PixelMode.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; -export class MoveCenter implements IMoveCenter, IOptionLoader { - mode: PixelMode | keyof typeof PixelMode; - radius; - x; - y; +export class MoveCenter extends OptionLoader implements IMoveCenter { + mode: PixelMode | keyof typeof PixelMode = PixelMode.percent; + radius = 0; + x = 50; + y = 50; - constructor() { - this.x = 50; - this.y = 50; - this.mode = PixelMode.percent; - this.radius = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.x !== undefined) { - this.x = data.x; - } - - if (data.y !== undefined) { - this.y = data.y; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.radius !== undefined) { - this.radius = data.radius; - } + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "x", data.x); + loadProperty(this, "y", data.y); + loadProperty(this, "mode", data.mode); + loadProperty(this, "radius", data.radius); } } diff --git a/engine/src/Options/Classes/Particles/Move/MoveGravity.ts b/engine/src/Options/Classes/Particles/Move/MoveGravity.ts index ee9253ac5d9..9eea701d534 100644 --- a/engine/src/Options/Classes/Particles/Move/MoveGravity.ts +++ b/engine/src/Options/Classes/Particles/Move/MoveGravity.ts @@ -1,51 +1,28 @@ +import { loadProperty, loadRangeProperty } from "../../../../Utils/OptionsUtils.js"; import type { IMoveGravity } from "../../../Interfaces/Particles/Move/IMoveGravity.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RangeValue } from "../../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../../../Utils/MathUtils.js"; /** Movement gravity options class */ -export class MoveGravity implements IMoveGravity, IOptionLoader { +export class MoveGravity extends OptionLoader implements IMoveGravity { /** Gravity acceleration value */ - acceleration: RangeValue; + acceleration: RangeValue = 9.81; /** Enables or disables gravity */ - enable; + enable = false; /** If true, gravity pulls particles upward instead of downward */ - inverse; + inverse = false; /** Maximum speed limit for gravity-affected particles */ - maxSpeed: RangeValue; - - constructor() { - this.acceleration = 9.81; - this.enable = false; - this.inverse = false; - this.maxSpeed = 50; - } + maxSpeed: RangeValue = 50; /** * Loads gravity options from the given data - * @param data - + * @param data - The data to handle */ - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.acceleration !== undefined) { - this.acceleration = setRangeValue(data.acceleration); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.inverse !== undefined) { - this.inverse = data.inverse; - } - - if (data.maxSpeed !== undefined) { - this.maxSpeed = setRangeValue(data.maxSpeed); - } + protected doLoad(data: RecursivePartial): void { + loadRangeProperty(this, "acceleration", data.acceleration); + loadProperty(this, "enable", data.enable); + loadProperty(this, "inverse", data.inverse); + loadRangeProperty(this, "maxSpeed", data.maxSpeed); } } diff --git a/engine/src/Options/Classes/Particles/Move/OutModes.ts b/engine/src/Options/Classes/Particles/Move/OutModes.ts index 2db5e62644e..4cdcf7d65b4 100644 --- a/engine/src/Options/Classes/Particles/Move/OutModes.ts +++ b/engine/src/Options/Classes/Particles/Move/OutModes.ts @@ -1,18 +1,17 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IOutModes } from "../../../Interfaces/Particles/Move/IOutModes.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import { OutMode } from "../../../../Enums/Modes/OutMode.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; /** * Out modes options class * [[include:Options/Particles/OutModes.md]] */ -export class OutModes implements IOutModes, IOptionLoader { +export class OutModes extends OptionLoader implements IOutModes { /** Out mode for the bottom edge */ bottom?: OutMode | keyof typeof OutMode; /** Default out mode used when per-edge modes are not set */ - default: OutMode | keyof typeof OutMode; + default: OutMode | keyof typeof OutMode = OutMode.out; /** Out mode for the left edge */ left?: OutMode | keyof typeof OutMode; /** Out mode for the right edge */ @@ -20,19 +19,11 @@ export class OutModes implements IOutModes, IOptionLoader { /** Out mode for the top edge */ top?: OutMode | keyof typeof OutMode; - constructor() { - this.default = OutMode.out; - } - /** * Loads out modes from the given data - * @param data - + * @param data - The data to handle */ - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { if (data.default !== undefined) { this.default = data.default; } diff --git a/engine/src/Options/Classes/Particles/Move/Path/MovePath.ts b/engine/src/Options/Classes/Particles/Move/Path/MovePath.ts index 83000e7d4b6..766b3ce1a1e 100644 --- a/engine/src/Options/Classes/Particles/Move/Path/MovePath.ts +++ b/engine/src/Options/Classes/Particles/Move/Path/MovePath.ts @@ -1,43 +1,25 @@ import type { IMovePath } from "../../../../Interfaces/Particles/Move/Path/IMovePath.js"; -import type { IOptionLoader } from "../../../../Interfaces/IOptionLoader.js"; +import { OptionLoader } from "../../../../../Utils/OptionLoader.js"; import type { PathOptions } from "../../../../../Types/PathOptions.js"; import type { RecursivePartial } from "../../../../../Types/RecursivePartial.js"; import { ValueWithRandom } from "../../../ValueWithRandom.js"; import { deepExtend } from "../../../../../Utils/Utils.js"; -import { isNull } from "../../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../../Utils/OptionsUtils.js"; /** * Path movement options. */ -export class MovePath implements IMovePath, IOptionLoader { - clamp; - delay; - enable; +export class MovePath extends OptionLoader implements IMovePath { + clamp = true; + readonly delay = new ValueWithRandom(); + enable = false; generator?: string; - options: PathOptions; - - constructor() { - this.clamp = true; - this.delay = new ValueWithRandom(); - this.enable = false; - this.options = {}; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.clamp !== undefined) { - this.clamp = data.clamp; - } + options: PathOptions = {}; + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "clamp", data.clamp); this.delay.load(data.delay); - - if (data.enable !== undefined) { - this.enable = data.enable; - } - + loadProperty(this, "enable", data.enable); this.generator = data.generator; if (data.options) { diff --git a/engine/src/Options/Classes/Particles/Move/Spin.ts b/engine/src/Options/Classes/Particles/Move/Spin.ts index 624a331d4f2..ec367cd6cdd 100644 --- a/engine/src/Options/Classes/Particles/Move/Spin.ts +++ b/engine/src/Options/Classes/Particles/Move/Spin.ts @@ -1,34 +1,19 @@ +import { loadProperty, loadRangeProperty } from "../../../../Utils/OptionsUtils.js"; import type { ICoordinatesWithMode } from "../../../../Core/Interfaces/ICoordinates.js"; -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { ISpin } from "../../../Interfaces/Particles/Move/ISpin.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RangeValue } from "../../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; import { deepExtend } from "../../../../Utils/Utils.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../../../Utils/MathUtils.js"; -export class Spin implements ISpin, IOptionLoader { - acceleration: RangeValue; - enable; +export class Spin extends OptionLoader implements ISpin { + acceleration: RangeValue = 0; + enable = false; position?: ICoordinatesWithMode; - constructor() { - this.acceleration = 0; - this.enable = false; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.acceleration !== undefined) { - this.acceleration = setRangeValue(data.acceleration); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + protected doLoad(data: RecursivePartial): void { + loadRangeProperty(this, "acceleration", data.acceleration); + loadProperty(this, "enable", data.enable); if (data.position) { this.position = deepExtend({}, data.position) as ICoordinatesWithMode | undefined; diff --git a/engine/src/Options/Classes/Particles/Number/ParticlesDensity.ts b/engine/src/Options/Classes/Particles/Number/ParticlesDensity.ts index 179f56c1fa2..355c0f324ea 100644 --- a/engine/src/Options/Classes/Particles/Number/ParticlesDensity.ts +++ b/engine/src/Options/Classes/Particles/Number/ParticlesDensity.ts @@ -1,41 +1,19 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IParticlesDensity } from "../../../Interfaces/Particles/Number/IParticlesDensity.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; /** * Density options used to scale particle count with area. */ -export class ParticlesDensity implements IParticlesDensity, IOptionLoader { - enable; - height; - width; - - constructor() { - this.enable = false; - this.width = 1920; - this.height = 1080; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - const width = data.width; - - if (width !== undefined) { - this.width = width; - } - - const height = data.height; - - if (height !== undefined) { - this.height = height; - } +export class ParticlesDensity extends OptionLoader implements IParticlesDensity { + enable = false; + height = 1080; + width = 1920; + + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "enable", data.enable); + loadProperty(this, "width", data.width); + loadProperty(this, "height", data.height); } } diff --git a/engine/src/Options/Classes/Particles/Number/ParticlesNumber.ts b/engine/src/Options/Classes/Particles/Number/ParticlesNumber.ts index bd4850acc92..37d010fbc1f 100644 --- a/engine/src/Options/Classes/Particles/Number/ParticlesNumber.ts +++ b/engine/src/Options/Classes/Particles/Number/ParticlesNumber.ts @@ -1,34 +1,21 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IParticlesNumber } from "../../../Interfaces/Particles/Number/IParticlesNumber.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import { ParticlesDensity } from "./ParticlesDensity.js"; import { ParticlesNumberLimit } from "./ParticlesNumberLimit.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; /** * [[include:Options/Particles/Number.md]] */ -export class ParticlesNumber implements IParticlesNumber, IOptionLoader { - readonly density; - limit; - value; - - constructor() { - this.density = new ParticlesDensity(); - this.limit = new ParticlesNumberLimit(); - this.value = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } +export class ParticlesNumber extends OptionLoader implements IParticlesNumber { + readonly density = new ParticlesDensity(); + readonly limit = new ParticlesNumberLimit(); + value = 0; + protected doLoad(data: RecursivePartial): void { this.density.load(data.density); this.limit.load(data.limit); - - if (data.value !== undefined) { - this.value = data.value; - } + loadProperty(this, "value", data.value); } } diff --git a/engine/src/Options/Classes/Particles/Number/ParticlesNumberLimit.ts b/engine/src/Options/Classes/Particles/Number/ParticlesNumberLimit.ts index e8fd8781749..602d96781ac 100644 --- a/engine/src/Options/Classes/Particles/Number/ParticlesNumberLimit.ts +++ b/engine/src/Options/Classes/Particles/Number/ParticlesNumberLimit.ts @@ -1,29 +1,15 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IParticlesNumberLimit } from "../../../Interfaces/Particles/Number/IParticlesNumberLimit.js"; import { LimitMode } from "../../../../Enums/Modes/LimitMode.js"; +import { OptionLoader } from "../../../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; -export class ParticlesNumberLimit implements IParticlesNumberLimit, IOptionLoader { - mode: LimitMode | keyof typeof LimitMode; - value: number; +export class ParticlesNumberLimit extends OptionLoader implements IParticlesNumberLimit { + mode: LimitMode | keyof typeof LimitMode = LimitMode.delete; + value = 0; - constructor() { - this.mode = LimitMode.delete; - this.value = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.value !== undefined) { - this.value = data.value; - } + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "mode", data.mode); + loadProperty(this, "value", data.value); } } diff --git a/engine/src/Options/Classes/Particles/Paint.ts b/engine/src/Options/Classes/Particles/Paint.ts index 93142b5ac01..8f04aff7a81 100644 --- a/engine/src/Options/Classes/Particles/Paint.ts +++ b/engine/src/Options/Classes/Particles/Paint.ts @@ -1,36 +1,25 @@ import { AnimatableColor } from "../AnimatableColor.js"; import { Fill } from "./Fill.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; import type { IPaint } from "../../Interfaces/Particles/IPaint.js"; +import { OptionLoader } from "../../../Utils/OptionLoader.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; import { Stroke } from "./Stroke.js"; -import { isNull } from "../../../Utils/TypeUtils.js"; +import { loadLazyProperty } from "../../../Utils/OptionsUtils.js"; /** * [[include:Options/Particles/Paint.md]] */ -export class Paint implements IPaint, IOptionLoader { +export class Paint extends OptionLoader implements IPaint { color?: AnimatableColor; fill?: Fill; stroke?: Stroke; - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { if (data.color !== undefined) { this.color = AnimatableColor.create(this.color, data.color); } - if (data.fill !== undefined) { - this.fill ??= new Fill(); - this.fill.load(data.fill); - } - - if (data.stroke !== undefined) { - this.stroke ??= new Stroke(); - this.stroke.load(data.stroke); - } + loadLazyProperty(this, "fill", data.fill, () => new Fill()); + loadLazyProperty(this, "stroke", data.stroke, () => new Stroke()); } } diff --git a/engine/src/Options/Classes/Particles/ParticlesOptions.ts b/engine/src/Options/Classes/Particles/ParticlesOptions.ts index 3a3350f4743..2db67a3a3c8 100644 --- a/engine/src/Options/Classes/Particles/ParticlesOptions.ts +++ b/engine/src/Options/Classes/Particles/ParticlesOptions.ts @@ -1,13 +1,12 @@ import { deepExtend, executeOnSingleOrMultiple } from "../../../Utils/Utils.js"; -import { isArray, isNull } from "../../../Utils/TypeUtils.js"; import { AnimatableColor } from "../AnimatableColor.js"; import type { Container } from "../../../Core/Container.js"; import { Effect } from "./Effect/Effect.js"; import { Fill } from "./Fill.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; import type { IPaint } from "../../Interfaces/Particles/IPaint.js"; import type { IParticlesOptions } from "../../Interfaces/Particles/IParticlesOptions.js"; import { Move } from "./Move/Move.js"; +import { OptionLoader } from "../../../Utils/OptionLoader.js"; import { Paint } from "./Paint.js"; import { ParticlesBounce } from "./Bounce/ParticlesBounce.js"; import type { ParticlesGroups } from "../../../Types/ParticlesGroups.js"; @@ -17,51 +16,41 @@ import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; import { Shape } from "./Shape/Shape.js"; import type { SingleOrMultiple } from "../../../Types/SingleOrMultiple.js"; import { ZIndex } from "./ZIndex/ZIndex.js"; +import { isArray } from "../../../Utils/TypeUtils.js"; /** * [[include:Options/Particles.md]] */ -export class ParticlesOptions implements IParticlesOptions, IOptionLoader { +export class ParticlesOptions extends OptionLoader implements IParticlesOptions { [name: string]: unknown; - readonly bounce; - readonly effect; - readonly groups: ParticlesGroups; - readonly move; - readonly number; + readonly bounce = new ParticlesBounce(); + readonly effect = new Effect(); + readonly groups: ParticlesGroups = {}; + readonly move = new Move(); + readonly number = new ParticlesNumber(); paint: SingleOrMultiple; palette?: string; - reduceDuplicates; - readonly shape; - readonly zIndex; + reduceDuplicates = false; + readonly shape = new Shape(); + readonly zIndex = new ZIndex(); readonly #container; readonly #pluginManager; constructor(pluginManager: PluginManager, container?: Container) { + super(); this.#pluginManager = pluginManager; this.#container = container; - this.bounce = new ParticlesBounce(); - this.effect = new Effect(); - this.groups = {}; - this.move = new Move(); - this.number = new ParticlesNumber(); this.paint = new Paint(); this.paint.color = new AnimatableColor(); this.paint.color.value = "#fff"; this.paint.fill = new Fill(); this.paint.fill.enable = true; - this.reduceDuplicates = false; - this.shape = new Shape(); - this.zIndex = new ZIndex(); } - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - + protected doLoad(data: RecursivePartial): void { if (data.palette) { this.palette = data.palette; @@ -132,7 +121,7 @@ export class ParticlesOptions implements IParticlesOptions, IOptionLoader { + #importPalette(palette: string): void { const paletteData = this.#pluginManager.getPalette(palette); if (!paletteData) { @@ -191,5 +180,5 @@ export class ParticlesOptions implements IParticlesOptions, IOptionLoader { - close; - options: ShapeData; - type: SingleOrMultiple; - - constructor() { - this.close = true; - this.options = {}; - this.type = "circle"; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } +export class Shape extends OptionLoader implements IShape { + close = true; + options: ShapeData = {}; + type: SingleOrMultiple = "circle"; + protected doLoad(data: RecursivePartial): void { const options = data.options; if (options !== undefined) { @@ -38,12 +28,7 @@ export class Shape implements IShape, IOptionLoader { } } - if (data.close !== undefined) { - this.close = data.close; - } - - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "close", data.close); + loadProperty(this, "type", data.type); } } diff --git a/engine/src/Options/Classes/Particles/Stroke.ts b/engine/src/Options/Classes/Particles/Stroke.ts index 710bf3fa4fa..89ce1158030 100644 --- a/engine/src/Options/Classes/Particles/Stroke.ts +++ b/engine/src/Options/Classes/Particles/Stroke.ts @@ -1,38 +1,24 @@ import { AnimatableColor } from "../AnimatableColor.js"; -import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js"; import type { IStroke } from "../../Interfaces/Particles/IStroke.js"; +import { OptionLoader } from "../../../Utils/OptionLoader.js"; import type { RangeValue } from "../../../Types/RangeValue.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; -import { isNull } from "../../../Utils/TypeUtils.js"; -import { setRangeValue } from "../../../Utils/MathUtils.js"; +import { loadRangeProperty } from "../../../Utils/OptionsUtils.js"; /** * [[include:Options/Particles/Stroke.md]] */ -export class Stroke implements IStroke, IOptionLoader { +export class Stroke extends OptionLoader implements IStroke { color?: AnimatableColor; opacity?: RangeValue; - width: RangeValue; - - constructor() { - this.width = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } + width: RangeValue = 0; + protected doLoad(data: RecursivePartial): void { if (data.color !== undefined) { this.color = AnimatableColor.create(this.color, data.color); } - if (data.width !== undefined) { - this.width = setRangeValue(data.width); - } - - if (data.opacity !== undefined) { - this.opacity = setRangeValue(data.opacity); - } + loadRangeProperty(this, "width", data.width); + loadRangeProperty(this, "opacity", data.opacity); } } diff --git a/engine/src/Options/Classes/Particles/ZIndex/ZIndex.ts b/engine/src/Options/Classes/Particles/ZIndex/ZIndex.ts index 662cc843fe9..c2cf16c674c 100644 --- a/engine/src/Options/Classes/Particles/ZIndex/ZIndex.ts +++ b/engine/src/Options/Classes/Particles/ZIndex/ZIndex.ts @@ -1,41 +1,20 @@ -import type { IOptionLoader } from "../../../Interfaces/IOptionLoader.js"; import type { IZIndex } from "../../../Interfaces/Particles/ZIndex/IZIndex.js"; import type { RecursivePartial } from "../../../../Types/RecursivePartial.js"; import { ValueWithRandom } from "../../ValueWithRandom.js"; -import { isNull } from "../../../../Utils/TypeUtils.js"; +import { loadProperty } from "../../../../Utils/OptionsUtils.js"; /** * Z-index related particle behavior options. */ -export class ZIndex extends ValueWithRandom implements IZIndex, IOptionLoader { - opacityRate; - sizeRate; - velocityRate; +export class ZIndex extends ValueWithRandom implements IZIndex { + opacityRate = 1; + sizeRate = 1; + velocityRate = 1; - constructor() { - super(); - this.opacityRate = 1; - this.sizeRate = 1; - this.velocityRate = 1; - } - - override load(data?: RecursivePartial): void { - super.load(data); - - if (isNull(data)) { - return; - } - - if (data.opacityRate !== undefined) { - this.opacityRate = data.opacityRate; - } - - if (data.sizeRate !== undefined) { - this.sizeRate = data.sizeRate; - } - - if (data.velocityRate !== undefined) { - this.velocityRate = data.velocityRate; - } + protected override doLoad(data: RecursivePartial): void { + super.doLoad(data); + loadProperty(this, "opacityRate", data.opacityRate); + loadProperty(this, "sizeRate", data.sizeRate); + loadProperty(this, "velocityRate", data.velocityRate); } } diff --git a/engine/src/Options/Classes/ResizeEvent.ts b/engine/src/Options/Classes/ResizeEvent.ts index 60ea232a247..9d27e20ff3a 100644 --- a/engine/src/Options/Classes/ResizeEvent.ts +++ b/engine/src/Options/Classes/ResizeEvent.ts @@ -1,28 +1,13 @@ -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; +import { OptionLoader, loadProperty } from "../../Utils/OptionsUtils.js"; import type { IResizeEvent } from "../Interfaces/IResizeEvent.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; -import { isNull } from "../../Utils/TypeUtils.js"; -export class ResizeEvent implements IResizeEvent, IOptionLoader { - delay; - enable; +export class ResizeEvent extends OptionLoader implements IResizeEvent { + delay = 0.5; + enable = true; - constructor() { - this.delay = 0.5; - this.enable = true; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } - - if (data.delay !== undefined) { - this.delay = data.delay; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + protected doLoad(data: RecursivePartial): void { + loadProperty(this, "delay", data.delay); + loadProperty(this, "enable", data.enable); } } diff --git a/engine/src/Options/Classes/ValueWithRandom.ts b/engine/src/Options/Classes/ValueWithRandom.ts index 4c74b0c931e..6b2293eacb4 100644 --- a/engine/src/Options/Classes/ValueWithRandom.ts +++ b/engine/src/Options/Classes/ValueWithRandom.ts @@ -1,29 +1,17 @@ import { AnimationOptions, RangedAnimationOptions } from "./AnimationOptions.js"; -import type { - IAnimationValueWithRandom, - IRangedAnimationValueWithRandom, - IValueWithRandom, -} from "../Interfaces/IValueWithRandom.js"; -import type { IOptionLoader } from "../Interfaces/IOptionLoader.js"; +import type { IAnimationValueWithRandom, IValueWithRandom } from "../Interfaces/IValueWithRandom.js"; +import { OptionLoader } from "../../Utils/OptionLoader.js"; import type { RangeValue } from "../../Types/RangeValue.js"; import type { RecursivePartial } from "../../Types/RecursivePartial.js"; import { isNull } from "../../Utils/TypeUtils.js"; +import { loadNestedProperty } from "../../Utils/OptionsUtils.js"; import { setRangeValue } from "../../Utils/MathUtils.js"; /** Value with random range option class */ -export class ValueWithRandom implements IValueWithRandom, IOptionLoader { - /** The value or range of values */ - value: RangeValue; - - constructor() { - this.value = 0; - } - - load(data?: RecursivePartial): void { - if (isNull(data)) { - return; - } +export class ValueWithRandom extends OptionLoader implements IValueWithRandom { + value: RangeValue = 0; + protected doLoad(data: RecursivePartial): void { if (!isNull(data.value)) { this.value = setRangeValue(data.value); } @@ -31,39 +19,16 @@ export class ValueWithRandom implements IValueWithRandom, IOptionLoader { - /** Animation options */ +export class AnimationValueWithRandom extends ValueWithRandom { readonly animation = new AnimationOptions(); - override load(data?: RecursivePartial): void { - super.load(data); - - if (isNull(data)) { - return; - } - - const animation = data.animation; - - if (animation !== undefined) { - this.animation.load(animation); - } + protected override doLoad(data: RecursivePartial): void { + super.doLoad(data); + loadNestedProperty(this, "animation", data.animation); } } /** Ranged animation value with random range option class */ -export class RangedAnimationValueWithRandom - extends AnimationValueWithRandom - implements IOptionLoader -{ - override readonly animation: RangedAnimationOptions; - - constructor() { - super(); - - this.animation = new RangedAnimationOptions(); - } - - override load(data?: RecursivePartial): void { - super.load(data); - } +export class RangedAnimationValueWithRandom extends AnimationValueWithRandom { + override readonly animation: RangedAnimationOptions = new RangedAnimationOptions(); } diff --git a/engine/src/Utils/CanvasUtils.ts b/engine/src/Utils/CanvasUtils.ts deleted file mode 100644 index 6ba04477e94..00000000000 --- a/engine/src/Utils/CanvasUtils.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { defaultZoom, minStrokeWidth, originPoint } from "../Core/Utils/Constants.js"; -import type { IContainerPlugin } from "../Core/Interfaces/IContainerPlugin.js"; -import type { IDelta } from "../Core/Interfaces/IDelta.js"; -import type { IDimension } from "../Core/Interfaces/IDimension.js"; -import type { IDrawParticleParams } from "../Core/Interfaces/IDrawParticleParams.js"; -import type { IEffectDrawer } from "../Core/Interfaces/IEffectDrawer.js"; -import type { IShapeDrawData } from "../Core/Interfaces/IShapeDrawData.js"; -import type { IShapeDrawer } from "../Core/Interfaces/IShapeDrawer.js"; -import type { Particle } from "../Core/Particle.js"; - -/** - * Fills a rectangle with the given color for the whole canvas. - * @param context - The canvas context to draw on. - * @param dimension - The dimension of the rectangle. - * @param baseColor - The base color of the rectangle, if not specified a transparent color will be used. - */ -export function paintBase(context: OffscreenCanvasRenderingContext2D, dimension: IDimension, baseColor?: string): void { - context.fillStyle = baseColor ?? "rgba(0,0,0,0)"; - - context.fillRect(originPoint.x, originPoint.y, dimension.width, dimension.height); -} - -/** - * Fills a rectangle with the given color for the whole canvas. - * @param context - The canvas context to draw on. - * @param dimension - The dimension of the rectangle. - * @param image - The image to draw on the rectangle. - * @param opacity - The opacity of the image. - */ -export function paintImage( - context: OffscreenCanvasRenderingContext2D, - dimension: IDimension, - image: HTMLImageElement | undefined, - opacity: number, -): void { - if (!image) { - return; - } - - const prevAlpha = context.globalAlpha; - - context.globalAlpha = opacity; - - context.drawImage(image, originPoint.x, originPoint.y, dimension.width, dimension.height); - - context.globalAlpha = prevAlpha; -} - -/** - * Clears the canvas. - * @param context - The canvas context to clear. - * @param dimension - The dimension of the canvas. - */ -export function clear(context: OffscreenCanvasRenderingContext2D, dimension: IDimension): void { - context.clearRect(originPoint.x, originPoint.y, dimension.width, dimension.height); -} - -/** - * Draws the particle using canvas API in the given context. - * @param data - The function parameters. - */ -export function drawParticle(data: IDrawParticleParams): void { - const { container, context, particle, delta, colorStyles, radius, opacity, transform } = data, - { effectDrawers, shapeDrawers } = container, - pos = particle.getPosition(), - transformData = particle.getTransformData(transform), - drawScale = defaultZoom, - drawPosition = { - x: pos.x, - y: pos.y, - }; - - context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y); - - if (colorStyles.fill) { - context.fillStyle = colorStyles.fill; - } - - const fillEnabled = !!particle.fillEnabled, - strokeWidth = particle.strokeWidth ?? minStrokeWidth; - - context.lineWidth = strokeWidth; - - if (colorStyles.stroke) { - context.strokeStyle = colorStyles.stroke; - } - - const drawData: IShapeDrawData = { - context, - particle, - radius, - drawRadius: radius * drawScale, - opacity, - delta, - pixelRatio: container.retina.pixelRatio, - fill: fillEnabled, - stroke: strokeWidth > minStrokeWidth, - transformData, - position: { ...pos }, - drawPosition, - drawScale, - }; - - for (const plugin of container.plugins) { - plugin.drawParticleTransform?.(drawData); - } - - const effect = particle.effect ? effectDrawers.get(particle.effect) : undefined, - shape = particle.shape ? shapeDrawers.get(particle.shape) : undefined; - - drawBeforeEffect(effect, drawData); - drawShapeBeforeDraw(shape, drawData); - drawShape(shape, drawData); - drawShapeAfterDraw(shape, drawData); - drawAfterEffect(effect, drawData); - - context.resetTransform(); -} - -/** - * Draws the particle effect using the plugin's shape renderer. - * @param drawer - the particle effect drawer. - * @param data - the function parameters. - */ -export function drawAfterEffect(drawer: IEffectDrawer | undefined, data: IShapeDrawData): void { - if (!drawer?.drawAfter) { - return; - } - - const { particle } = data; - - if (!particle.effect) { - return; - } - - drawer.drawAfter(data); -} - -/** - * Draws the particle effect using the plugin's shape renderer. - * @param drawer - the particle effect drawer. - * @param data - the function parameters. - */ -export function drawBeforeEffect(drawer: IEffectDrawer | undefined, data: IShapeDrawData): void { - if (!drawer?.drawBefore) { - return; - } - - const { particle } = data; - - if (!particle.effect) { - return; - } - - drawer.drawBefore(data); -} - -/** - * Draws the particle shape using the plugin's shape renderer. - * @param drawer - the particle shape drawer. - * @param data - the function parameters. - */ -export function drawShape(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { - if (!drawer) { - return; - } - - const { context, fill, particle, stroke } = data; - - if (!particle.shape) { - return; - } - - context.beginPath(); - - drawer.draw(data); - - if (particle.shapeClose) { - context.closePath(); - } - - if (fill) { - context.fill(); - } - - if (stroke) { - context.stroke(); - } -} - -/** - * Calls the afterDraw function of the plugin's shape renderer, this is called after drawShape. - * @param drawer - the particle shape drawer. - * @param data - the function parameters. - */ -export function drawShapeAfterDraw(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { - if (!drawer?.afterDraw) { - return; - } - - const { particle } = data; - - if (!particle.shape) { - return; - } - - drawer.afterDraw(data); -} - -/** - * Calls the beforeDraw function of the plugin's shape renderer, this is called before drawShape.' - * @param drawer - the particle shape drawer. - * @param data - the function parameters. - */ -export function drawShapeBeforeDraw(drawer: IShapeDrawer | undefined, data: IShapeDrawData): void { - if (!drawer?.beforeDraw) { - return; - } - - const { particle } = data; - - if (!particle.shape) { - return; - } - - drawer.beforeDraw(data); -} - -/** - * Draws the given particle plugin in the canvas. - * @param context - The canvas context. - * @param plugin - The particle plugin to draw. - * @param particle - The particle to draw. - * @param delta - this variable contains the delta between the current frame and the previous frame - */ -export function drawParticlePlugin( - context: OffscreenCanvasRenderingContext2D, - plugin: IContainerPlugin, - particle: Particle, - delta: IDelta, -): void { - if (!plugin.drawParticle) { - return; - } - - plugin.drawParticle(context, particle, delta); -} diff --git a/engine/src/Utils/ColorUtils.ts b/engine/src/Utils/ColorUtils.ts index 1433a4bec15..7be9b500434 100644 --- a/engine/src/Utils/ColorUtils.ts +++ b/engine/src/Utils/ColorUtils.ts @@ -24,6 +24,7 @@ import { lFactor, lMax, lMin, + maxNits, midColorValue, millisecondsToSeconds, percentDenominator, @@ -50,10 +51,10 @@ import type { PluginManager } from "../Core/Utils/PluginManager.js"; import { itemFromArray } from "./Utils.js"; const styleCache = new Map(), - maxCacheSize = 1000, - firstIndex = 0, + maxStyleCacheSize = 2000, rgbFixedPrecision = 2, - hslFixedPrecision = 2; + hslFixedPrecision = 2, + sdrReferenceWhiteNits = 203; /** * Generic cache function for color styles @@ -67,10 +68,8 @@ function getCachedStyle(key: string, generator: () => string): string { if (!cached) { cached = generator(); - if (styleCache.size >= maxCacheSize) { - const keysToDelete = [...styleCache.keys()].slice(firstIndex, maxCacheSize * half); - - keysToDelete.forEach(k => styleCache.delete(k)); + if (styleCache.size > maxStyleCacheSize) { + styleCache.clear(); } styleCache.set(key, cached); @@ -193,25 +192,6 @@ export function colorToRgb( return undefined; } -/** - * Gets the particles color - * @param pluginManager - the plugin manager - * @param color - the input color to convert in {@link IHsl} object - * @param index - the array index, if needed - * @param useIndex - set to false to ignore the index parameter - * @returns the {@link IHsl} object - */ -export function colorToHsl( - pluginManager: PluginManager, - color: string | IColor | undefined, - index?: number, - useIndex = true, -): IHsl | undefined { - const rgb = colorToRgb(pluginManager, color, index, useIndex); - - return rgb ? rgbToHsl(rgb) : undefined; -} - /** * Gets the particles color * @param pluginManager - the plugin manager @@ -299,9 +279,45 @@ export function stringToRgb(pluginManager: PluginManager, input: string): IRgb | /** * Converts a Hue Saturation Lightness ({@link IHsl}) object in a {@link IRgb} object - * @param hsl - the Hue Saturation Lightness ({@link IHsl}) object + * @param temp1 - The temp1 + * @param temp2 - The temp2 + * @param temp3 - The temp3 * @returns the {@link IRgb} object */ +function hslChannel(temp1: number, temp2: number, temp3: number): number { + const temp3Min = 0, + temp3Max = 1; + + if (temp3 < temp3Min) { + temp3++; + } + + if (temp3 > temp3Max) { + temp3--; + } + + if (temp3 * sextuple < temp3Max) { + return temp1 + (temp2 - temp1) * sextuple * temp3; + } + + if (temp3 * double < temp3Max) { + return temp2; + } + + if (temp3 * triple < temp3Max * double) { + const temp3Offset = double / triple; + + return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple; + } + + return temp1; +} + +/** + * + * @param hsl - The HSL color + * @returns The result + */ export function hslToRgb(hsl: IHsl): IRgb { // Ensure that h, s, and l are in the valid range const h = ((hsl.h % hMax) + hMax) % hMax, @@ -319,43 +335,15 @@ export function hslToRgb(hsl: IHsl): IRgb { return { r: grayscaleValue, g: grayscaleValue, b: grayscaleValue }; } - const channel = (temp1: number, temp2: number, temp3: number): number => { - const temp3Min = 0, - temp3Max = 1; - - if (temp3 < temp3Min) { - temp3++; - } - - if (temp3 > temp3Max) { - temp3--; - } - - if (temp3 * sextuple < temp3Max) { - return temp1 + (temp2 - temp1) * sextuple * temp3; - } - - if (temp3 * double < temp3Max) { - return temp2; - } - - if (temp3 * triple < temp3Max * double) { - const temp3Offset = double / triple; - - return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple; - } - - return temp1; - }, - temp1 = + const temp1 = lNormalized < half ? lNormalized * (sNormalizedOffset + sNormalized) : lNormalized + sNormalized - lNormalized * sNormalized, temp2 = double * lNormalized - temp1, phaseThird = phaseNumerator / triple, - red = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized + phaseThird)), - green = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized)), - blue = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized - phaseThird)); + red = Math.min(rgbMax, rgbMax * hslChannel(temp2, temp1, hNormalized + phaseThird)), + green = Math.min(rgbMax, rgbMax * hslChannel(temp2, temp1, hNormalized)), + blue = Math.min(rgbMax, rgbMax * hslChannel(temp2, temp1, hNormalized - phaseThird)); return { r: Math.round(red), g: Math.round(green), b: Math.round(blue) }; } @@ -411,10 +399,13 @@ export function getStyleFromRgb(color: IRgb, hdr: boolean, opacity?: number): st * Gets a CSS style string from a {@link IRgb} object and opacity value * @param color - the {@link IRgb} input color * @param opacity - the opacity value + * @param peakNits - the peak brightness in nits, for future HDR API support, defaults to 400 * @returns the CSS style string */ -function getHdrStyleFromRgb(color: IRgb, opacity?: number): string { - return `color(display-p3 ${(color.r / rgbMax).toString()} ${(color.g / rgbMax).toString()} ${(color.b / rgbMax).toString()} / ${(opacity ?? defaultOpacity).toString()})`; +function getHdrStyleFromRgb(color: IRgb, opacity?: number, peakNits = maxNits): string { + const headroom = peakNits / sdrReferenceWhiteNits; + + return `color(display-p3 ${((color.r / rgbMax) * headroom).toString()} ${((color.g / rgbMax) * headroom).toString()} ${((color.b / rgbMax) * headroom).toString()} / ${(opacity ?? defaultOpacity).toString()})`; } /** @@ -438,27 +429,11 @@ export function getStyleFromHsl(color: IHsl, hdr: boolean, opacity?: number): st const op = opacity ?? defaultOpacity, key = `hsl-${color.h.toFixed(hslFixedPrecision)}-${color.s.toFixed(hslFixedPrecision)}-${color.l.toFixed(hslFixedPrecision)}-${hdr ? "hdr" : "sdr"}-${op.toString()}`; - return getCachedStyle(key, () => (hdr ? getHdrStyleFromHsl(color, opacity) : getSdrStyleFromHsl(color, opacity))); -} - -/** - * Gets a CSS style string from a {@link IHsl} object and opacity value - * @param color - the {@link IHsl} input color - * @param opacity - the opacity value - * @returns the CSS style string - */ -function getHdrStyleFromHsl(color: IHsl, opacity?: number): string { - return getHdrStyleFromRgb(hslToRgb(color), opacity); -} - -/** - * Gets a CSS style string from a {@link IHsl} object and opacity value - * @param color - the {@link IHsl} input color - * @param opacity - the opacity value - * @returns the CSS style string - */ -function getSdrStyleFromHsl(color: IHsl, opacity?: number): string { - return `hsla(${color.h.toString()}, ${color.s.toString()}%, ${color.l.toString()}%, ${(opacity ?? defaultOpacity).toString()})`; + return getCachedStyle(key, () => + hdr + ? getStyleFromRgb(hslToRgb(color), true, opacity) + : `hsla(${color.h.toString()}, ${color.s.toString()}%, ${color.l.toString()}%, ${op.toString()})`, + ); } /** @@ -614,9 +589,9 @@ export function getHslAnimationFromHsl( } /** - * @param colorValue - - * @param colorAnimation - - * @param reduceFactor - + * @param colorValue - The color value + * @param colorAnimation - The colorAnimation + * @param reduceFactor - The reduceFactor */ function setColorAnimation( colorValue: IParticleColorAnimation, diff --git a/engine/src/Utils/EventDispatcher.ts b/engine/src/Utils/EventDispatcher.ts index de0fa6c33f4..10fb14db758 100644 --- a/engine/src/Utils/EventDispatcher.ts +++ b/engine/src/Utils/EventDispatcher.ts @@ -12,8 +12,8 @@ export class EventDispatcher { /** * Adds an event listener for the given type - * @param type - - * @param listener - + * @param type - The type + * @param listener - The listener */ addEventListener(type: string, listener: CustomEventListener): void { this.removeEventListener(type, listener); @@ -31,8 +31,8 @@ export class EventDispatcher { /** * Dispatches an event to all registered listeners - * @param type - - * @param args - + * @param type - The type + * @param args - The arguments */ dispatchEvent(type: string, args?: CustomEventArgs): void { const listeners = this.#listeners.get(type); @@ -44,7 +44,7 @@ export class EventDispatcher { /** * Checks if any listeners are registered for the given type - * @param type - + * @param type - The type * @returns true if there are any listeners registered for the given type, false otherwise */ hasEventListener(type: string): boolean { @@ -53,7 +53,7 @@ export class EventDispatcher { /** * Removes all event listeners, optionally filtered by type - * @param type - + * @param type - The type */ removeAllEventListeners(type?: string): void { if (!type) { @@ -65,8 +65,8 @@ export class EventDispatcher { /** * Removes a specific event listener - * @param type - - * @param listener - + * @param type - The type + * @param listener - The listener */ removeEventListener(type: string, listener: CustomEventListener): void { const arr = this.#listeners.get(type); diff --git a/engine/src/Utils/LogUtils.ts b/engine/src/Utils/LogUtils.ts index 1dbf86a345e..556b8fc69c9 100644 --- a/engine/src/Utils/LogUtils.ts +++ b/engine/src/Utils/LogUtils.ts @@ -56,6 +56,8 @@ const wrap = /** * Replaces the library log functions with a custom one. * @param logger - A logger object responsible for logging messages. + * @remarks + * Also available on globalThis as `setParticlesLogger` in UMD/browser builds. */ export function setLogger(logger: Partial): void { if (logger.debug) { @@ -90,6 +92,8 @@ export function setLogger(logger: Partial): void { /** * Returns the logger object. * @returns the logger + * @remarks + * Also available on globalThis as `getParticlesLogger` in UMD/browser builds. */ export function getLogger(): ILogger { return _logger; diff --git a/engine/src/Utils/MathUtils.ts b/engine/src/Utils/MathUtils.ts index 0daf8b8dadb..64b54b12391 100644 --- a/engine/src/Utils/MathUtils.ts +++ b/engine/src/Utils/MathUtils.ts @@ -29,14 +29,28 @@ const _animationLoop: AnimationLoop = { /** * Replaces the library random function with a custom one. * @param rnd - A random function that returns a number between 0 and 1. + * @remarks + * Also available on globalThis as `setParticlesRandom` in UMD/browser builds. */ export function setRandom(rnd: () => number = Math.random): void { _random = rnd; } +/** + * Returns the current random function used by the library. + * @returns the current random function + * @remarks + * Also available on globalThis as `getParticlesRandomFn` in UMD/browser builds. + */ +export function getRandomFn(): () => number { + return _random; +} + /** * Returns a random number between 0 and 1 using the library random function. * @returns a random number between 0 and 1 + * @remarks + * Also available on globalThis as `getParticlesRandom` in UMD/browser builds. */ export function getRandom(): number { const min = 0, @@ -97,10 +111,10 @@ export function clamp(num: number, min: number, max: number): number { } /** - * @param comp1 - - * @param comp2 - - * @param weight1 - - * @param weight2 - + * @param comp1 - The comp1 + * @param comp2 - The comp2 + * @param weight1 - The weight1 + * @param weight2 - The weight2 * @returns the mixed value */ export function mix(comp1: number, comp2: number, weight1: number, weight2: number): number { @@ -108,7 +122,7 @@ export function mix(comp1: number, comp2: number, weight1: number, weight2: numb } /** - * @param r - + * @param r - The red component * @returns the random value in the given range */ export function randomInRangeValue(r: RangeValue): number { @@ -125,7 +139,7 @@ export function randomInRangeValue(r: RangeValue): number { } /** - * @param value - + * @param value - The value * @returns gets a value in the given range, if the range is a number, the source is returned, if the range is an object, a random value is returned */ export function getRangeValue(value: RangeValue): number { @@ -133,7 +147,7 @@ export function getRangeValue(value: RangeValue): number { } /** - * @param value - + * @param value - The value * @returns the minimum value of the range */ export function getRangeMin(value: RangeValue): number { @@ -141,7 +155,7 @@ export function getRangeMin(value: RangeValue): number { } /** - * @param value - + * @param value - The value * @returns the maximum value of the range */ export function getRangeMax(value: RangeValue): number { @@ -149,8 +163,8 @@ export function getRangeMax(value: RangeValue): number { } /** - * @param source - - * @param value - + * @param source - The source + * @param value - The value * @returns the range value with the new value */ export function setRangeValue(source: RangeValue, value?: number): RangeValue { @@ -225,9 +239,9 @@ export function degToRad(degrees: number): number { } /** - * @param direction - - * @param position - - * @param center - + * @param direction - The direction + * @param position - The position + * @param center - The center point * @returns the angle of the direction */ export function getParticleDirectionAngle( @@ -280,10 +294,10 @@ export function getParticleBaseVelocity(direction: number): Vector { } /** - * @param v1 - - * @param v2 - - * @param m1 - - * @param m2 - + * @param v1 - The v1 + * @param v2 - The v2 + * @param m1 - The m1 + * @param m2 - The m2 * @returns the velocity after collision */ export function collisionVelocity(v1: Vector, v2: Vector, m1: number, m2: number): Vector { @@ -345,21 +359,7 @@ export function calcExactPositionOrRandomFromSize(data: IPositionFromSizeParams) } /** - * Gets exact position from exact position, or a random one if not specified, based on the given size - * @param data - the data to use for calculating the position - * @returns the exact position - */ -export function calcExactPositionOrRandomFromSizeRanged(data: IRangedPositionFromSizeParams): ICoordinates { - const position = { - x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined, - y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined, - }; - - return calcExactPositionOrRandomFromSize({ size: data.size, position }); -} - -/** - * @param input - + * @param input - The input value * @returns the parsed color */ export function parseAlpha(input?: string): number { diff --git a/engine/src/Utils/OptionLoader.ts b/engine/src/Utils/OptionLoader.ts new file mode 100644 index 00000000000..c69a26c8584 --- /dev/null +++ b/engine/src/Utils/OptionLoader.ts @@ -0,0 +1,29 @@ +import type { IOptionLoader } from "../Options/Interfaces/IOptionLoader.js"; +import type { RecursivePartial } from "../Types/RecursivePartial.js"; +import { isNull } from "./TypeUtils.js"; + +export abstract class OptionLoader implements IOptionLoader { + load(data?: RecursivePartial): void { + if (isNull(data)) { + return; + } + + this.doLoad(data); + } + + protected abstract doLoad(data: RecursivePartial): void; +} + +/** + * + * @param options - The options to handle + * @param sourceOptionsArr - The sourceOptionsArr + */ +export function loadOptions( + options: IOptionLoader, + ...sourceOptionsArr: RecursivePartial[] +): void { + for (const sourceOptions of sourceOptionsArr) { + options.load(sourceOptions); + } +} diff --git a/engine/src/Utils/OptionsUtils.ts b/engine/src/Utils/OptionsUtils.ts index 360d3325f3b..13939dc11c9 100644 --- a/engine/src/Utils/OptionsUtils.ts +++ b/engine/src/Utils/OptionsUtils.ts @@ -1,38 +1,101 @@ -import type { Container } from "../Core/Container.js"; +import { OptionLoader, loadOptions } from "./OptionLoader.js"; import type { IOptionLoader } from "../Options/Interfaces/IOptionLoader.js"; -import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js"; -import { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js"; -import type { PluginManager } from "../Core/Utils/PluginManager.js"; +import type { RangeValue } from "../Types/RangeValue.js"; import type { RecursivePartial } from "../Types/RecursivePartial.js"; +import { deepExtend } from "./Utils.js"; +import { setRangeValue } from "./MathUtils.js"; + +export { OptionLoader, loadOptions }; /** - * Loads one or more partial source options into an option loader. - * @param options - Target option loader. - * @param sourceOptionsArr - Source option chunks to merge. + * + * @param obj - The object + * @param key - The key + * @param value - The value */ -export function loadOptions( - options: IOptionLoader, - ...sourceOptionsArr: RecursivePartial[] +export function loadProperty(obj: T, key: K, value: T[K] | undefined): void { + if (value !== undefined) { + obj[key] = value; + } +} + +/** + * + * @param obj - The object + * @param key - The key + * @param value - The value + */ +export function loadRangeProperty(obj: T, key: keyof T, value: RangeValue | undefined): void { + if (value !== undefined) { + (obj as Record)[key as string] = setRangeValue(value); + } +} + +/** + * + * @param obj - The object + * @param key - The key + * @param value - The value + */ +export function loadNestedProperty(obj: object, key: string, value: RecursivePartial | undefined): void { + if (value !== undefined) { + ((obj as Record)[key] as IOptionLoader).load(value); + } +} + +/** + * + * @param obj - The object + * @param key - The key + * @param value - The value + * @param factory - The factory + */ +export function loadLazyProperty( + obj: object, + key: string, + value: RecursivePartial | undefined, + factory: () => IOptionLoader, ): void { - for (const sourceOptions of sourceOptionsArr) { - options.load(sourceOptions); + if (value !== undefined) { + const objRecord = obj as Record; + + objRecord[key] ??= factory() as unknown; + (objRecord[key] as IOptionLoader).load(value); + } +} + +/** + * + * @param obj - The object + * @param key - The key + * @param value - The value + */ +export function loadExtendProperty(obj: T, key: K, value: T[K] | undefined): void { + if (value !== undefined) { + (obj as Record)[key as string] = deepExtend(obj[key] ?? {}, value); } } /** - * @param pluginManager - - * @param container - - * @param sourceOptionsArr - - * @returns the newly created {@link ParticlesOptions} object + * Loads a lazily-initialized option property from multiple sources. + * @param obj - the target options object + * @param key - the property key + * @param optionClass - the option class constructor + * @param sources - source objects to load from */ -export function loadParticlesOptions( - pluginManager: PluginManager, - container: Container, - ...sourceOptionsArr: RecursivePartial[] -): ParticlesOptions { - const options = new ParticlesOptions(pluginManager, container); +export function loadOptionProperty( + obj: object, + key: string, + optionClass: new () => IOptionLoader, + ...sources: (object | undefined)[] +): void { + const objRecord = obj as Record>; + + objRecord[key] ??= new optionClass(); - loadOptions(options, ...sourceOptionsArr); + const target = objRecord[key]; - return options; + for (const source of sources) { + target.load((source as Record | undefined> | undefined)?.[key]); + } } diff --git a/engine/src/Utils/ParticlesOptionsLoader.ts b/engine/src/Utils/ParticlesOptionsLoader.ts new file mode 100644 index 00000000000..79d77b135c2 --- /dev/null +++ b/engine/src/Utils/ParticlesOptionsLoader.ts @@ -0,0 +1,24 @@ +import type { Container } from "../Core/Container.js"; +import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js"; +import { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js"; +import type { PluginManager } from "../Core/Utils/PluginManager.js"; +import type { RecursivePartial } from "../Types/RecursivePartial.js"; +import { loadOptions } from "./OptionLoader.js"; + +/** + * @param pluginManager - The plugin manager + * @param container - The container to handle + * @param sourceOptionsArr - The sourceOptionsArr + * @returns the newly created {@link ParticlesOptions} object + */ +export function loadParticlesOptions( + pluginManager: PluginManager, + container: Container, + ...sourceOptionsArr: RecursivePartial[] +): ParticlesOptions { + const options = new ParticlesOptions(pluginManager, container); + + loadOptions(options, ...sourceOptionsArr); + + return options; +} diff --git a/engine/src/Utils/Utils.ts b/engine/src/Utils/Utils.ts index 9561df5cfb2..489f26f3f82 100644 --- a/engine/src/Utils/Utils.ts +++ b/engine/src/Utils/Utils.ts @@ -1,166 +1,24 @@ import type { ICoordinates, ICoordinatesWithMode } from "../Core/Interfaces/ICoordinates.js"; import type { IDimension, IDimensionWithMode } from "../Core/Interfaces/IDimension.js"; -import { - clamp, - collisionVelocity, - getDistances, - getRandom, - getRangeMax, - getRangeMin, - getRangeValue, - randomInRangeValue, -} from "./MathUtils.js"; -import { half, millisecondsToSeconds, percentDenominator } from "../Core/Utils/Constants.js"; +import { collisionVelocity, getDistances, getRandom, getRangeValue } from "./MathUtils.js"; import { isArray, isBoolean, isNull, isObject } from "./TypeUtils.js"; -import { AnimationMode } from "../Enums/Modes/AnimationMode.js"; -import { AnimationStatus } from "../Enums/AnimationStatus.js"; import type { Container } from "../Core/Container.js"; -import { DestroyType } from "../Enums/Types/DestroyType.js"; import type { GenericInitializer } from "../Types/EngineInitializers.js"; import type { IBounds } from "../Core/Interfaces/IBounds.js"; import type { ICircleBouncer } from "../Core/Interfaces/ICircleBouncer.js"; -import type { IDelta } from "../Core/Interfaces/IDelta.js"; -import type { IParticleNumericValueAnimation } from "../Core/Interfaces/IParticleValueAnimation.js"; import { OutModeDirection } from "../Enums/Directions/OutModeDirection.js"; import type { Particle } from "../Core/Particle.js"; import { PixelMode } from "../Enums/Modes/PixelMode.js"; -import type { RangedAnimationValueWithRandom } from "../Options/Classes/ValueWithRandom.js"; import type { SingleOrMultiple } from "../Types/SingleOrMultiple.js"; -import { StartValueType } from "../Enums/Types/StartValueType.js"; import { Vector } from "../Core/Utils/Vectors.js"; +import { percentDenominator } from "../Core/Utils/Constants.js"; -const minRadius = 0, - minMemoizeSize = 0; - -/** - * Memoize function options - */ -export interface MemoizeOptions { - /** Custom key function for cache lookups */ - keyFn?: (args: TArgs) => string; - /** Maximum cache size */ - maxSize?: number; - /** Time-to-live in milliseconds */ - ttlMs?: number; -} - -/** - * Memoize a function's results with optional bounded size and TTL. - * - * Backward compatible: callers using `memoize(fn)` keep the same semantics. - * Options: \{ maxSize?: number, ttlMs?: number, keyFn?: (args) =\> string \} - * Default keyer uses a stable serialization of the arguments (sorted keys) - * which makes equal-shaped objects produce the same cache key. - * - * See: .planning/research/PITFALLS.md for tradeoffs of keying/eviction strategies. - * @param fn - - * @param options - - * @returns the memoized function - */ -export function memoize( - fn: (...args: TArgs) => Result, - options?: MemoizeOptions, -): (...args: TArgs) => Result { - const cache = new Map(), - maxSize = options?.maxSize, - ttlMs = options?.ttlMs, - keyFn = options?.keyFn, - stableStringify = (obj: unknown, seen = new WeakSet()): string => { - if (obj === null) { - return "null"; - } - - const t = typeof obj; - - if (t === "undefined") { - return "undefined"; - } - - if (t === "number" || t === "boolean" || t === "string") { - return JSON.stringify(obj); - } - - if (t === "function") { - try { - const fn = obj as unknown as (...args: unknown[]) => unknown; - - return fn.toString(); - } catch { - return '"[Function]"'; - } - } - - if (t === "symbol") { - try { - return (obj as symbol).toString(); - } catch { - // Avoid default object stringification which yields "[object Object]". - return '"[Symbol]"'; - } - } - - if (Array.isArray(obj)) { - return `[${(obj as unknown[]).map(i => stableStringify(i, seen)).join(",")}]`; - } - - // object - if (seen.has(obj as object)) { - return '"[Circular]"'; - } - - seen.add(obj as object); - - const keys = Object.keys(obj as Record).sort(); - - return `{${keys.map(k => `${JSON.stringify(k)}:${stableStringify((obj as Record)[k], seen)}`).join(",")}}`; - }, - defaultKeyer = (args: TArgs): string => stableStringify(args), - makeKey = (args: TArgs): string => (keyFn ? keyFn(args) : defaultKeyer(args)), - ensureBounds = (): void => { - if (typeof maxSize === "number" && maxSize >= minMemoizeSize) { - while (cache.size > maxSize) { - // evict oldest entry (Map preserves insertion order) - const firstKey = cache.keys().next().value; - - if (firstKey === undefined) break; - - cache.delete(firstKey); - } - } - }; - - return (...args: TArgs): Result => { - const key = makeKey(args), - now = Date.now(), - entry = cache.get(key); - - if (entry !== undefined) { - if (ttlMs && now - entry.ts > ttlMs) { - // expired - cache.delete(key); - } else { - // refresh insertion order: delete then set to move to newest - cache.delete(key); - cache.set(key, { value: entry.value, ts: entry.ts }); - - return entry.value; - } - } - - const result = fn(...args); - - cache.set(key, { value: result, ts: now }); - - ensureBounds(); - - return result; - }; -} +const minRadius = 0; /** * @returns true if the environment supports matchMedia feature */ -export function hasMatchMedia(): boolean { +function hasMatchMedia(): boolean { return typeof matchMedia !== "undefined"; } @@ -184,21 +42,6 @@ export function safeMatchMedia(query: string): MediaQueryList | undefined { return matchMedia(query); } -/** - * Safely creates an IntersectionObserver if supported - * @param callback - the observer callback - * @returns the intersection observer, if supported - */ -export function safeIntersectionObserver( - callback: (records: IntersectionObserverEntry[]) => void, -): IntersectionObserver | undefined { - if (typeof IntersectionObserver === "undefined") { - return; - } - - return new IntersectionObserver(callback); -} - /** * Safely creates a MutationObserver if supported * @param callback - the observer callback @@ -222,15 +65,6 @@ export function isInArray(value: T, array: SingleOrMultiple): boolean { return value === array || (isArray(array) && array.includes(value)); } -/** - * Returns a random array index - * @param array - the array to get the index from - * @returns a random array index - */ -export function arrayRandomIndex(array: unknown[]): number { - return Math.floor(getRandom() * array.length); -} - /** * Returns a random object from the given array * @param array - the array to get the object from @@ -239,7 +73,7 @@ export function arrayRandomIndex(array: unknown[]): number { * @returns the item found */ export function itemFromArray(array: T[], index?: number, useIndex = true): T | undefined { - return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)]; + return array[index !== undefined && useIndex ? index % array.length : Math.floor(getRandom() * array.length)]; } /** @@ -442,8 +276,8 @@ export function circleBounce(p1: ICircleBouncer, p2: ICircleBouncer): void { } /** - * @param obj - - * @param callback - + * @param obj - The object + * @param callback - The callback * @returns the transformed SingleOrMultiple data */ export function executeOnSingleOrMultiple( @@ -456,9 +290,9 @@ export function executeOnSingleOrMultiple( } /** - * @param obj - - * @param index - - * @param useIndex - + * @param obj - The object + * @param index - The index + * @param useIndex - The useIndex * @returns the selected item */ export function itemFromSingleOrMultiple( @@ -470,109 +304,8 @@ export function itemFromSingleOrMultiple( } /** - * @param obj - - * @param callback - - * @returns the item found, if present - */ -export function findItemFromSingleOrMultiple( - obj: SingleOrMultiple, - callback: (obj: T, index: number) => boolean, -): T | undefined { - if (isArray(obj)) { - return obj.find((t, index) => callback(t, index)); - } - - const defaultIndex = 0; - - return callback(obj, defaultIndex) ? obj : undefined; -} - -/** - * @param options - - * @param pxRatio - - * @returns the animation init object - */ -export function initParticleNumericAnimationValue( - options: RangedAnimationValueWithRandom, - pxRatio: number, -): IParticleNumericValueAnimation { - const valueRange = options.value, - animationOptions = options.animation, - res: IParticleNumericValueAnimation = { - delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds, - enable: animationOptions.enable, - value: getRangeValue(options.value) * pxRatio, - max: getRangeMax(valueRange) * pxRatio, - min: getRangeMin(valueRange) * pxRatio, - loops: 0, - maxLoops: getRangeValue(animationOptions.count), - time: 0, - }, - decayOffset = 1; - - if (animationOptions.enable) { - res.decay = decayOffset - getRangeValue(animationOptions.decay); - - switch (animationOptions.mode) { - case AnimationMode.increase: - res.status = AnimationStatus.increasing; - - break; - case AnimationMode.decrease: - res.status = AnimationStatus.decreasing; - - break; - - case AnimationMode.random: - res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing; - - break; - default: - // no-op - break; - } - - const autoStatus = animationOptions.mode === AnimationMode.auto; - - switch (animationOptions.startValue) { - case StartValueType.min: - res.value = res.min; - - if (autoStatus) { - res.status = AnimationStatus.increasing; - } - - break; - - case StartValueType.max: - res.value = res.max; - - if (autoStatus) { - res.status = AnimationStatus.decreasing; - } - - break; - - case StartValueType.random: - default: - res.value = randomInRangeValue(res); - - if (autoStatus) { - res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing; - } - - break; - } - } - - res.initialValue = res.value; - - return res; -} - -/** - * @param positionOrSize - - * @param canvasSize - + * @param positionOrSize - The positionOrSize + * @param canvasSize - The canvasSize * @returns the calculated position or size */ function getPositionOrSize( @@ -603,159 +336,14 @@ function getPositionOrSize( } /** - * @param position - - * @param canvasSize - + * @param position - The position + * @param canvasSize - The canvasSize * @returns the calculated position */ export function getPosition(position: ICoordinatesWithMode, canvasSize: IDimension): ICoordinates { return getPositionOrSize(position, canvasSize) as ICoordinates; } -/** - * @param size - - * @param canvasSize - - * @returns the calculated size - */ -export function getSize(size: IDimensionWithMode, canvasSize: IDimension): IDimension { - return getPositionOrSize(size, canvasSize) as IDimension; -} - -/** - * @param particle - - * @param destroyType - - * @param value - - * @param minValue - - * @param maxValue - - */ -function checkDestroy( - particle: Particle, - destroyType: DestroyType | keyof typeof DestroyType, - value: number, - minValue: number, - maxValue: number, -): void { - switch (destroyType) { - case DestroyType.max: - if (value >= maxValue) { - particle.destroy(); - } - - break; - case DestroyType.min: - if (value <= minValue) { - particle.destroy(); - } - - break; - default: - // no-op - break; - } -} - -/** - * Updates a numeric particle animation state. - * @param particle - Particle owning the animated value. - * @param data - Numeric animation state. - * @param changeDirection - Whether the animation should ping-pong. - * @param destroyType - Destroy behavior applied at bounds. - * @param delta - Frame delta data. - */ -export function updateAnimation( - particle: Particle, - data: IParticleNumericValueAnimation, - changeDirection: boolean, - destroyType: DestroyType | keyof typeof DestroyType, - delta: IDelta, -): void { - const minLoops = 0, - minDelay = 0, - identity = 1, - minVelocity = 0, - minDecay = 1; - - if ( - particle.destroyed || - !data.enable || - ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) - ) { - return; - } - - const velocity = (data.velocity ?? minVelocity) * delta.factor, - minValue = data.min, - maxValue = data.max, - decay = data.decay ?? minDecay; - - data.time ??= 0; - - if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) { - data.time += delta.value; - } - - if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) { - return; - } - - // Update value based on current status - switch (data.status) { - case AnimationStatus.increasing: - data.value += velocity; - break; - case AnimationStatus.decreasing: - data.value -= velocity; - break; - default: - // no-op - break; - } - - // Apply decay to velocity - if (data.velocity && decay !== identity) { - data.velocity *= decay; - } - - // Handle animation state and manage loop count - switch (data.status) { - case AnimationStatus.increasing: - if (data.value >= maxValue) { - if (changeDirection) { - data.status = AnimationStatus.decreasing; - } else { - data.value -= maxValue; - } - - data.loops ??= minLoops; - data.loops++; - } - break; - case AnimationStatus.decreasing: - if (data.value <= minValue) { - if (changeDirection) { - data.status = AnimationStatus.increasing; - } else { - data.value += maxValue; - } - - data.loops ??= minLoops; - data.loops++; - } - break; - default: - // no-op - break; - } - - // Check if particle should be destroyed based on destroyType (before clamping) - checkDestroy(particle, destroyType, data.value, minValue, maxValue); - - // Clamp value only if particle is still alive - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!particle.destroyed) { - data.value = clamp(data.value, minValue, maxValue); - } -} - /** * a function to clone a style object * @param style - the style to clone @@ -789,46 +377,49 @@ export function cloneStyle(style: Partial): CSSStyleDeclara return clonedStyle; } +let _cachedZIndex: number | undefined, _cachedStyle: CSSStyleDeclaration | undefined; + /** - * Computes full-screen canvas style for a given z-index. + * Full-screen canvas style builder with inline cache. * @param zIndex - The z-index value. * @returns Full-screen CSS style declaration. */ -function computeFullScreenStyle(zIndex: number): CSSStyleDeclaration { - const fullScreenStyle = safeDocument().createElement("div").style, - radix = 10, - style: Record = { - width: "100%", - height: "100%", - margin: "0", - padding: "0", - borderWidth: "0", - position: "fixed", - zIndex: zIndex.toString(radix), - "z-index": zIndex.toString(radix), - top: "0", - left: "0", - "pointer-events": "none", - }; - - for (const key in style) { - const value = style[key]; +export function getFullScreenStyle(zIndex: number): CSSStyleDeclaration { + if (_cachedZIndex !== zIndex || !_cachedStyle) { + _cachedZIndex = zIndex; + + const fullScreenStyle = safeDocument().createElement("div").style, + radix = 10, + style: Record = { + width: "100%", + height: "100%", + margin: "0", + padding: "0", + borderWidth: "0", + position: "fixed", + zIndex: zIndex.toString(radix), + "z-index": zIndex.toString(radix), + top: "0", + left: "0", + "pointer-events": "none", + }; + + for (const key in style) { + const value = style[key]; + + if (value === undefined) { + continue; + } - if (value === undefined) { - continue; + fullScreenStyle.setProperty(key, value); } - fullScreenStyle.setProperty(key, value); + _cachedStyle = fullScreenStyle; } - return fullScreenStyle; + return _cachedStyle; } -/** - * Memoized full-screen style builder. - */ -export const getFullScreenStyle = memoize(computeFullScreenStyle); - /** * Manage the given event listeners * @param element - the event listener receiver @@ -862,10 +453,10 @@ export function manageListener( } /** - * @param container - - * @param map - - * @param initializers - - * @param force - + * @param container - The container to handle + * @param map - The map + * @param initializers - The initializers + * @param force - The force * @returns the items from the given initializer */ export async function getItemsFromInitializer>( @@ -886,10 +477,10 @@ export async function getItemsFromInitializer>( diff --git a/engine/src/browser.ts b/engine/src/browser.ts index 899fb5f2e2d..1fab274f821 100644 --- a/engine/src/browser.ts +++ b/engine/src/browser.ts @@ -1,10 +1,22 @@ +import { getLogger, setLogger } from "./Utils/LogUtils.js"; +import { getRandom, getRandomFn, setRandom } from "./Utils/MathUtils.js"; import { tsParticles } from "./index.js"; const globalObject = globalThis as typeof globalThis & { __tsParticlesInternals?: Record; + getParticlesLogger?: typeof getLogger; + getParticlesRandom?: typeof getRandom; + getParticlesRandomFn?: typeof getRandomFn; + setParticlesLogger?: typeof setLogger; + setParticlesRandom?: typeof setRandom; tsParticles?: typeof tsParticles; }; globalObject.__tsParticlesInternals = globalObject.__tsParticlesInternals ?? {}; globalObject.tsParticles = tsParticles; +globalObject.getParticlesLogger = getLogger; +globalObject.setParticlesLogger = setLogger; +globalObject.getParticlesRandom = getRandom; +globalObject.getParticlesRandomFn = getRandomFn; +globalObject.setParticlesRandom = setRandom; export * from "./index.js"; diff --git a/engine/src/exports.ts b/engine/src/exports.ts index 884ca305e1e..d2753b06c28 100644 --- a/engine/src/exports.ts +++ b/engine/src/exports.ts @@ -16,7 +16,7 @@ export * from "./Enums/Types/DestroyType.js"; export * from "./Enums/Types/GradientType.js"; export * from "./Enums/Types/ParticleOutType.js"; export * from "./Enums/Types/StartValueType.js"; -export * from "./Enums/Types/EasingType.js"; + export * from "./Enums/Types/EventType.js"; export * from "./Enums/AnimationStatus.js"; @@ -62,10 +62,11 @@ export * from "./Options/Classes/Particles/ZIndex/ZIndex.js"; export * from "./Options/Classes/ResizeEvent.js"; export * from "./Options/Classes/ValueWithRandom.js"; -export * from "./Utils/CanvasUtils.js"; export * from "./Utils/ColorUtils.js"; export * from "./Utils/LogUtils.js"; export * from "./Utils/MathUtils.js"; +export * from "./Utils/OptionLoader.js"; +export * from "./Utils/ParticlesOptionsLoader.js"; export * from "./Utils/OptionsUtils.js"; export * from "./Utils/Utils.js"; export * from "./Utils/TypeUtils.js"; diff --git a/engine/src/test-debug.ts b/engine/src/test-debug.ts new file mode 100644 index 00000000000..8de24e53382 --- /dev/null +++ b/engine/src/test-debug.ts @@ -0,0 +1,4 @@ +import type { RangeValue } from "./Types/RangeValue.js"; +export class TestClass { + count: RangeValue = 0; +} diff --git a/integrations/mcp-server/.dockerignore b/integrations/mcp-server/.dockerignore new file mode 100644 index 00000000000..9a602696380 --- /dev/null +++ b/integrations/mcp-server/.dockerignore @@ -0,0 +1,9 @@ +.git +.gitignore +node_modules +dist +*.md +.vscode +.idea +__tests__ +*.test.ts diff --git a/integrations/mcp-server/.env.example b/integrations/mcp-server/.env.example new file mode 100644 index 00000000000..6dd68f3948f --- /dev/null +++ b/integrations/mcp-server/.env.example @@ -0,0 +1,2 @@ +# Port the MCP server listens on (default: 3000) +SERVER_PORT=3000 diff --git a/integrations/mcp-server/CHANGELOG.md b/integrations/mcp-server/CHANGELOG.md new file mode 100644 index 00000000000..a01bd2b128e --- /dev/null +++ b/integrations/mcp-server/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- after publish ([32eda42](https://github.com/tsparticles/tsparticles/commit/32eda425bf5f786c2b62efae8e92f95acf523260)) +- working on an mcp server for AI integrations for creating options and other ([c233bf4](https://github.com/tsparticles/tsparticles/commit/c233bf4418a48e0c3a7a247f8d2b0ea9ce1d536e)) diff --git a/integrations/mcp-server/Dockerfile b/integrations/mcp-server/Dockerfile new file mode 100644 index 00000000000..8b34c2f130f --- /dev/null +++ b/integrations/mcp-server/Dockerfile @@ -0,0 +1,28 @@ +FROM node:22-alpine AS build +RUN corepack enable +WORKDIR /app + +# Workspace root files +COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ + +# Package files +COPY integrations/mcp-server/package.json integrations/mcp-server/tsconfig.json ./integrations/mcp-server/ +COPY integrations/mcp-server/src/ ./integrations/mcp-server/src/ + +# Install only this package's dependencies +RUN pnpm install --frozen-lockfile --filter @tsparticles/mcp-server + +# Build +RUN pnpm --filter @tsparticles/mcp-server exec tsc + +# Prune to production deps only +RUN pnpm --filter @tsparticles/mcp-server deploy --prod /tmp/app + +FROM node:22-alpine +RUN addgroup --system --gid 1001 app && adduser --system --uid 1001 app +WORKDIR /app +COPY --from=build /tmp/app ./ +USER app +EXPOSE 3000 +ENV PORT=3000 +CMD ["node", "dist/index.js", "--port", "3000"] diff --git a/integrations/mcp-server/LICENSE b/integrations/mcp-server/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/integrations/mcp-server/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/integrations/mcp-server/README.md b/integrations/mcp-server/README.md new file mode 100644 index 00000000000..290c64dc125 --- /dev/null +++ b/integrations/mcp-server/README.md @@ -0,0 +1,157 @@ +# @tsparticles/mcp-server + +[MCP (Model Context Protocol)](https://modelcontextprotocol.io) server for [tsParticles](https://particles.js.org). Lets AI assistants inspect package catalogs, suggest required plugins and bundles from options, and generate tsParticles configurations from natural language. + +## Quick Start (local) + +```bash +npx @tsparticles/mcp-server +``` + +The server runs on stdio and can be connected to any MCP-compatible client: + +- [Claude Desktop](https://claude.ai/download) +- [Cursor](https://cursor.sh) +- [VS Code with GitHub Copilot](https://code.visualstudio.com/docs/copilot/chat/mcp) +- Any custom MCP client + +### Claude Desktop configuration + +Add this to your `claude_desktop_config.json`: + +```json +{ + "mcpServers": { + "tsparticles": { + "command": "npx", + "args": ["@tsparticles/mcp-server"] + } + } +} +``` + +### Tools + +| Tool | Description | +|--------------------|---------------------------------------------------------------------------------| +| `suggest_plugins` | Given a tsParticles options object, returns the npm packages and imports needed | +| `list_packages` | Lists available packages, optionally filtered by category or search query | +| `get_package_info` | Returns detailed info about a specific package | + +### Resources + +| URI | Description | +|-------------------------------|-----------------------------| +| `tsparticles://packages` | Complete package catalog | +| `tsparticles://options/guide` | Options structure reference | +| `tsparticles://bundles` | Bundle selection guide | + +### Prompt + +| Name | Description | +|--------------------|-------------------------------------------------------------------| +| `generate-options` | Generates tsParticles options from a natural language description | + +## Deploy (remote HTTP) + +The server can also run as an HTTP endpoint, accessible by any MCP client that supports SSE. + +### Option 1: Direct access (no tunnel) + +```bash +# Start on port 3000 +npx @tsparticles/mcp-server --port 3000 +# Health check: http://localhost:3000/health +# MCP endpoint: http://localhost:3000/mcp +``` + +### Option 2: Docker + +```bash +# Build and start +docker compose up -d + +# Or with Cloudflare Tunnel for public HTTPS access +docker compose --profile tunnel up +``` + +This prints a temporary URL like `https://random.trycloudflare.com`. Configure your MCP client with `https://random.trycloudflare.com/mcp` as the endpoint. + +### Option 3: Docker + Synology Reverse Proxy + +If you have a Synology NAS: + +1. Build the image and start the container: + +```bash +docker compose up -d +``` + +2. On DSM, go to **Control Panel > Application Portal > Reverse Proxy** and add: + +| Field | Value | +|----------------------|-----------------------------| +| Source protocol | HTTPS | +| Source hostname | your-nas-domain.example.com | +| Source port | 8443 | +| Enable HSTS | yes | +| Destination protocol | HTTP | +| Destination hostname | localhost | +| Destination port | 3000 | + +3. Configure your MCP client with `https://your-nas-domain.example.com:8443/mcp`. + +### Option 4: Docker + Cloudflare Tunnel (permanent) + +For a permanent URL (instead of the random `trycloudflare.com`): + +1. Install `cloudflared` and log in: + +```bash +docker run cloudflare/cloudflared tunnel login +``` + +2. Create a tunnel and route your domain: + +```bash +cloudflared tunnel create tsparticles-mcp +cloudflared tunnel route dns tsparticles-mcp mcp.yourdomain.com +``` + +3. Create a config file: + +```yaml +# config.yml +tunnel: tsparticles-mcp +credentials-file: /root/.cloudflared/tunnel.json +ingress: + - hostname: mcp.yourdomain.com + service: http://localhost:3000 + - service: http_status:404 +``` + +4. Run: + +```bash +docker compose up -d mcp-server +cloudflared tunnel run tsparticles-mcp +``` + +Your MCP endpoint will be `https://mcp.yourdomain.com/mcp`. + +## Client endpoint configuration + +When connecting to a remote HTTP server, use the endpoint URL with `/mcp` path: + +``` +https://your-server.example.com/mcp +``` + +## Build from source + +```bash +pnpm install +pnpm run build +pnpm run start # stdio mode +pnpm run start:http # HTTP mode on port 3000 +``` diff --git a/integrations/mcp-server/docker-compose.yml b/integrations/mcp-server/docker-compose.yml new file mode 100644 index 00000000000..596dbc35642 --- /dev/null +++ b/integrations/mcp-server/docker-compose.yml @@ -0,0 +1,23 @@ +services: + mcp-server: + build: + context: ../.. + dockerfile: integrations/mcp-server/Dockerfile + ports: + - "${SERVER_PORT:-3000}:3000" + restart: unless-stopped + environment: + - PORT=3000 + + # Cloudflare Tunnel — exposes the server via HTTPS without opening firewall ports. + # docker compose --profile tunnel up + # Prints a temporary URL like https://random.trycloudflare.com. + # For a permanent tunnel: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/ + cloudflared: + image: cloudflare/cloudflared:latest + command: tunnel --url http://mcp-server:3000 + depends_on: + - mcp-server + restart: unless-stopped + profiles: + - tunnel diff --git a/integrations/mcp-server/package.json b/integrations/mcp-server/package.json new file mode 100644 index 00000000000..e19cc308671 --- /dev/null +++ b/integrations/mcp-server/package.json @@ -0,0 +1,53 @@ +{ + "name": "@tsparticles/mcp-server", + "version": "4.2.0", + "description": "MCP server for tsParticles - generate options from natural language and suggest required plugins", + "homepage": "https://particles.js.org", + "type": "module", + "main": "./dist/index.js", + "bin": { + "tsparticles-mcp": "./dist/index.js" + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc", + "dev": "tsc --watch", + "start": "node dist/index.js", + "start:http": "node dist/index.js --port 3000", + "test": "vitest run", + "test:watch": "vitest", + "prepack": "pnpm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "integrations/mcp-server" + }, + "keywords": [ + "tsparticles", + "mcp", + "model-context-protocol", + "ai", + "llm", + "particles" + ], + "author": "Matteo Bruni", + "license": "MIT", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@modelcontextprotocol/sdk": "^1.29.0", + "zod": "^4.4.3" + }, + "devDependencies": { + "@types/node": "^25.9.2", + "typescript": "^6.0.3", + "vitest": "4.1.7" + } +} diff --git a/integrations/mcp-server/scripts/extractNeedsPlugin.ts b/integrations/mcp-server/scripts/extractNeedsPlugin.ts new file mode 100644 index 00000000000..2d798294dbc --- /dev/null +++ b/integrations/mcp-server/scripts/extractNeedsPlugin.ts @@ -0,0 +1,186 @@ +import { readFileSync, readdirSync, existsSync, writeFileSync, mkdirSync } from "fs"; +import { join, relative, dirname } from "path"; +import { fileURLToPath } from "url"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const repoRoot = join(__dirname, "..", "..", ".."); + +const scanDirs = ["plugins", "interactions", "shapes", "updaters", "effects", "paths", "colors", "easings", "emitter-shapes"]; + +interface Entry { + optionPath: string; + packageName: string; + sourceFile: string; +} + +const entries: Entry[] = []; + +function extractBody(filePath: string): string | null { + const content = readFileSync(filePath, "utf-8"); + + const defRegex = /(?:^|\n)\s*needsPlugin\s*\(/m; + const defMatch = content.match(defRegex); + if (!defMatch) return null; + + const parenStart = defMatch.index! + defMatch[0].length; + + let i = parenStart; + let parenDepth = 1; + while (i < content.length && parenDepth > 0) { + if (content[i] === "(") parenDepth++; + else if (content[i] === ")") parenDepth--; + i++; + } + + while (i < content.length && content[i] !== "{") { + if (content[i] === ";") return null; + i++; + } + + if (i >= content.length || content[i] !== "{") return null; + + const braceStart = i + 1; + let depth = 1; + let j = braceStart; + while (j < content.length && depth > 0) { + if (content[j] === "{") depth++; + else if (content[j] === "}") depth--; + j++; + } + + return content.slice(braceStart, j - 1); +} + +const skipWords = new Set([ + "options", "return", "false", "true", "null", "undefined", "this", "length", + "if", "else", "const", "let", "var", "function", "isArray", "enable", "type", + "import", "export", "default", "from", "particles", "interactivity", +]); + +function extractOptionKey(filePath: string): string | null { + const body = extractBody(filePath); + if (!body) return null; + + // Pure "return true" with no conditions = always-on plugin + const trimmedBody = body.trim(); + if (/^return\s+true\s*;?\s*$/.test(trimmedBody)) return null; + + // Collect all options?.X and options.X references + const candidates = new Map(); + const re = /options\s*\??\s*\.\s*(\w+)/g; + let m: RegExpExecArray | null; + while ((m = re.exec(body)) !== null) { + const key = m[1]; + if (!skipWords.has(key)) { + candidates.set(key, (candidates.get(key) || 0) + 1); + } + } + + // Pick the most frequent non-common key + let bestKey = ""; + let bestCount = 0; + for (const [key, count] of candidates) { + if (count > bestCount) { + bestCount = count; + bestKey = key; + } + } + + return bestKey || null; +} + +function getPackageName(dir: string): string | null { + const pkgPath = join(dir, "package.json"); + if (!existsSync(pkgPath)) return null; + try { + const pkg = JSON.parse(readFileSync(pkgPath, "utf-8")); + return pkg.name || null; + } catch { + return null; + } +} + +function findTsFiles(dir: string): string[] { + const results: string[] = []; + if (!existsSync(dir)) return results; + for (const entry of readdirSync(dir, { withFileTypes: true })) { + const full = join(dir, entry.name); + if (entry.isDirectory()) { + results.push(...findTsFiles(full)); + } else if (entry.isFile() && entry.name.endsWith(".ts")) { + results.push(full); + } + } + return results; +} + +function scanDirectory(categoryDir: string) { + if (!existsSync(categoryDir)) return; + for (const entry of readdirSync(categoryDir, { withFileTypes: true })) { + const fullPath = join(categoryDir, entry.name); + if (!entry.isDirectory()) continue; + const srcDir = join(fullPath, "src"); + const hasPkg = existsSync(join(fullPath, "package.json")); + + if (hasPkg && existsSync(srcDir)) { + // It's a package with src dir + const pkgName = getPackageName(fullPath); + if (!pkgName) continue; + + const srcFiles = findTsFiles(srcDir); + for (const file of srcFiles) { + const key = extractOptionKey(file); + if (key) { + entries.push({ + optionPath: key, + packageName: pkgName, + sourceFile: relative(repoRoot, file), + }); + } + } + } else if (!hasPkg) { + // No package.json → might be a category dir, recurse + scanDirectory(fullPath); + } + } +} + +for (const dir of scanDirs) { + scanDirectory(join(repoRoot, dir)); +} + +entries.sort((a, b) => a.optionPath.localeCompare(b.optionPath)); + +const output = `// Auto-generated by scripts/extractNeedsPlugin.ts +// Generated on ${new Date().toISOString().split("T")[0]} +// Run: npx tsx scripts/extractNeedsPlugin.ts + +export interface NeedsPluginEntry { + optionKeys: string[]; + optionPaths: string[]; +} + +export const needsPluginMap: Record = { +${entries.map(e => { + const paths = JSON.stringify([e.optionPath]); + return ` "${e.packageName}": { + optionKeys: [], + optionPaths: ${paths}, + },`; +}).join("\n")} +}; +`; + +const outDir = join(__dirname, "..", "src", "registry"); +if (!existsSync(outDir)) mkdirSync(outDir, { recursive: true }); +writeFileSync(join(outDir, "needsPluginMap.ts"), output, "utf-8"); + +console.log(`\nExtracted ${entries.length} needsPlugin entries.`); +if (entries.length === 0) { + console.log("No entries found! Check scanDirs paths."); + process.exit(1); +} +for (const e of entries) { + console.log(` ${e.packageName.padEnd(45)} -> options?.${e.optionPath.padEnd(20)} (${e.sourceFile})`); +} diff --git a/integrations/mcp-server/src/index.ts b/integrations/mcp-server/src/index.ts new file mode 100644 index 00000000000..0a8b437891c --- /dev/null +++ b/integrations/mcp-server/src/index.ts @@ -0,0 +1,437 @@ +#!/usr/bin/env node + +import { Server } from "@modelcontextprotocol/sdk/server/index.js"; +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; +import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; +import { + CallToolRequestSchema, + ListToolsRequestSchema, + ListResourcesRequestSchema, + ReadResourceRequestSchema, + ListPromptsRequestSchema, + GetPromptRequestSchema, +} from "@modelcontextprotocol/sdk/types.js"; + +import { suggestPlugins } from "./tools/suggestPlugins.js"; +import { listPackages } from "./tools/listPackages.js"; +import { getPackageInfo } from "./tools/getPackageInfo.js"; +import { getPackageCatalogResource } from "./resources/packageCatalog.js"; +import { getOptionsGuideResource } from "./resources/optionsGuide.js"; +import { getBundlesGuideResource } from "./resources/bundlesGuide.js"; +import { generateOptionsPrompt } from "./prompts/generateOptions.js"; +import { diagnoseIssues } from "./tools/diagnoseIssues.js"; + +import { createServer } from "node:http"; +import { randomUUID } from "node:crypto"; + +const PACKAGE_VERSION = "0.1.0"; + +function parseArgs() { + const args = process.argv.slice(2); + const result: { mode: "stdio" | "http"; port?: number } = { mode: "stdio" }; + + for (let i = 0; i < args.length; i++) { + if (args[i] === "--stdio") { + result.mode = "stdio"; + } else if (args[i] === "--port" && i + 1 < args.length) { + result.mode = "http"; + result.port = parseInt(args[++i], 10); + } else if (args[i].startsWith("--port=")) { + result.mode = "http"; + result.port = parseInt(args[i].split("=")[1], 10); + } + } + + return result; +} + +const server = new Server( + { + name: "@tsparticles/mcp-server", + version: PACKAGE_VERSION, + }, + { + capabilities: { + tools: {}, + resources: {}, + prompts: {}, + }, + }, +); + +// ── Tools ────────────────────────────────────────────────────────── + +server.setRequestHandler(ListToolsRequestSchema, async () => { + return { + tools: [ + { + name: "suggest_plugins", + description: + "Given a tsParticles options object, suggests the npm packages and imports required to use those options. Detects which plugins, interactions, updaters, and shapes are needed.", + inputSchema: { + type: "object", + properties: { + options: { + type: "object", + description: "The tsParticles options object (ISourceOptions)", + }, + }, + required: ["options"], + }, + }, + { + name: "list_packages", + description: + "List all available tsParticles packages, optionally filtered by category or search query. Categories: bundle, plugin, interaction-external, interaction-particles, interaction-light, updater, shape, effect, path, emitter-shape, color, easing, preset.", + inputSchema: { + type: "object", + properties: { + category: { + type: "string", + description: "Filter by category (optional)", + enum: [ + "bundle", + "plugin", + "interaction-external", + "interaction-particles", + "updater", + "shape", + "effect", + "path", + "emitter-shape", + "color", + "easing", + "preset", + ], + }, + query: { + type: "string", + description: "Search query for package name or description", + }, + }, + }, + }, + { + name: "get_package_info", + description: + "Get detailed information about a specific tsParticles package, including its category, load function, option keys, and which bundles include it.", + inputSchema: { + type: "object", + properties: { + package: { + type: "string", + description: + "Package name (e.g., @tsparticles/plugin-absorbers, @tsparticles/slim)", + }, + }, + required: ["package"], + }, + }, + { + name: "diagnose_issues", + description: + "Analyze tsParticles options for common configuration problems: missing plugins, invisible particles, broken interactivity, incorrect structure, and performance issues. Returns a list of issues with severity, explanation, and suggested fixes.", + inputSchema: { + type: "object", + properties: { + options: { + type: "object", + description: "The tsParticles options object (ISourceOptions) to analyze", + }, + }, + required: ["options"], + }, + }, + ], + }; +}); + +server.setRequestHandler(CallToolRequestSchema, async (request) => { + const { name, arguments: args } = request.params; + + switch (name) { + case "suggest_plugins": { + const options = args?.options as Record; + if (!options) { + return { + content: [ + { + type: "text", + text: "Missing required argument: options", + }, + ], + isError: true, + }; + } + const result = suggestPlugins(options); + return { + content: [ + { + type: "text", + text: JSON.stringify(result, null, 2), + }, + ], + }; + } + + case "list_packages": { + const filters: { category?: string; query?: string } = {}; + if (args?.category) filters.category = args.category as string; + if (args?.query) filters.query = args.query as string; + const result = listPackages(filters); + return { + content: [ + { + type: "text", + text: JSON.stringify(result, null, 2), + }, + ], + }; + } + + case "get_package_info": { + const pkg = args?.package as string; + if (!pkg) { + return { + content: [ + { + type: "text", + text: "Missing required argument: package", + }, + ], + isError: true, + }; + } + const result = getPackageInfo(pkg); + if (!result) { + return { + content: [ + { + type: "text", + text: `Package "${pkg}" not found. Use list_packages to see all available packages.`, + }, + ], + isError: true, + }; + } + return { + content: [ + { + type: "text", + text: JSON.stringify(result, null, 2), + }, + ], + }; + } + + case "diagnose_issues": { + const options = args?.options as Record; + if (!options) { + return { + content: [ + { + type: "text", + text: "Missing required argument: options", + }, + ], + isError: true, + }; + } + const issues = diagnoseIssues(options); + return { + content: [ + { + type: "text", + text: JSON.stringify({ issues, total: issues.length }, null, 2), + }, + ], + }; + } + + default: + return { + content: [ + { + type: "text", + text: `Unknown tool: ${name}`, + }, + ], + isError: true, + }; + } +}); + +// ── Resources ────────────────────────────────────────────────────── + +const RESOURCES = [ + { + uri: "tsparticles://packages", + name: "Complete tsParticles Package Catalog", + description: + "Every tsParticles package organized by category with descriptions, load functions, and bundle inclusion info", + mimeType: "text/markdown", + getText: getPackageCatalogResource, + }, + { + uri: "tsparticles://options/guide", + name: "tsParticles Options Guide", + description: + "Complete structural guide to tsParticles options with tables, defaults, and examples", + mimeType: "text/markdown", + getText: getOptionsGuideResource, + }, + { + uri: "tsparticles://bundles", + name: "tsParticles Bundle Guide", + description: + "Guide to all tsParticles bundles with hierarchy, selection advice, and usage examples", + mimeType: "text/markdown", + getText: getBundlesGuideResource, + }, +]; + +server.setRequestHandler(ListResourcesRequestSchema, async () => { + return { + resources: RESOURCES.map((r) => ({ + uri: r.uri, + name: r.name, + description: r.description, + mimeType: r.mimeType, + })), + }; +}); + +server.setRequestHandler(ReadResourceRequestSchema, async (request) => { + const uri = request.params.uri; + const resource = RESOURCES.find((r) => r.uri === uri); + + if (!resource) { + return { + content: [ + { + type: "text", + text: `Resource not found: ${uri}`, + }, + ], + isError: true, + }; + } + + return { + contents: [ + { + uri: resource.uri, + mimeType: resource.mimeType, + text: resource.getText(), + }, + ], + }; +}); + +// ── Prompts ──────────────────────────────────────────────────────── + +server.setRequestHandler(ListPromptsRequestSchema, async () => { + return { + prompts: [generateOptionsPrompt], + }; +}); + +server.setRequestHandler(GetPromptRequestSchema, async (request) => { + const promptName = request.params.name; + + if (promptName !== "generate-options") { + return { + content: [ + { + type: "text", + text: `Unknown prompt: ${promptName}`, + }, + ], + isError: true, + }; + } + + const description = + request.params.arguments?.description || "a particle animation"; + + return { + messages: [ + { + role: "system", + content: { + type: "text", + text: generateOptionsPrompt.messages[0].content.text, + }, + }, + { + role: "user", + content: { + type: "text", + text: `Generate tsParticles options for: ${description}`, + }, + }, + ], + }; +}); + +// ── Start Server ─────────────────────────────────────────────────── + +async function startStdio() { + const transport = new StdioServerTransport(); + await server.connect(transport); + console.error("tsParticles MCP server running on stdio"); +} + +async function startHttp(port: number) { + const transport = new StreamableHTTPServerTransport({ + sessionIdGenerator: () => randomUUID(), + }); + + const httpServer = createServer(async (req, res) => { + // Health check endpoint + if (req.method === "GET" && req.url === "/health") { + res.writeHead(200, { "Content-Type": "application/json" }); + res.end(JSON.stringify({ status: "ok", version: PACKAGE_VERSION })); + return; + } + + // MCP endpoint — accept POST with JSON body + if (req.method === "POST" && req.url === "/mcp") { + const body = await new Promise((resolve, reject) => { + const chunks: Buffer[] = []; + req.on("data", (chunk) => chunks.push(Buffer.from(chunk))); + req.on("end", () => resolve(Buffer.concat(chunks).toString("utf8"))); + req.on("error", reject); + }); + + const parsedBody = body ? JSON.parse(body) : undefined; + await transport.handleRequest(req, res, parsedBody); + return; + } + + res.writeHead(404); + res.end("Not found"); + }); + + httpServer.listen(port, "0.0.0.0", () => { + console.error(`tsParticles MCP server running on http://0.0.0.0:${port}/mcp`); + console.error(`Health check: http://0.0.0.0:${port}/health`); + }); + + await server.connect(transport); +} + +async function main() { + const args = parseArgs(); + + if (args.mode === "http" && args.port) { + await startHttp(args.port); + } else { + await startStdio(); + } +} + +main().catch((error) => { + console.error("Fatal error:", error); + process.exit(1); +}); diff --git a/integrations/mcp-server/src/prompts/generateOptions.ts b/integrations/mcp-server/src/prompts/generateOptions.ts new file mode 100644 index 00000000000..98999b9b2d0 --- /dev/null +++ b/integrations/mcp-server/src/prompts/generateOptions.ts @@ -0,0 +1,75 @@ +export const generateOptionsPrompt = { + name: "generate-options", + description: "Generate tsParticles configuration from a natural language description", + arguments: [ + { + name: "description", + description: "Natural language description of the desired particle effect", + required: true, + }, + ], + messages: [ + { + role: "system" as const, + content: { + type: "text" as const, + text: `You are a tsParticles configuration expert. Your task is to convert natural language descriptions into valid tsParticles options. + +## How to generate configurations: + +1. **Analyze the request**: Identify key elements like colors, shapes, movement, interactions, effects. +2. **Use the available tools and resources**: + - Use \`list_packages\` to discover available packages by category + - Use \`get_package_info\` to understand specific packages + - Use \`suggest_plugins\` after generating options to get the npm packages needed + - Read the \`tsparticles://options/guide\` resource for option structure details + - Read the \`tsparticles://packages\` resource for the complete package catalog + - Read the \`tsparticles://bundles\` resource for bundle recommendations +3. **Generate the option JSON**: based on the tsParticles options structure. +4. **Determine required packages**: the engine always needs \`@tsparticles/engine\`. For everything else, choose a bundle or individual packages. + +## Bundle recommendation rules: +- **Simple circles with basic movement** → \`@tsparticles/basic\` +- **Interactivity (hover/click) + links + multiple shapes** → \`@tsparticles/slim\` +- **Emitters/absorbers + extra effects** → \`@tsparticles/full\` +- **Everything** → \`@tsparticles/all\` +- **Confetti effects** → \`@tsparticles/confetti\` +- **Fireworks effects** → \`@tsparticles/fireworks\` +- **Lightweight particles** → \`@tsparticles/particles\` + +## Output format: +Return a JSON object with: +\`\`\`typescript +{ + "options": { /* the tsParticles options object */ }, + "usage": { + "engine": "@tsparticles/engine", + "bundles": [ /* recommended bundle package names */ ], + "imports": [ + { "function": "loadSlim", "from": "@tsparticles/slim" } + ], + "additionalPackages": [ /* any extra packages not in bundles */ ], + "html": "
", + "code": "// Full code example" + } +} +\`\`\` + +The options must be valid ISourceOptions. Use only options that correspond to actually loaded plugins. + +## Key constraints: +- \`particles.shape.type\` defaults to "circle" — only specify if different +- \`particles.move.enable\` is true by default +- Always include \`background.color\` unless the user wants transparent +- Use \`preset\` for pre-configured effects when appropriate`, + }, + }, + { + role: "user" as const, + content: { + type: "text" as const, + text: "Generate tsParticles options for: {{description}}", + }, + }, + ], +}; diff --git a/integrations/mcp-server/src/registry/bundles.ts b/integrations/mcp-server/src/registry/bundles.ts new file mode 100644 index 00000000000..a1e77db0363 --- /dev/null +++ b/integrations/mcp-server/src/registry/bundles.ts @@ -0,0 +1,190 @@ +import type { BundleInfo } from "../types.js"; + +export const bundles: BundleInfo[] = [ + { + name: "@tsparticles/basic", + description: "Minimal bundle. Includes: circle shape, move plugin, blend plugin, opacity/size/out-modes/paint updaters, hex/hsl/rgb color support.", + loadFunction: "loadBasic", + packages: [ + "@tsparticles/plugin-blend", + "@tsparticles/plugin-hex-color", + "@tsparticles/plugin-hsl-color", + "@tsparticles/plugin-rgb-color", + "@tsparticles/plugin-move", + "@tsparticles/shape-circle", + "@tsparticles/updater-paint", + "@tsparticles/updater-opacity", + "@tsparticles/updater-out-modes", + "@tsparticles/updater-size", + ], + }, + { + name: "@tsparticles/slim", + description: "Standard bundle. Extends basic with interactivity, all external interactions (except cannon/drag/particle/pop/trail), particle interactions (attract, collisions, links), emoji/image/line/polygon/square/star shapes, life/rotate updaters.", + loadFunction: "loadSlim", + extends: "@tsparticles/basic", + packages: [ + "@tsparticles/basic", + "@tsparticles/plugin-interactivity", + "@tsparticles/plugin-easing-quad", + "@tsparticles/interaction-external-attract", + "@tsparticles/interaction-external-bounce", + "@tsparticles/interaction-external-bubble", + "@tsparticles/interaction-external-connect", + "@tsparticles/interaction-external-destroy", + "@tsparticles/interaction-external-grab", + "@tsparticles/interaction-external-parallax", + "@tsparticles/interaction-external-pause", + "@tsparticles/interaction-external-push", + "@tsparticles/interaction-external-remove", + "@tsparticles/interaction-external-repulse", + "@tsparticles/interaction-external-slow", + "@tsparticles/interaction-particles-attract", + "@tsparticles/interaction-particles-collisions", + "@tsparticles/interaction-particles-links", + "@tsparticles/shape-emoji", + "@tsparticles/shape-image", + "@tsparticles/shape-line", + "@tsparticles/shape-polygon", + "@tsparticles/shape-square", + "@tsparticles/shape-star", + "@tsparticles/updater-life", + "@tsparticles/updater-rotate", + ], + }, + { + name: "@tsparticles/full", + description: "Full bundle (also published as `tsparticles`). Extends slim with absorbers, emitters, drag/trail interactions, extra updaters (destroy, roll, tilt, twinkle, wobble), text shape.", + loadFunction: "loadFull", + extends: "@tsparticles/slim", + packages: [ + "@tsparticles/slim", + "@tsparticles/plugin-absorbers", + "@tsparticles/plugin-emitters", + "@tsparticles/plugin-emitters-shape-circle", + "@tsparticles/plugin-emitters-shape-square", + "@tsparticles/interaction-external-drag", + "@tsparticles/interaction-external-trail", + "@tsparticles/updater-destroy", + "@tsparticles/updater-roll", + "@tsparticles/updater-tilt", + "@tsparticles/updater-twinkle", + "@tsparticles/updater-wobble", + "@tsparticles/shape-text", + ], + }, + { + name: "@tsparticles/all", + description: "Everything bundle. Extends full with all plugins (export, infection, background-mask, canvas-mask, manual-particles, motion, poisson, polygon-mask, responsive, sounds, themes, trail, zoom), all easing, all colors, all shapes, all effects, all paths, extra interactions, extra emitter shapes.", + loadFunction: "loadAll", + extends: "@tsparticles/full", + packages: [ + "@tsparticles/full", + "@tsparticles/plugin-export-image", + "@tsparticles/plugin-export-json", + "@tsparticles/plugin-export-video", + "@tsparticles/plugin-infection", + "@tsparticles/plugin-background-mask", + "@tsparticles/plugin-canvas-mask", + "@tsparticles/plugin-manual-particles", + "@tsparticles/plugin-motion", + "@tsparticles/plugin-poisson-disc", + "@tsparticles/plugin-polygon-mask", + "@tsparticles/plugin-responsive", + "@tsparticles/plugin-sounds", + "@tsparticles/plugin-themes", + "@tsparticles/plugin-trail", + "@tsparticles/plugin-zoom", + "@tsparticles/interaction-external-cannon", + "@tsparticles/interaction-external-particle", + "@tsparticles/interaction-external-pop", + "@tsparticles/interaction-light", + "@tsparticles/interaction-particles-repulse", + "@tsparticles/plugin-emitters-shape-canvas", + "@tsparticles/plugin-emitters-shape-path", + "@tsparticles/plugin-emitters-shape-polygon", + ...["hex", "hsl", "rgb", "hsv", "hwb", "lab", "lch", "oklab", "oklch", "named"].map( + (c) => `@tsparticles/plugin-${c}-color`, + ), + ...["back", "bounce", "circ", "cubic", "elastic", "expo", "gaussian", "linear", "quad", "quart", "quint", "sigmoid", "sine", "smoothstep"].map( + (e) => `@tsparticles/plugin-easing-${e}`, + ), + ...["bubble", "filter", "particles", "shadow", "trail"].map((e) => `@tsparticles/effect-${e}`), + ...["arrow", "cards", "cog", "heart", "infinity", "matrix", "path", "ribbon", "rounded-polygon", "rounded-rect", "spiral", "squircle"].map( + (s) => `@tsparticles/shape-${s}`, + ), + "@tsparticles/updater-gradient", + "@tsparticles/updater-orbit", + ...["branches", "brownian", "curl-noise", "curves", "fractal-noise", "grid", "levy", "perlin-noise", "polygon", "random", "simplex-noise", "spiral", "svg", "zigzag"].map( + (p) => `@tsparticles/path-${p}`, + ), + ], + }, + { + name: "@tsparticles/confetti", + description: "Confetti-focused bundle. Extends basic with emitters, motion plugin, decorative shapes, and celebration updaters.", + loadFunction: "doInitPlugins", + extends: "@tsparticles/basic", + packages: [ + "@tsparticles/basic", + "@tsparticles/plugin-motion", + "@tsparticles/plugin-emitters", + "@tsparticles/shape-cards", + "@tsparticles/shape-heart", + "@tsparticles/shape-image", + "@tsparticles/shape-polygon", + "@tsparticles/shape-square", + "@tsparticles/shape-star", + "@tsparticles/shape-emoji", + "@tsparticles/updater-rotate", + "@tsparticles/updater-life", + "@tsparticles/updater-roll", + "@tsparticles/updater-tilt", + "@tsparticles/updater-wobble", + ], + }, + { + name: "@tsparticles/fireworks", + description: "Fireworks-focused bundle. Extends basic with line shape, emitters, sounds, and firework-related updaters.", + loadFunction: "doInitPlugins", + extends: "@tsparticles/basic", + packages: [ + "@tsparticles/basic", + "@tsparticles/shape-line", + "@tsparticles/plugin-blend", + "@tsparticles/plugin-emitters", + "@tsparticles/plugin-emitters-shape-square", + "@tsparticles/plugin-sounds", + "@tsparticles/updater-rotate", + "@tsparticles/updater-destroy", + "@tsparticles/updater-life", + "@tsparticles/updater-paint", + ], + }, + { + name: "@tsparticles/particles", + description: "Lightweight general particle system. Extends basic with interactivity, collisions, and links.", + loadFunction: "doInitPlugins", + extends: "@tsparticles/basic", + packages: [ + "@tsparticles/basic", + "@tsparticles/plugin-interactivity", + "@tsparticles/interaction-particles-collisions", + "@tsparticles/interaction-particles-links", + ], + }, + { + name: "@tsparticles/ribbons", + description: "Ribbons effect bundle. Extends basic with motion, emitters, ribbon shape, and life updater.", + loadFunction: "doInitPlugins", + extends: "@tsparticles/basic", + packages: [ + "@tsparticles/basic", + "@tsparticles/plugin-motion", + "@tsparticles/plugin-emitters", + "@tsparticles/plugin-emitters-shape-square", + "@tsparticles/shape-ribbon", + "@tsparticles/updater-life", + ], + }, +]; diff --git a/integrations/mcp-server/src/registry/needsPluginMap.ts b/integrations/mcp-server/src/registry/needsPluginMap.ts new file mode 100644 index 00000000000..daeba35d44d --- /dev/null +++ b/integrations/mcp-server/src/registry/needsPluginMap.ts @@ -0,0 +1,59 @@ +// Auto-generated by scripts/extractNeedsPlugin.ts +// Generated on 2026-06-04 +// Run: npx tsx scripts/extractNeedsPlugin.ts + +export interface NeedsPluginEntry { + optionKeys: string[]; + optionPaths: string[]; +} + +export const needsPluginMap: Record = { + "@tsparticles/plugin-absorbers": { + optionKeys: [], + optionPaths: ["absorbers"], + }, + "@tsparticles/plugin-background-mask": { + optionKeys: [], + optionPaths: ["backgroundMask"], + }, + "@tsparticles/plugin-blend": { + optionKeys: [], + optionPaths: ["blend"], + }, + "@tsparticles/plugin-canvas-mask": { + optionKeys: [], + optionPaths: ["canvasMask"], + }, + "@tsparticles/plugin-emitters": { + optionKeys: [], + optionPaths: ["emitters"], + }, + "@tsparticles/plugin-infection": { + optionKeys: [], + optionPaths: ["infection"], + }, + "@tsparticles/plugin-manual-particles": { + optionKeys: [], + optionPaths: ["manualParticles"], + }, + "@tsparticles/plugin-poisson-disc": { + optionKeys: [], + optionPaths: ["poisson"], + }, + "@tsparticles/plugin-polygon-mask": { + optionKeys: [], + optionPaths: ["polygon"], + }, + "@tsparticles/plugin-responsive": { + optionKeys: [], + optionPaths: ["responsive"], + }, + "@tsparticles/plugin-sounds": { + optionKeys: [], + optionPaths: ["sounds"], + }, + "@tsparticles/plugin-themes": { + optionKeys: [], + optionPaths: ["themes"], + }, +}; diff --git a/integrations/mcp-server/src/registry/packages.ts b/integrations/mcp-server/src/registry/packages.ts new file mode 100644 index 00000000000..532015b67b0 --- /dev/null +++ b/integrations/mcp-server/src/registry/packages.ts @@ -0,0 +1,227 @@ +import type { PackageInfo, PackageCatalog } from "../types.js"; + +const interactionExternal: PackageInfo[] = [ + { name: "@tsparticles/interaction-external-attract", description: "Attracts particles toward a mouse position or area", category: "interaction-external", loadFunction: "loadExternalAttractInteraction", optionKeys: ["interactivity.modes.attract"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-bounce", description: "Makes particles bounce off the mouse cursor", category: "interaction-external", loadFunction: "loadExternalBounceInteraction", optionKeys: ["interactivity.modes.bounce"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-bubble", description: "Creates a bubble effect around the mouse, enlarging nearby particles", category: "interaction-external", loadFunction: "loadExternalBubbleInteraction", optionKeys: ["interactivity.modes.bubble"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-cannon", description: "Fires particles from the click position like a cannon", category: "interaction-external", loadFunction: "loadExternalCannonInteraction", optionKeys: ["interactivity.modes.cannon"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/interaction-external-connect", description: "Draws lines connecting particles to the mouse cursor", category: "interaction-external", loadFunction: "loadExternalConnectInteraction", optionKeys: ["interactivity.modes.connect"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-destroy", description: "Destroys particles on mouse click/hover", category: "interaction-external", loadFunction: "loadExternalDestroyInteraction", optionKeys: ["interactivity.modes.destroy"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-drag", description: "Allows dragging particles with the mouse", category: "interaction-external", loadFunction: "loadExternalDragInteraction", optionKeys: ["interactivity.modes.drag"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["slim"] }, + { name: "@tsparticles/interaction-external-grab", description: "Creates a grabbing effect connecting mouse to nearby particles with lines", category: "interaction-external", loadFunction: "loadExternalGrabInteraction", optionKeys: ["interactivity.modes.grab"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-parallax", description: "Creates a parallax effect based on mouse position", category: "interaction-external", loadFunction: "loadExternalParallaxInteraction", optionKeys: ["interactivity.events.onHover.parallax"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-particle", description: "Spawns a new particle on click at the click position", category: "interaction-external", loadFunction: "loadExternalParticleInteraction", optionKeys: ["interactivity.modes.particle"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/interaction-external-pause", description: "Pauses/unpauses the animation on mouse hover", category: "interaction-external", loadFunction: "loadExternalPauseInteraction", optionKeys: ["interactivity.modes.pause"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-pop", description: "Pops particles away on mouse click", category: "interaction-external", loadFunction: "loadExternalPopInteraction", optionKeys: ["interactivity.modes.pop"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/interaction-external-push", description: "Adds new particles on mouse click", category: "interaction-external", loadFunction: "loadExternalPushInteraction", optionKeys: ["interactivity.modes.push"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-remove", description: "Removes particles on mouse click", category: "interaction-external", loadFunction: "loadExternalRemoveInteraction", optionKeys: ["interactivity.modes.remove"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-repulse", description: "Repulses particles away from the mouse cursor", category: "interaction-external", loadFunction: "loadExternalRepulseInteraction", optionKeys: ["interactivity.modes.repulse"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-slow", description: "Slows down particles near the mouse cursor", category: "interaction-external", loadFunction: "loadExternalSlowInteraction", optionKeys: ["interactivity.modes.slow"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-external-trail", description: "Creates a trail of particles following the mouse", category: "interaction-external", loadFunction: "loadExternalTrailInteraction", optionKeys: ["interactivity.modes.trail"], needsPluginCheck: "always when interactivity plugin loaded", alwaysNeeded: true, includedInBundles: ["slim"] }, +]; + +const interactionParticles: PackageInfo[] = [ + { name: "@tsparticles/interaction-particles-attract", description: "Particles attract each other", category: "interaction-particles", loadFunction: "loadParticlesAttractInteraction", optionKeys: ["particles.move.attract"], needsPluginCheck: "always when loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/interaction-particles-collisions", description: "Particles bounce off each other on collision", category: "interaction-particles", loadFunction: "loadParticlesCollisionsInteraction", optionKeys: ["particles.collisions"], needsPluginCheck: "always when loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim", "particles"] }, + { name: "@tsparticles/interaction-particles-links", description: "Draws connecting lines between nearby particles", category: "interaction-particles", loadFunction: "loadParticlesLinksInteraction", optionKeys: ["particles.links"], needsPluginCheck: "always when loaded", alwaysNeeded: true, includedInBundles: ["basic", "slim", "particles"] }, + { name: "@tsparticles/interaction-particles-repulse", description: "Particles repulse each other", category: "interaction-particles", loadFunction: "loadParticlesRepulseInteraction", optionKeys: ["particles.move.repulse"], needsPluginCheck: "always when loaded", alwaysNeeded: true, includedInBundles: [] }, +]; + +const interactionLight: PackageInfo[] = [ + { name: "@tsparticles/interaction-light", description: "Light interaction - particles react to a light source", category: "interaction-light", loadFunction: "loadLightInteraction", optionKeys: ["interactivity.modes.light"], needsPluginCheck: "always when loaded", alwaysNeeded: true, includedInBundles: [] }, +]; + +const updaters: PackageInfo[] = [ + { name: "@tsparticles/updater-destroy", description: "Particle destruction effects (split, explode)", category: "updater", loadFunction: "loadDestroyUpdater", optionKeys: ["particles.destroy"], needsPluginCheck: "used when particles.destroy is set", alwaysNeeded: true, includedInBundles: ["slim", "fireworks"] }, + { name: "@tsparticles/updater-gradient", description: "Animate colors using gradients over time", category: "updater", loadFunction: "loadGradientUpdater", optionKeys: ["particles.gradient"], needsPluginCheck: "used when particles.gradient is set", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/updater-life", description: "Particle lifetime control (birth, death, duration)", category: "updater", loadFunction: "loadLifeUpdater", optionKeys: ["particles.life"], needsPluginCheck: "used when particles.life is set", alwaysNeeded: true, includedInBundles: ["slim", "confetti", "fireworks", "ribbons"] }, + { name: "@tsparticles/updater-opacity", description: "Animate particle opacity", category: "updater", loadFunction: "loadOpacityUpdater", optionKeys: ["particles.opacity"], needsPluginCheck: "used when particles.opacity.animation is set", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/updater-orbit", description: "Particles orbit around other particles or points", category: "updater", loadFunction: "loadOrbitUpdater", optionKeys: ["particles.orbit"], needsPluginCheck: "used when particles.orbit is set", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/updater-out-modes", description: "Out-of-bounds particle behavior (bounce, destroy, none, out)", category: "updater", loadFunction: "loadOutModesUpdater", optionKeys: ["particles.move.outModes"], needsPluginCheck: "essential for move behavior", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/updater-paint", description: "Paint/fill and stroke effects on particles", category: "updater", loadFunction: "loadPaintUpdater", optionKeys: ["particles.paint"], needsPluginCheck: "used when particles.paint is set", alwaysNeeded: true, includedInBundles: ["basic", "slim", "fireworks"] }, + { name: "@tsparticles/updater-roll", description: "Particle rolling effect (rotates with movement)", category: "updater", loadFunction: "loadRollUpdater", optionKeys: ["particles.roll"], needsPluginCheck: "used when particles.roll is set", alwaysNeeded: true, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/updater-rotate", description: "Animate particle rotation", category: "updater", loadFunction: "loadRotateUpdater", optionKeys: ["particles.rotate"], needsPluginCheck: "used when particles.rotate is set", alwaysNeeded: true, includedInBundles: ["slim", "confetti", "fireworks"] }, + { name: "@tsparticles/updater-size", description: "Animate particle size", category: "updater", loadFunction: "loadSizeUpdater", optionKeys: ["particles.size"], needsPluginCheck: "used when particles.size.animation is set", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/updater-tilt", description: "Particle tilt/3D rotation animation", category: "updater", loadFunction: "loadTiltUpdater", optionKeys: ["particles.tilt"], needsPluginCheck: "used when particles.tilt is set", alwaysNeeded: true, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/updater-twinkle", description: "Twinkle/sparkle effect on particles", category: "updater", loadFunction: "loadTwinkleUpdater", optionKeys: ["particles.twinkle"], needsPluginCheck: "used when particles.twinkle is set", alwaysNeeded: true, includedInBundles: ["slim"] }, + { name: "@tsparticles/updater-wobble", description: "Particle wobble/oscillation effect", category: "updater", loadFunction: "loadWobbleUpdater", optionKeys: ["particles.wobble"], needsPluginCheck: "used when particles.wobble is set", alwaysNeeded: true, includedInBundles: ["slim", "confetti"] }, +]; + +const shapes: PackageInfo[] = [ + { name: "@tsparticles/shape-arrow", description: "Arrow shape for particles", category: "shape", loadFunction: "loadArrowShape", optionKeys: ["particles.shape.type", "particles.shape.options.arrow"], needsPluginCheck: "used when shape type is 'arrow'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-cards", description: "Playing card suits shape (hearts, diamonds, clubs, spades)", category: "shape", loadFunction: "loadCardSuitsShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'cards'", alwaysNeeded: false, includedInBundles: ["confetti"] }, + { name: "@tsparticles/shape-circle", description: "Circle shape - the default particle shape", category: "shape", loadFunction: "loadCircleShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "circle is the default shape", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/shape-cog", description: "Cog/gear shape for particles", category: "shape", loadFunction: "loadCogShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'cog'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-emoji", description: "Emoji/unicode character shape", category: "shape", loadFunction: "loadEmojiShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'emoji'", alwaysNeeded: false, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/shape-heart", description: "Heart shape for particles", category: "shape", loadFunction: "loadHeartShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'heart'", alwaysNeeded: false, includedInBundles: ["confetti"] }, + { name: "@tsparticles/shape-image", description: "Custom image shape - use any image URL as particle", category: "shape", loadFunction: "loadImageShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'image'", alwaysNeeded: false, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/shape-infinity", description: "Infinity symbol (∞) shape", category: "shape", loadFunction: "loadInfinityShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'infinity'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-line", description: "Line shape for particles", category: "shape", loadFunction: "loadLineShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'line'", alwaysNeeded: false, includedInBundles: ["slim", "fireworks"] }, + { name: "@tsparticles/shape-matrix", description: "Matrix code rain character shape", category: "shape", loadFunction: "loadMatrixShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'matrix'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-path", description: "Custom SVG path shape", category: "shape", loadFunction: "loadPathShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'path'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-polygon", description: "Regular polygon shape (triangle, pentagon, hexagon, etc.)", category: "shape", loadFunction: "loadPolygonShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'polygon'", alwaysNeeded: false, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/shape-ribbon", description: "Ribbon/banner shape", category: "shape", loadFunction: "loadRibbonShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'ribbon'", alwaysNeeded: false, includedInBundles: ["ribbons"] }, + { name: "@tsparticles/shape-rounded-polygon", description: "Rounded regular polygon shape", category: "shape", loadFunction: "loadRoundedPolygonShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'rounded-polygon'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-rounded-rect", description: "Rounded rectangle shape", category: "shape", loadFunction: "loadRoundedRectShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'rounded-rect'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-spiral", description: "Spiral shape", category: "shape", loadFunction: "loadSpiralShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'spiral'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-square", description: "Square/rectangle shape", category: "shape", loadFunction: "loadSquareShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'square'", alwaysNeeded: false, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/shape-squircle", description: "Squircle shape (square-circle hybrid)", category: "shape", loadFunction: "loadSquircleShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'squircle'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/shape-star", description: "Star shape with configurable points", category: "shape", loadFunction: "loadStarShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'star'", alwaysNeeded: false, includedInBundles: ["slim", "confetti"] }, + { name: "@tsparticles/shape-text", description: "Text/character shape", category: "shape", loadFunction: "loadTextShape", optionKeys: ["particles.shape.type"], needsPluginCheck: "used when shape type is 'text'", alwaysNeeded: false, includedInBundles: ["slim"] }, +]; + +const plugins: PackageInfo[] = [ + { name: "@tsparticles/plugin-absorbers", description: "Absorber plugin - particles are absorbed into defined points", category: "plugin", loadFunction: "loadAbsorbersPlugin", optionKeys: ["absorbers"], needsPluginCheck: "options?.absorbers is defined", alwaysNeeded: false, includedInBundles: ["slim"] }, + { name: "@tsparticles/plugin-background-mask", description: "Background masking overlay effect", category: "plugin", loadFunction: "loadBackgroundMaskPlugin", optionKeys: ["backgroundMask"], needsPluginCheck: "options?.backgroundMask?.enable", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-blend", description: "CSS blend mode for particles", category: "plugin", loadFunction: "loadBlendPlugin", optionKeys: ["blend", "particles.blend"], needsPluginCheck: "options?.blend?.enable or options?.particles?.blend?.enable", alwaysNeeded: false, includedInBundles: ["basic", "fireworks"] }, + { name: "@tsparticles/plugin-canvas-mask", description: "Mask particles using an HTML canvas element", category: "plugin", loadFunction: "loadCanvasMaskPlugin", optionKeys: ["canvasMask"], needsPluginCheck: "options?.canvasMask?.enable", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-emitters", description: "Emitter plugin - spawn particles from defined points/areas", category: "plugin", loadFunction: "loadEmittersPlugin", optionKeys: ["emitters"], needsPluginCheck: "options?.emitters is array with length or defined", alwaysNeeded: false, includedInBundles: ["slim", "confetti", "fireworks", "ribbons"] }, + { name: "@tsparticles/plugin-export-image", description: "Export canvas as image (PNG/JPEG)", category: "plugin", loadFunction: "loadExportImagePlugin", optionKeys: ["export.image"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/plugin-export-json", description: "Export particle positions as JSON", category: "plugin", loadFunction: "loadExportJSONPlugin", optionKeys: ["export.json"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/plugin-export-video", description: "Export animation as video", category: "plugin", loadFunction: "loadExportVideoPlugin", optionKeys: ["export.video"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/plugin-infection", description: "Infection/disease spread simulation between particles", category: "plugin", loadFunction: "loadInfectionPlugin", optionKeys: ["infection"], needsPluginCheck: "options?.infection?.enable", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-interactivity", description: "Core interactivity system (mouse/touch events)", category: "plugin", loadFunction: "loadInteractivityPlugin", optionKeys: ["interactivity"], needsPluginCheck: "always when interactivity is used", alwaysNeeded: true, includedInBundles: ["slim", "particles"] }, + { name: "@tsparticles/plugin-manual-particles", description: "Manually add particles to the canvas in code", category: "plugin", loadFunction: "loadManualParticlesPlugin", optionKeys: ["manualParticles"], needsPluginCheck: "options?.manualParticles?.length", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-motion", description: "Device motion/orientation support for particles", category: "plugin", loadFunction: "loadMotionPlugin", optionKeys: ["motion"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: ["confetti", "ribbons"] }, + { name: "@tsparticles/plugin-move", description: "Core particle movement system", category: "plugin", loadFunction: "loadMovePlugin", optionKeys: ["particles.move"], needsPluginCheck: "always - required for particle movement", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/plugin-poisson-disc", description: "Poisson disc sampling for particle placement", category: "plugin", loadFunction: "loadPoissonDiscPlugin", optionKeys: ["poisson"], needsPluginCheck: "options?.poisson?.enable", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-polygon-mask", description: "Mask particles inside an SVG polygon", category: "plugin", loadFunction: "loadPolygonMaskPlugin", optionKeys: ["polygon"], needsPluginCheck: "options?.polygon?.enable or options?.polygon?.type !== none", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-responsive", description: "Responsive breakpoints for different screen sizes", category: "plugin", loadFunction: "loadResponsivePlugin", optionKeys: ["responsive"], needsPluginCheck: "options?.responsive?.length", alwaysNeeded: false, includedInBundles: ["pjs"] }, + { name: "@tsparticles/plugin-sounds", description: "Audio/sound effects triggered by particle events", category: "plugin", loadFunction: "loadSoundsPlugin", optionKeys: ["sounds"], needsPluginCheck: "options?.sounds?.enable", alwaysNeeded: false, includedInBundles: ["fireworks"] }, + { name: "@tsparticles/plugin-themes", description: "Dark/light theme support", category: "plugin", loadFunction: "loadThemesPlugin", optionKeys: ["themes"], needsPluginCheck: "options?.themes?.length", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-trail", description: "Particle trail effect - particles follow a path", category: "plugin", loadFunction: "loadTrailPlugin", optionKeys: ["trail"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/plugin-zoom", description: "Zoom to particle effect on click/hover", category: "plugin", loadFunction: "loadZoomPlugin", optionKeys: ["interactivity.modes.zoom"], needsPluginCheck: "always", alwaysNeeded: true, includedInBundles: [] }, +]; + +const colorPlugins: PackageInfo[] = [ + { name: "@tsparticles/plugin-hex-color", description: "Hexadecimal (#RRGGBB) color support", category: "color", loadFunction: "loadHexColorPlugin", optionKeys: [], needsPluginCheck: "always - essential color format", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/plugin-hsl-color", description: "HSL (hue/saturation/lightness) color support", category: "color", loadFunction: "loadHslColorPlugin", optionKeys: [], needsPluginCheck: "always - essential color format", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/plugin-rgb-color", description: "RGB/rgba color support", category: "color", loadFunction: "loadRgbColorPlugin", optionKeys: [], needsPluginCheck: "always - essential color format", alwaysNeeded: true, includedInBundles: ["basic", "slim"] }, + { name: "@tsparticles/plugin-hsv-color", description: "HSV (hue/saturation/value) color format support", category: "color", loadFunction: "loadHsvColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-hwb-color", description: "HWB (hue/whiteness/blackness) color format support", category: "color", loadFunction: "loadHwbColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-lab-color", description: "CIELAB color format support", category: "color", loadFunction: "loadLabColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-lch-color", description: "LCH (lightness/chroma/hue) color format support", category: "color", loadFunction: "loadLchColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-oklab-color", description: "OKLAB (perceptual) color format support", category: "color", loadFunction: "loadOklabColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-oklch-color", description: "OKLCH (perceptual) color format support", category: "color", loadFunction: "loadOklchColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-named-color", description: "Named CSS colors (red, blue, etc.) support", category: "color", loadFunction: "loadNamedColorPlugin", optionKeys: [], needsPluginCheck: "optional color format", alwaysNeeded: false, includedInBundles: [] }, +]; + +const easingPlugins: PackageInfo[] = [ + { name: "@tsparticles/plugin-easing-back", description: "Back easing function", category: "easing", loadFunction: "loadEasingBackPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-bounce", description: "Bounce easing function", category: "easing", loadFunction: "loadEasingBouncePlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-circ", description: "Circular easing function", category: "easing", loadFunction: "loadEasingCircPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-cubic", description: "Cubic easing function", category: "easing", loadFunction: "loadEasingCubicPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-elastic", description: "Elastic easing function", category: "easing", loadFunction: "loadEasingElasticPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-expo", description: "Exponential easing function", category: "easing", loadFunction: "loadEasingExpoPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-gaussian", description: "Gaussian easing function", category: "easing", loadFunction: "loadEasingGaussianPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-linear", description: "Linear easing function", category: "easing", loadFunction: "loadEasingLinearPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-quad", description: "Quadratic easing function", category: "easing", loadFunction: "loadEasingQuadPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: ["slim"] }, + { name: "@tsparticles/plugin-easing-quart", description: "Quartic easing function", category: "easing", loadFunction: "loadEasingQuartPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-quint", description: "Quintic easing function", category: "easing", loadFunction: "loadEasingQuintPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-sigmoid", description: "Sigmoid easing function", category: "easing", loadFunction: "loadEasingSigmoidPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-sine", description: "Sine easing function", category: "easing", loadFunction: "loadEasingSinePlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-easing-smoothstep", description: "Smoothstep easing function", category: "easing", loadFunction: "loadEasingSmoothstepPlugin", optionKeys: [], needsPluginCheck: "used by animation easing options", alwaysNeeded: false, includedInBundles: [] }, +]; + +const effects: PackageInfo[] = [ + { name: "@tsparticles/effect-bubble", description: "Bubble effect overlay", category: "effect", loadFunction: "loadBubbleEffect", optionKeys: ["effect"], needsPluginCheck: "used when effect type is 'bubble'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/effect-filter", description: "CSS filter effect overlay", category: "effect", loadFunction: "loadFilterEffect", optionKeys: ["effect"], needsPluginCheck: "used when effect type is 'filter'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/effect-particles", description: "Particles inside particles effect", category: "effect", loadFunction: "loadParticlesEffect", optionKeys: ["effect"], needsPluginCheck: "used when effect type is 'particles'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/effect-shadow", description: "Drop shadow effect on particles", category: "effect", loadFunction: "loadShadowEffect", optionKeys: ["effect"], needsPluginCheck: "used when effect type is 'shadow'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/effect-trail", description: "Motion trail effect for particles", category: "effect", loadFunction: "loadTrailEffect", optionKeys: ["effect"], needsPluginCheck: "used when effect type is 'trail'", alwaysNeeded: false, includedInBundles: [] }, +]; + +const paths: PackageInfo[] = [ + { name: "@tsparticles/path-branches", description: "Branch-like path for particle movement", category: "path", loadFunction: "loadBranchesPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-brownian", description: "Brownian motion path generator", category: "path", loadFunction: "loadBrownianPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-curl-noise", description: "Curl noise path for organic fluid-like movement", category: "path", loadFunction: "loadCurlNoisePath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-curves", description: "Curved path generator", category: "path", loadFunction: "loadCurvesPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-fractal-noise", description: "Fractal noise path for complex natural movement", category: "path", loadFunction: "loadFractalNoisePath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-grid", description: "Grid-based path for particle movement", category: "path", loadFunction: "loadGridPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-levy", description: "Levy flight path for particle movement", category: "path", loadFunction: "loadLevyPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-perlin-noise", description: "Perlin noise path for smooth natural movement", category: "path", loadFunction: "loadPerlinNoisePath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-polygon", description: "Polygon path for particle movement", category: "path", loadFunction: "loadPolygonPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-random", description: "Random path generator", category: "path", loadFunction: "loadRandomPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-simplex-noise", description: "Simplex noise path for natural movement", category: "path", loadFunction: "loadSimplexNoisePath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-spiral", description: "Spiral path for particle movement", category: "path", loadFunction: "loadSpiralPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-svg", description: "SVG path for particle movement", category: "path", loadFunction: "loadSVGPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/path-zig-zag", description: "Zig-zag path for particle movement", category: "path", loadFunction: "loadZigZagPath", optionKeys: ["particles.move.path.options"], needsPluginCheck: "used in path generator", alwaysNeeded: false, includedInBundles: [] }, +]; + +const emitterShapes: PackageInfo[] = [ + { name: "@tsparticles/plugin-emitters-shape-circle", description: "Circular emitter shape", category: "emitter-shape", loadFunction: "loadEmittersShapeCircle", optionKeys: ["emitters.shape.type"], needsPluginCheck: "used when emitter shape type is 'circle'", alwaysNeeded: false, includedInBundles: ["slim"] }, + { name: "@tsparticles/plugin-emitters-shape-square", description: "Square/rectangular emitter shape", category: "emitter-shape", loadFunction: "loadEmittersShapeSquare", optionKeys: ["emitters.shape.type"], needsPluginCheck: "used when emitter shape type is 'square'", alwaysNeeded: false, includedInBundles: ["slim", "fireworks", "ribbons"] }, + { name: "@tsparticles/plugin-emitters-shape-canvas", description: "Canvas-based custom emitter shape", category: "emitter-shape", loadFunction: "loadEmittersShapeCanvas", optionKeys: ["emitters.shape.type"], needsPluginCheck: "used when emitter shape type is 'canvas'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-emitters-shape-path", description: "Path-based emitter shape", category: "emitter-shape", loadFunction: "loadEmittersShapePath", optionKeys: ["emitters.shape.type"], needsPluginCheck: "used when emitter shape type is 'path'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/plugin-emitters-shape-polygon", description: "Polygon emitter shape", category: "emitter-shape", loadFunction: "loadEmittersShapePolygon", optionKeys: ["emitters.shape.type"], needsPluginCheck: "used when emitter shape type is 'polygon'", alwaysNeeded: false, includedInBundles: [] }, +]; + +const bundles: PackageInfo[] = [ + { name: "@tsparticles/basic", description: "Minimal bundle - circle shape, move plugin, basic updaters, essential color formats", category: "bundle", loadFunction: "loadBasic", optionKeys: [], needsPluginCheck: "recommended as base for any project", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/slim", description: "Standard bundle - extends basic with interactivity, links, collisions, many shapes and updaters", category: "bundle", loadFunction: "loadSlim", optionKeys: [], needsPluginCheck: "recommended for most projects", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/full", description: "Full bundle - extends slim with absorbers, emitters, drag/trail, more shapes and updaters", category: "bundle", loadFunction: "loadFull", optionKeys: [], needsPluginCheck: "use for advanced features", alwaysNeeded: true, includedInBundles: [] }, + { name: "tsparticles", description: "Full bundle (npm alias for @tsparticles/full)", category: "bundle", loadFunction: "loadFull", optionKeys: [], needsPluginCheck: "use for advanced features", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/all", description: "Everything bundle - all plugins, shapes, updaters, paths, effects, easing", category: "bundle", loadFunction: "loadAll", optionKeys: [], needsPluginCheck: "use for maximum features", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/confetti", description: "Confetti-focused bundle with emitters, decorative shapes, and celebration effects", category: "bundle", loadFunction: "loadConfetti", optionKeys: [], needsPluginCheck: "use for confetti effects", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/fireworks", description: "Fireworks-focused bundle with emitters, sounds, and explosion effects", category: "bundle", loadFunction: "loadFireworks", optionKeys: [], needsPluginCheck: "use for fireworks effects", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/particles", description: "Lightweight general particle system with collisions and links", category: "bundle", loadFunction: "loadParticlesBundle", optionKeys: [], needsPluginCheck: "use for basic particle systems", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/ribbons", description: "Ribbon effects bundle with emitters and ribbon shapes", category: "bundle", loadFunction: "loadRibbonsBundle", optionKeys: [], needsPluginCheck: "use for ribbon effects", alwaysNeeded: true, includedInBundles: [] }, + { name: "@tsparticles/pjs", description: "particles.js compatibility shim (loads full + responsive)", category: "bundle", loadFunction: "initPjs", optionKeys: [], needsPluginCheck: "use for particles.js migration", alwaysNeeded: true, includedInBundles: [] }, +]; + +const presets: PackageInfo[] = [ + { name: "@tsparticles/preset-ambient", description: "Ambient background particle effect preset", category: "preset", loadFunction: "loadAmbientPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'ambient'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-big-circles", description: "Big circles particle effect preset", category: "preset", loadFunction: "loadBigCirclesPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'big-circles'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-bubbles", description: "Bubbles effect preset", category: "preset", loadFunction: "loadBubblesPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'bubbles'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-confetti", description: "Confetti party effect preset", category: "preset", loadFunction: "loadConfettiPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'confetti'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-confetti-cannon", description: "Confetti cannon burst effect preset", category: "preset", loadFunction: "loadConfettiCannonPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'confetti-cannon'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-confetti-explosions", description: "Confetti explosions effect preset", category: "preset", loadFunction: "loadConfettiExplosionsPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'confetti-explosions'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-confetti-falling", description: "Falling confetti effect preset", category: "preset", loadFunction: "loadConfettiFallingPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'confetti-falling'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-confetti-parade", description: "Confetti parade effect preset", category: "preset", loadFunction: "loadConfettiParadePreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'confetti-parade'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-fire", description: "Fire/flame effect preset", category: "preset", loadFunction: "loadFirePreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'fire'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-firefly", description: "Firefly/glowing bug effect preset", category: "preset", loadFunction: "loadFireflyPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'firefly'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-fireworks", description: "Fireworks display effect preset", category: "preset", loadFunction: "loadFireworksPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'fireworks'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-fountain", description: "Fountain water effect preset", category: "preset", loadFunction: "loadFountainPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'fountain'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-hyperspace", description: "Hyperspace/star-warp effect preset", category: "preset", loadFunction: "loadHyperspacePreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'hyperspace'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-links", description: "Connected particles network effect preset", category: "preset", loadFunction: "loadLinksPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'links'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-matrix", description: "Matrix digital rain effect preset", category: "preset", loadFunction: "loadMatrixPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'matrix'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-party", description: "Party celebration particles preset", category: "preset", loadFunction: "loadPartyPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'party'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-sea-anemone", description: "Sea anemone/underwater creature effect preset", category: "preset", loadFunction: "loadSeaAnemonePreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'sea-anemone'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-snow", description: "Snow falling effect preset", category: "preset", loadFunction: "loadSnowPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'snow'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-squares", description: "Square particles grid effect preset", category: "preset", loadFunction: "loadSquaresPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'squares'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-stars", description: "Twinkling stars effect preset", category: "preset", loadFunction: "loadStarsPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'stars'", alwaysNeeded: false, includedInBundles: [] }, + { name: "@tsparticles/preset-triangles", description: "Triangle mesh effect preset", category: "preset", loadFunction: "loadTrianglesPreset", optionKeys: ["preset"], needsPluginCheck: "use preset: 'triangles'", alwaysNeeded: false, includedInBundles: [] }, +]; + +export const allPackages: PackageInfo[] = [ + ...interactionExternal, + ...interactionParticles, + ...interactionLight, + ...updaters, + ...shapes, + ...plugins, + ...colorPlugins, + ...easingPlugins, + ...effects, + ...paths, + ...emitterShapes, + ...presets, + ...bundles, +]; + +function buildCatalog(): PackageCatalog { + const byCategory = {} as PackageCatalog["byCategory"]; + const byName: Record = {}; + + for (const pkg of allPackages) { + if (!byCategory[pkg.category]) { + byCategory[pkg.category] = []; + } + byCategory[pkg.category].push(pkg); + byName[pkg.name] = pkg; + } + + return { byCategory, byName }; +} + +export const packageCatalog = buildCatalog(); diff --git a/integrations/mcp-server/src/registry/pluginOptions.ts b/integrations/mcp-server/src/registry/pluginOptions.ts new file mode 100644 index 00000000000..a4d04ab233d --- /dev/null +++ b/integrations/mcp-server/src/registry/pluginOptions.ts @@ -0,0 +1,213 @@ +import type { OptionPluginMapping } from "../types.js"; +import { needsPluginMap } from "./needsPluginMap.js"; + +function describePackage(name: string): string { + return name + .replace("@tsparticles/", "") + .replace(/-/g, " ") + .replace(/\b\w/g, (c) => c.toUpperCase()); +} + +const autoGeneratedPackages = new Set(Object.keys(needsPluginMap)); + +// ── Auto-generated from plugin needsPlugin() (authoritative) ── +const autoGeneratedEntries: OptionPluginMapping[] = Object.entries(needsPluginMap).flatMap( + ([packageName, entry]) => + entry.optionPaths.map((optionPath) => ({ + optionPath, + packageName, + description: describePackage(packageName), + })) +); + +// ── Manually curated entries (interactions, updaters, interactivity modes) ── +// These supplement the auto-generated map; packages already in needsPluginMap +// are excluded to keep the auto-generated paths as ground truth. +const manualEntries: OptionPluginMapping[] = [ + { + optionPath: "particles.links", + packageName: "@tsparticles/interaction-particles-links", + description: "Connecting lines between particles", + }, + { + optionPath: "particles.collisions", + packageName: "@tsparticles/interaction-particles-collisions", + description: "Particle collision physics", + }, + { + optionPath: "particles.bounce", + packageName: "@tsparticles/interaction-particles-collisions", + description: "Particle bounce on collision", + }, + { + optionPath: "particles.move.attract", + packageName: "@tsparticles/interaction-particles-attract", + description: "Particle-to-particle attraction", + }, + { + optionPath: "particles.move.repulse", + packageName: "@tsparticles/interaction-particles-repulse", + description: "Particle-to-particle repulsion", + }, + { + optionPath: "particles.destroy", + packageName: "@tsparticles/updater-destroy", + description: "Particle destroy/split behavior", + }, + { + optionPath: "particles.gradient", + packageName: "@tsparticles/updater-gradient", + description: "Gradient color animation", + }, + { + optionPath: "particles.life", + packageName: "@tsparticles/updater-life", + description: "Particle lifetime control", + }, + { + optionPath: "particles.opacity.animation", + packageName: "@tsparticles/updater-opacity", + description: "Opacity animation", + }, + { + optionPath: "particles.orbit", + packageName: "@tsparticles/updater-orbit", + description: "Orbital motion", + }, + { + optionPath: "particles.move.outModes", + packageName: "@tsparticles/updater-out-modes", + description: "Out-of-bounds behavior", + }, + { + optionPath: "particles.roll", + packageName: "@tsparticles/updater-roll", + description: "Rolling rotation animation", + }, + { + optionPath: "particles.rotate", + packageName: "@tsparticles/updater-rotate", + description: "Rotation animation", + }, + { + optionPath: "particles.size.animation", + packageName: "@tsparticles/updater-size", + description: "Size animation", + }, + { + optionPath: "particles.tilt", + packageName: "@tsparticles/updater-tilt", + description: "3D tilt animation", + }, + { + optionPath: "particles.twinkle", + packageName: "@tsparticles/updater-twinkle", + description: "Twinkle/sparkle effect", + }, + { + optionPath: "particles.wobble", + packageName: "@tsparticles/updater-wobble", + description: "Wobble oscillation animation", + }, + { + optionPath: "interactivity.modes.attract", + packageName: "@tsparticles/interaction-external-attract", + description: "Attract particles to cursor", + }, + { + optionPath: "interactivity.modes.bounce", + packageName: "@tsparticles/interaction-external-bounce", + description: "Bounce particles from cursor", + }, + { + optionPath: "interactivity.modes.bubble", + packageName: "@tsparticles/interaction-external-bubble", + description: "Bubble particles near cursor", + }, + { + optionPath: "interactivity.modes.cannon", + packageName: "@tsparticles/interaction-external-cannon", + description: "Cannon fire particles on click", + }, + { + optionPath: "interactivity.modes.connect", + packageName: "@tsparticles/interaction-external-connect", + description: "Connect cursor to particles", + }, + { + optionPath: "interactivity.modes.destroy", + packageName: "@tsparticles/interaction-external-destroy", + description: "Destroy particles at cursor", + }, + { + optionPath: "interactivity.modes.drag", + packageName: "@tsparticles/interaction-external-drag", + description: "Drag particles with cursor", + }, + { + optionPath: "interactivity.modes.grab", + packageName: "@tsparticles/interaction-external-grab", + description: "Grab/connect cursor to particles", + }, + { + optionPath: "interactivity.events.onHover.parallax", + packageName: "@tsparticles/interaction-external-parallax", + description: "Parallax hover effect", + }, + { + optionPath: "interactivity.modes.particle", + packageName: "@tsparticles/interaction-external-particle", + description: "Spawn particles on click", + }, + { + optionPath: "interactivity.modes.pause", + packageName: "@tsparticles/interaction-external-pause", + description: "Pause animation on hover", + }, + { + optionPath: "interactivity.modes.pop", + packageName: "@tsparticles/interaction-external-pop", + description: "Pop particles on click", + }, + { + optionPath: "interactivity.modes.push", + packageName: "@tsparticles/interaction-external-push", + description: "Push new particles on click", + }, + { + optionPath: "interactivity.modes.remove", + packageName: "@tsparticles/interaction-external-remove", + description: "Remove particles on click", + }, + { + optionPath: "interactivity.modes.repulse", + packageName: "@tsparticles/interaction-external-repulse", + description: "Repulse particles from cursor", + }, + { + optionPath: "interactivity.modes.slow", + packageName: "@tsparticles/interaction-external-slow", + description: "Slow particles near cursor", + }, + { + optionPath: "interactivity.modes.trail", + packageName: "@tsparticles/interaction-external-trail", + description: "Mouse trail effect", + }, + { + optionPath: "interactivity.modes.light", + packageName: "@tsparticles/interaction-light", + description: "Light source interaction", + }, +]; + +// Auto-generated entries take priority; manual entries only add packages +// not covered by needsPluginMap (interactions, updaters, interactivity modes) +const additionalEntries = manualEntries.filter( + (e) => !autoGeneratedPackages.has(e.packageName) +); + +export const optionToPlugin: OptionPluginMapping[] = [ + ...autoGeneratedEntries, + ...additionalEntries, +]; diff --git a/integrations/mcp-server/src/resources/bundlesGuide.ts b/integrations/mcp-server/src/resources/bundlesGuide.ts new file mode 100644 index 00000000000..677299afdc9 --- /dev/null +++ b/integrations/mcp-server/src/resources/bundlesGuide.ts @@ -0,0 +1,105 @@ +import { bundles } from "../registry/bundles.js"; + +export function getBundlesGuideResource(): string { + const lines: string[] = []; + + lines.push("# tsParticles Bundle Guide"); + lines.push(""); + lines.push( + "Bundles are pre-composed feature sets that load multiple plugins at once. Choose the right bundle for your project.", + ); + lines.push(""); + + lines.push("## Bundle Selection Guide"); + lines.push(""); + lines.push( + "- **@tsparticles/basic**: Minimal setup. Use for simple animations with circles only.", + ); + lines.push( + "- **@tsparticles/slim**: Standard setup. Use for most projects with interactivity, links, multiple shapes.", + ); + lines.push( + "- **@tsparticles/full**: Advanced setup. Use when you need absorbers, emitters, drag, extra effects.", + ); + lines.push( + "- **@tsparticles/all**: Maximum setup. Use when you want everything available.", + ); + lines.push( + "- **@tsparticles/confetti**: Confetti effects. Use for celebration/party animations.", + ); + lines.push( + "- **@tsparticles/fireworks**: Fireworks effects. Use for pyrotechnic animations.", + ); + lines.push( + "- **@tsparticles/particles**: General particles. Lightweight with links and collisions.", + ); + lines.push( + "- **@tsparticles/ribbons**: Ribbon/trail effects. Use for flowing ribbon animations.", + ); + lines.push(""); + + lines.push("## Bundle Hierarchy"); + lines.push(""); + lines.push("```"); + lines.push("@tsparticles/basic"); + lines.push(" │"); + lines.push(" ▼"); + lines.push("@tsparticles/slim (basic + interactivity + more shapes/updaters)"); + lines.push(" │"); + lines.push(" ▼"); + lines.push("@tsparticles/full (slim + absorbers + emitters + more)"); + lines.push(" │"); + lines.push(" ▼"); + lines.push("@tsparticles/all (full + everything else)"); + lines.push(""); + lines.push("Also available (standalone, each extends basic):"); + lines.push("- @tsparticles/confetti"); + lines.push("- @tsparticles/fireworks"); + lines.push("- @tsparticles/particles"); + lines.push("- @tsparticles/ribbons"); + lines.push("```"); + lines.push(""); + + lines.push("## Bundle Details"); + lines.push(""); + + for (const bundle of bundles) { + lines.push(`### ${bundle.name}`); + lines.push(""); + lines.push(`**Description:** ${bundle.description}`); + if (bundle.extends) { + lines.push(`**Extends:** \`${bundle.extends}\``); + } + if (bundle.loadFunction) { + lines.push(`**Load function:** \`${bundle.loadFunction}(engine)\``); + } + + const importLines: string[] = []; + if (bundle.loadFunction) { + importLines.push( + `import { ${bundle.loadFunction} } from "${bundle.name}";`, + ); + } else { + importLines.push(`import "${bundle.name}";`); + } + + lines.push("**Import:**"); + for (const imp of importLines) { + lines.push(` \`${imp}\``); + } + lines.push("**Usage:**"); + lines.push(" ```typescript"); + lines.push(` import { tsParticles } from "@tsparticles/engine";`); + for (const imp of importLines) { + lines.push(` ${imp}`); + } + lines.push(""); + if (bundle.loadFunction) { + lines.push(` await ${bundle.loadFunction}(tsParticles);`); + } + lines.push(" ```"); + lines.push(""); + } + + return lines.join("\n"); +} diff --git a/integrations/mcp-server/src/resources/optionsGuide.ts b/integrations/mcp-server/src/resources/optionsGuide.ts new file mode 100644 index 00000000000..657bf097d30 --- /dev/null +++ b/integrations/mcp-server/src/resources/optionsGuide.ts @@ -0,0 +1,388 @@ +import type { PackageInfo } from "../types.js"; + +export function getOptionsGuideResource(): string { + const lines: string[] = []; + + lines.push("# tsParticles Options Guide"); + lines.push(""); + lines.push("Complete structural guide to tsParticles `ISourceOptions` configuration."); + lines.push("Options are specified as a JSON object passed to `tsParticles.load()`."); + lines.push(""); + + lines.push("## Top-Level Options"); + lines.push(""); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `autoPlay` | `boolean` | `true` | Automatically start animation |"); + lines.push("| `background` | `object` | — | Background color, opacity, image, position |"); + lines.push("| `background.color` | `string | IOptionsColor` | — | Background color value |"); + lines.push("| `background.opacity` | `number` | `1` | Background opacity |"); + lines.push("| `background.image` | `string` | — | CSS background image URL |"); + lines.push("| `background.position` | `string` | `50% 50%` | Background position |"); + lines.push("| `background.repeat` | `string` | `no-repeat` | Background repeat |"); + lines.push("| `background.size` | `string` | `cover` | Background size |"); + lines.push("| `clear` | `boolean` | `true` | Clear canvas before each frame |"); + lines.push("| `delay` | `number` | `0` | Delay before starting animation |"); + lines.push("| `detectRetina` | `boolean` | `true` | Automatically detect and use retina resolution |"); + lines.push("| `duration` | `number` | `0` | Animation duration in seconds (0 = infinite) |"); + lines.push("| `fpsLimit` | `number` | `120` | Maximum FPS |"); + lines.push("| `fullScreen` | `boolean | object` | `false` | Enable fullscreen canvas |"); + lines.push("| `fullScreen.enable` | `boolean` | — | Fill the entire viewport |"); + lines.push("| `fullScreen.zIndex` | `number` | `-1` | Z-index for fullscreen canvas |"); + lines.push("| `hdr` | `boolean` | `true` | High dynamic range rendering |"); + lines.push("| `key` | `string` | — | Unique key for this instance |"); + lines.push("| `name` | `string` | — | Name for this configuration |"); + lines.push("| `palette` | `string` | — | Color palette name to use |"); + lines.push("| `pauseOnBlur` | `boolean` | `true` | Pause when page loses focus |"); + lines.push("| `pauseOnOutsideViewport` | `boolean` | `true` | Pause when canvas is outside viewport |"); + lines.push("| `preset` | `string | string[]` | — | Preset name(s) to load |"); + lines.push("| `smooth` | `boolean` | `false` | Enable smooth rendering |"); + lines.push("| `style` | `object` | `{}` | CSS styles for the canvas element |"); + lines.push("| `zLayers` | `number` | `100` | Maximum number of z-layers |"); + lines.push(""); + + lines.push("## Particles Options (`particles` property)"); + lines.push(""); + lines.push("### `particles.number` — Particle Count"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `number.value` | `number | { min, max }` | `80` | Number of particles |"); + lines.push("| `number.density.enable` | `boolean` | `false` | Adjust count based on canvas area |"); + lines.push("| `number.density.width` | `number` | — | Density calculation width |"); + lines.push("| `number.density.height` | `number` | — | Density calculation height |"); + lines.push("| `number.limit.mode` | `string` | `delete` | What happens when limit reached |"); + lines.push("| `number.limit.value` | `number` | `0` | Maximum particle limit (0 = no limit) |"); + lines.push(""); + + lines.push("### `particles.color` — Particle Color"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `color.value` | `string | string[] | IAnimatableColor` | — | Particle color(s) |"); + lines.push("| `color.animation.enable` | `boolean` | `false` | Enable color animation |"); + lines.push("| `color.animation.speed` | `number` | `1` | Color animation speed |"); + lines.push("| `color.animation.sync` | `boolean` | `false` | Sync color animations |"); + lines.push(""); + + lines.push("### `particles.shape` — Particle Shape"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `shape.type` | `string | string[]` | `circle` | Shape type(s): circle, square, star, heart, emoji, image, text, polygon, etc. |"); + lines.push("| `shape.options` | `object` | `{}` | Shape-specific options (per shape type) |"); + lines.push("| `shape.options.image.src` | `string` | — | Image URL (for 'image' shape) |"); + lines.push("| `shape.options.image.width` | `number` | — | Image width (for 'image' shape) |"); + lines.push("| `shape.options.image.height` | `number` | — | Image height (for 'image' shape) |"); + lines.push("| `shape.options.text.value` | `string` | — | Text to render (for 'text' shape) |"); + lines.push("| `shape.options.polygon.sides` | `number` | `5` | Polygon sides (for 'polygon' shape) |"); + lines.push("| `shape.options.emoji.value` | `string` | — | Emoji character (for 'emoji' shape) |"); + lines.push("| `shape.options.star.sides` | `number` | `5` | Star points (for 'star' shape) |"); + lines.push(""); + + lines.push("### `particles.opacity` — Opacity"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `opacity.value` | `number | { min, max }` | `1` | Particle opacity |"); + lines.push("| `opacity.animation.enable` | `boolean` | `false` | Enable opacity animation |"); + lines.push("| `opacity.animation.speed` | `number` | `2` | Opacity change speed per second |"); + lines.push("| `opacity.animation.minimumValue` | `number` | — | Minimum opacity during animation |"); + lines.push("| `opacity.animation.startValue` | `string` | `random` | Start value (random, min, max) |"); + lines.push("| `opacity.animation.sync` | `boolean` | `false` | Sync opacity animations |"); + lines.push(""); + + lines.push("### `particles.size` — Size"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `size.value` | `number | { min, max }` | `3` | Particle size |"); + lines.push("| `size.animation.enable` | `boolean` | `false` | Enable size animation |"); + lines.push("| `size.animation.speed` | `number` | `2` | Size change speed per second |"); + lines.push("| `size.animation.minimumValue` | `number` | — | Minimum size during animation |"); + lines.push("| `size.animation.startValue` | `string` | `random` | Start value (random, min, max) |"); + lines.push("| `size.animation.sync` | `boolean` | `false` | Sync size animations |"); + lines.push(""); + + lines.push("### `particles.links` — Particle Links (requires @tsparticles/interaction-particles-links)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `links.enable` | `boolean` | `false` | Draw connecting lines between particles |"); + lines.push("| `links.distance` | `number` | `100` | Maximum link distance |"); + lines.push("| `links.color` | `string | IOptionsColor` | — | Link line color |"); + lines.push("| `links.opacity` | `number` | `0.4` | Link line opacity |"); + lines.push("| `links.width` | `number` | `1` | Link line width |"); + lines.push("| `links.triangles.enable` | `boolean` | `false` | Connect links into triangles |"); + lines.push("| `links.triangles.opacity` | `number` | `0.1` | Triangle fill opacity |"); + lines.push(""); + + lines.push("### `particles.move` — Movement"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `move.enable` | `boolean` | `true` | Enable particle movement |"); + lines.push("| `move.speed` | `number | { min, max }` | `2` | Movement speed |"); + lines.push("| `move.direction` | `string` | `none` | Direction: none, top, top-right, right, bottom-right, bottom, bottom-left, left, top-left |"); + lines.push("| `move.random` | `boolean` | `false` | Random direction |"); + lines.push("| `move.straight` | `boolean` | `false` | Move in straight line |"); + lines.push("| `move.outModes.default` | `string` | `out` | Out-of-bounds mode: bounce, destroy, none, out |"); + lines.push("| `move.outModes.top/bottom/left/right` | `string` | — | Per-side out-of-bounds mode |"); + lines.push("| `move.bounce` | `boolean` | `false` | Bounce off canvas edges |"); + lines.push("| `move.attract.enable` | `boolean` | `false` | Attract particles to center |"); + lines.push("| `move.attract.rotate.x/y` | `number` | — | Attraction rotation |"); + lines.push("| `move.gravity.enable` | `boolean` | `false` | Enable gravity |"); + lines.push("| `move.gravity.acceleration` | `number` | `9.81` | Gravity acceleration |"); + lines.push("| `move.path.enable` | `boolean` | `false` | Follow a path generator |"); + lines.push("| `move.path.generator` | `string` | — | Path generator type |"); + lines.push("| `move.path.options` | `object` | — | Path generator options |"); + lines.push("| `move.spin.enable` | `boolean` | `false` | Spin movement |"); + lines.push("| `move.spin.speed` | `number` | — | Spin speed |"); + lines.push(""); + + lines.push("### `particles.collisions` — Collision (requires @tsparticles/interaction-particles-collisions)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `collisions.enable` | `boolean` | `false` | Particles collide with each other |"); + lines.push("| `collisions.mode` | `string` | `bounce` | Collision mode: bounce, absorb |"); + lines.push(""); + + lines.push("### `particles.life` — Lifetime (requires @tsparticles/updater-life)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `life.count` | `number` | Number of times a particle can respawn (0 = infinite) |"); + lines.push("| `life.delay` | `number | { min, max }` | Delay before a particle starts its life |"); + lines.push("| `life.duration` | `number | { min, max }` | Particle lifetime duration |"); + lines.push(""); + + lines.push("### `particles.rotate` — Rotation (requires @tsparticles/updater-rotate)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `rotate.value` | `number | { min, max }` | `0` | Rotation angle |"); + lines.push("| `rotate.animation.enable` | `boolean` | `false` | Enable rotation animation |"); + lines.push("| `rotate.animation.speed` | `number` | `5` | Rotation speed per second |"); + lines.push("| `rotate.animation.sync` | `boolean` | `false` | Sync rotations |"); + lines.push("| `rotate.direction` | `string` | `clockwise` | Direction: clockwise, counter-clockwise, random |"); + lines.push(""); + + lines.push("### `particles.tilt` — Tilt (requires @tsparticles/updater-tilt)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `tilt.value` | `number | { min, max }` | `0` | Tilt angle |"); + lines.push("| `tilt.animation.enable` | `boolean` | `false` | Enable tilt animation |"); + lines.push("| `tilt.animation.speed` | `number` | `5` | Tilt animation speed |"); + lines.push("| `tilt.direction` | `string` | `clockwise` | Tilt direction |"); + lines.push(""); + + lines.push("### `particles.wobble` — Wobble (requires @tsparticles/updater-wobble)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `wobble.distance` | `number` | `5` | Wobble oscillation distance |"); + lines.push("| `wobble.enable` | `boolean` | `false` | Enable wobble |"); + lines.push("| `wobble.speed` | `number` | — | Wobble oscillation speed |"); + lines.push(""); + + lines.push("### `particles.roll` — Roll (requires @tsparticles/updater-roll)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `roll.enable` | `boolean` | Enable rolling effect |"); + lines.push("| `roll.mode` | `string` | Roll mode: horizontal, vertical, both |"); + lines.push("| `roll.speed` | `number` | Roll rotation speed |"); + lines.push(""); + + lines.push("### `particles.twinkle` — Twinkle (requires @tsparticles/updater-twinkle)"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `twinkle.lines.enable` | `boolean` | `false` | Enable line twinkle |"); + lines.push("| `twinkle.lines.frequency` | `number` | `0.05` | Line twinkle frequency |"); + lines.push("| `twinkle.lines.opacity` | `number` | `0.5` | Line twinkle opacity |"); + lines.push("| `twinkle.particles.enable` | `boolean` | `false` | Enable particle twinkle |"); + lines.push("| `twinkle.particles.frequency` | `number` | `0.05` | Particle twinkle frequency |"); + lines.push("| `twinkle.particles.opacity` | `number` | `0.5` | Particle twinkle opacity |"); + lines.push(""); + + lines.push("### `particles.destroy` — Destroy (requires @tsparticles/updater-destroy)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `destroy.mode` | `string` | Destroy mode: split, explode |"); + lines.push("| `destroy.split.count` | `number` | Number of split pieces |"); + lines.push("| `destroy.split.factor` | `object` | Size/orbit factor for splits |"); + lines.push("| `destroy.split.rate` | `object` | Split rate configuration |"); + lines.push(""); + + lines.push("### `particles.bounce` — Bounce"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `bounce.horizontal.value` | `number` | Horizontal bounce factor |"); + lines.push("| `bounce.vertical.value` | `number` | Vertical bounce factor |"); + lines.push(""); + + lines.push("### `particles.groups` — Particle Groups"); + lines.push("Groups allow different particle configurations within the same container."); + lines.push("Each group key maps to a partial IParticlesOptions object."); + lines.push("```json"); + lines.push('"groups": {'); + lines.push(' "red": { "color": { "value": "#ff0000" }, "size": { "value": 5 } },'); + lines.push(' "blue": { "color": { "value": "#0000ff" }, "size": { "value": 3 } }'); + lines.push("}"); + lines.push("```"); + lines.push(""); + + lines.push("### `particles.reduceDuplicates`"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `reduceDuplicates` | `boolean` | `false` | Reduce duplicate particles |"); + lines.push(""); + + lines.push("### `particles.zIndex` — Z-Index / Depth"); + lines.push("| Option | Type | Default | Description |"); + lines.push("|--------|------|---------|-------------|"); + lines.push("| `zIndex.value` | `number | { min, max }` | `0` | Z-index value |"); + lines.push("| `zIndex.velocityRate` | `number` | `1` | Velocity effect on z-index |"); + lines.push("| `zIndex.sizeRate` | `number` | `1` | Size effect on z-index |"); + lines.push("| `zIndex.opacityRate` | `number` | `1` | Opacity effect on z-index |"); + lines.push(""); + + lines.push("## Interactivity Options"); + lines.push(""); + lines.push("### `interactivity.events` — Event Triggers (requires @tsparticles/plugin-interactivity)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `events.onHover.enable` | `boolean` | Enable hover interactions |"); + lines.push("| `events.onHover.mode` | `string | string[]` | Hover mode(s) to activate |"); + lines.push("| `events.onHover.parallax.enable` | `boolean` | Enable parallax effect |"); + lines.push("| `events.onHover.parallax.force` | `number` | Parallax force |"); + lines.push("| `events.onHover.parallax.smooth` | `number` | Parallax smoothing |"); + lines.push("| `events.onClick.enable` | `boolean` | Enable click interactions |"); + lines.push("| `events.onClick.mode` | `string | string[]` | Click mode(s) to activate |"); + lines.push("| `events.resize` | `boolean` \`true\` | Enable resize events |"); + lines.push(""); + + lines.push("### Hover/Click Modes"); + lines.push(""); + lines.push("Available interaction modes and their packages:"); + lines.push("| Mode | Package | Description |"); + lines.push("|------|---------|-------------|"); + lines.push("| `attract` | `@tsparticles/interaction-external-attract` | Attract particles to cursor |"); + lines.push("| `bounce` | `@tsparticles/interaction-external-bounce` | Bounce particles from cursor |"); + lines.push("| `bubble` | `@tsparticles/interaction-external-bubble` | Enlarge particles near cursor |"); + lines.push("| `connect` | `@tsparticles/interaction-external-connect` | Connect cursor to particles |"); + lines.push("| `destroy` | `@tsparticles/interaction-external-destroy` | Destroy particles at cursor |"); + lines.push("| `grab` | `@tsparticles/interaction-external-grab` | Grab/connect lines to particles |"); + lines.push("| `pause` | `@tsparticles/interaction-external-pause` | Pause animation on hover |"); + lines.push("| `push` | `@tsparticles/interaction-external-push` | Add particles on click |"); + lines.push("| `remove` | `@tsparticles/interaction-external-remove` | Remove particles on click |"); + lines.push("| `repulse` | `@tsparticles/interaction-external-repulse` | Repulse from cursor |"); + lines.push("| `slow` | `@tsparticles/interaction-external-slow` | Slow particles near cursor |"); + lines.push("| `trail` | `@tsparticles/interaction-external-trail` | Mouse trail effect |"); + lines.push("| `cannon` | `@tsparticles/interaction-external-cannon` | Fire particles on click |"); + lines.push("| `particle` | `@tsparticles/interaction-external-particle` | Spawn particle on click |"); + lines.push("| `pop` | `@tsparticles/interaction-external-pop` | Pop particles on click |"); + lines.push("| `light` | `@tsparticles/interaction-light` | Light source effect |"); + lines.push("| `drag` | `@tsparticles/interaction-external-drag` | Drag particles |"); + lines.push(""); + + lines.push("## Plugin-Specific Options"); + lines.push(""); + + lines.push("### Absorbers (`@tsparticles/plugin-absorbers`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `absorbers` | `object | object[]` | Absorber configuration(s) |"); + lines.push("| `absorbers[].position` | `{ x, y }` | Absorber position |"); + lines.push("| `absorbers[].size` | `{ value, limit }` | Absorber size |"); + lines.push("| `absorbers[].color` | `string | IOptionsColor` | Absorber color |"); + lines.push("| `absorbers[].opacity` | `number` | Absorber opacity |"); + lines.push("| `absorbers[].draggable` | `boolean` | Make absorber draggable |"); + lines.push("| `absorbers[].orbit` | `boolean` | Particles orbit before being absorbed |"); + lines.push("| `absorbers[].destroy` | `boolean` | Destroy absorbed particles |"); + lines.push(""); + + lines.push("### Emitters (`@tsparticles/plugin-emitters`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `emitters` | `object | object[]` | Emitter configuration(s) |"); + lines.push("| `emitters[].position` | `{ x, y }` | Emitter position |"); + lines.push("| `emitters[].size` | `{ width, height }` | Emitter area size |"); + lines.push("| `emitters[].rate` | `{ quantity, delay }` | Particle emission rate |"); + lines.push("| `emitters[].life.count` | `number` | Emitter lifetime (0 = infinite) |"); + lines.push("| `emitters[].life.delay` | `number` | Delay before emitting starts |"); + lines.push("| `emitters[].life.duration` | `number` | How long emitter stays active |"); + lines.push("| `emitters[].particles` | `IParticlesOptions` | Overrides for emitted particles |"); + lines.push("| `emitters[].shape.type` | `string` | Emission shape: circle, square, path, canvas, polygon |"); + lines.push(""); + + lines.push("### Background Mask (`@tsparticles/plugin-background-mask`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `backgroundMask.enable` | `boolean` | Enable background masking |"); + lines.push("| `backgroundMask.cover.color` | `string | IOptionsColor` | Cover color |"); + lines.push("| `backgroundMask.cover.opacity` | `number` | Cover opacity |"); + lines.push(""); + + lines.push("### Polygon Mask (`@tsparticles/plugin-polygon-mask`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `polygon.enable` | `boolean` | Enable polygon mask |"); + lines.push("| `polygon.type` | `string` | Polygon type: inline, outside, inside, none |"); + lines.push("| `polygon.url` | `string` | SVG URL for the polygon |"); + lines.push("| `polygon.data` | `string` | Inline SVG path data |"); + lines.push("| `polygon.scale` | `number` | Polygon scale |"); + lines.push("| `polygon.position` | `{ x, y }` | Polygon position |"); + lines.push(""); + + lines.push("### Sounds (`@tsparticles/plugin-sounds`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `sounds.enable` | `boolean` | Enable sound effects |"); + lines.push(""); + + lines.push("### Themes (`@tsparticles/plugin-themes`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `themes` | `object[]` | Theme definitions |"); + lines.push("| `themes[].name` | `string` | Theme name |"); + lines.push("| `themes[].default` | `object` | Dark/light default |"); + lines.push("| `themes[].options` | `ISourceOptions` | Theme-specific options |"); + lines.push(""); + + lines.push("### Responsive (`@tsparticles/plugin-responsive`)"); + lines.push("| Option | Type | Description |"); + lines.push("|--------|------|-------------|"); + lines.push("| `responsive` | `object[]` | Responsive breakpoint configs |"); + lines.push("| `responsive[].maxWidth` | `number` | Max width for this breakpoint |"); + lines.push("| `responsive[].mode` | `string` | Screen mode |"); + lines.push("| `responsive[].options` | `ISourceOptions` | Options for this breakpoint |"); + lines.push(""); + + lines.push("## Common Configuration Examples"); + lines.push(""); + lines.push("### Minimal Setup"); + lines.push("```json"); + lines.push('{ "particles": { "number": { "value": 50 }, "shape": { "type": "circle" }, "move": { "speed": 2 } } }'); + lines.push("```"); + lines.push(""); + lines.push("### Starry Night"); + lines.push("```json"); + lines.push('{'); + lines.push(' "background": { "color": "#000" },'); + lines.push(' "particles": {'); + lines.push(' "number": { "value": 100 },'); + lines.push(' "color": { "value": "#fff" },'); + lines.push(' "shape": { "type": "circle" },'); + lines.push(' "opacity": { "value": { "min": 0.1, "max": 1 } },'); + lines.push(' "size": { "value": { "min": 1, "max": 3 } },'); + lines.push(' "move": { "enable": false }'); + lines.push(' }'); + lines.push("}"); + lines.push("```"); + lines.push(""); + lines.push("### Connected Particles (Network)"); + lines.push("```json"); + lines.push('{'); + lines.push(' "background": { "color": "#0d1117" },'); + lines.push(' "particles": {'); + lines.push(' "number": { "value": 80 },'); + lines.push(' "color": { "value": "#58a6ff" },'); + lines.push(' "links": { "enable": true, "distance": 150, "color": "#8b949e", "opacity": 0.4 },'); + lines.push(' "move": { "speed": 1 }'); + lines.push(' }'); + lines.push("}"); + lines.push("```"); + lines.push(""); + + return lines.join("\n"); +} diff --git a/integrations/mcp-server/src/resources/packageCatalog.test.ts b/integrations/mcp-server/src/resources/packageCatalog.test.ts new file mode 100644 index 00000000000..3846785e588 --- /dev/null +++ b/integrations/mcp-server/src/resources/packageCatalog.test.ts @@ -0,0 +1,19 @@ +import { describe, it, expect } from "vitest"; +import { getPackageCatalogResource } from "./packageCatalog.js"; + +describe("getPackageCatalogResource", () => { + it("should generate markdown with all categories", () => { + const result = getPackageCatalogResource(); + expect(typeof result).toBe("string"); + expect(result.length).toBeGreaterThan(1000); + expect(result).toContain("## Bundles"); + expect(result).toContain("## Plugins"); + expect(result).toContain("## Shapes"); + }); + + it("should include package descriptions", () => { + const result = getPackageCatalogResource(); + expect(result).toContain("@tsparticles/plugin-absorbers"); + expect(result).toContain("@tsparticles/shape-circle"); + }); +}); diff --git a/integrations/mcp-server/src/resources/packageCatalog.ts b/integrations/mcp-server/src/resources/packageCatalog.ts new file mode 100644 index 00000000000..c5553e21472 --- /dev/null +++ b/integrations/mcp-server/src/resources/packageCatalog.ts @@ -0,0 +1,82 @@ +import type { PackageCategory } from "../types.js"; +import { packageCatalog } from "../registry/packages.js"; +import { bundles } from "../registry/bundles.js"; + +const CATEGORY_LABELS: Record = { + bundle: "Bundles (pre-composed feature sets)", + plugin: "Plugins (core feature add-ons)", + "interaction-external": "External Interactions (mouse/touch)", + "interaction-particles": "Particle Interactions (particle-to-particle)", + "interaction-light": "Light Interaction", + updater: "Updaters (particle property animations)", + shape: "Shapes (particle visual styles)", + effect: "Effects (canvas overlays)", + path: "Paths (movement generators)", + "emitter-shape": "Emitter Shapes (emission area types)", + color: "Color Plugins (color notation support)", + easing: "Easing Plugins (animation curves)", + preset: "Presets (pre-configured effects)", +}; + +export function getPackageCatalogResource(): string { + const lines: string[] = []; + + lines.push("# tsParticles Package Catalog"); + lines.push(""); + lines.push( + "Complete catalog of all tsParticles packages organized by category.", + ); + lines.push(""); + + for (const [cat, label] of Object.entries(CATEGORY_LABELS)) { + const category = cat as PackageCategory; + const packages = packageCatalog.byCategory[category]; + if (!packages || packages.length === 0) continue; + + lines.push(`## ${label}`); + lines.push(""); + + for (const pkg of packages) { + const loadFunc = pkg.loadFunction + ? `\n - Load function: \`${pkg.loadFunction}\`` + : ""; + const b = pkg.includedInBundles.length > 0 + ? `\n - Included in: ${pkg.includedInBundles.join(", ")}` + : ""; + const opts = pkg.optionKeys.length > 0 + ? `\n - Options: \`${pkg.optionKeys.join("`, `")}\`` + : ""; + const check = pkg.needsPluginCheck + ? `\n - Activation: ${pkg.needsPluginCheck}` + : ""; + + lines.push(`- \`${pkg.name}\``); + lines.push( + ` ${pkg.description}${loadFunc}${b}${opts}${check}`, + ); + } + lines.push(""); + } + + lines.push("## Bundle Compositions"); + lines.push(""); + + for (const bundle of bundles) { + lines.push(`### ${bundle.name}`); + lines.push(""); + lines.push(`${bundle.description}`); + if (bundle.extends) { + lines.push(`- Extends: \`${bundle.extends}\``); + } + if (bundle.loadFunction) { + lines.push(`- Load function: \`${bundle.loadFunction}(engine)\``); + } + lines.push("- Contains:"); + for (const pkg of bundle.packages) { + lines.push(` - \`${pkg}\``); + } + lines.push(""); + } + + return lines.join("\n"); +} diff --git a/integrations/mcp-server/src/tools/diagnoseIssues.test.ts b/integrations/mcp-server/src/tools/diagnoseIssues.test.ts new file mode 100644 index 00000000000..3874e8733ad --- /dev/null +++ b/integrations/mcp-server/src/tools/diagnoseIssues.test.ts @@ -0,0 +1,171 @@ +import { describe, it, expect } from "vitest"; +import { diagnoseIssues } from "./diagnoseIssues.js"; + +describe("diagnoseIssues", () => { + it("should return no issues for empty options", () => { + const issues = diagnoseIssues({}); + expect(Array.isArray(issues)).toBe(true); + }); + + it("should detect invisible particles (opacity = 0)", () => { + const issues = diagnoseIssues({ + particles: { + opacity: { value: 0 }, + }, + }); + expect(issues.some(i => i.title.includes("opacity = 0"))).toBe(true); + expect(issues.find(i => i.title.includes("opacity = 0"))?.severity).toBe("error"); + }); + + it("should detect invisible particles (size = 0)", () => { + const issues = diagnoseIssues({ + particles: { + size: { value: 0 }, + }, + }); + expect(issues.some(i => i.title.includes("size = 0"))).toBe(true); + }); + + it("should not flag opacity=0 if animation is enabled", () => { + const issues = diagnoseIssues({ + particles: { + opacity: { value: 0, animation: { enable: true } }, + }, + }); + expect(issues.some(i => i.title.includes("opacity = 0"))).toBe(false); + }); + + it("should detect links interaction needed", () => { + const issues = diagnoseIssues({ + particles: { + links: { enable: true }, + }, + }); + expect(issues.some(i => i.title.includes("Links interaction"))).toBe(true); + }); + + it("should detect missing interactivity plugin", () => { + const issues = diagnoseIssues({ + interactivity: { + events: { onClick: { mode: "push" } }, + }, + }); + expect(issues.some(i => i.title.includes("Interactivity plugin"))).toBe(true); + }); + + it("should detect shape plugin needed", () => { + const issues = diagnoseIssues({ + particles: { + shape: { type: "star" }, + }, + }); + expect(issues.some(i => i.title.includes("Shape"))).toBe(true); + }); + + it("should detect emitters plugin needed", () => { + const issues = diagnoseIssues({ + emitters: [{ position: { x: 50, y: 50 } }], + }); + expect(issues.some(i => i.title.includes("Emitters plugin"))).toBe(true); + }); + + it("should detect absorbers plugin needed", () => { + const issues = diagnoseIssues({ + absorbers: [{ position: { x: 50, y: 50 } }], + }); + expect(issues.some(i => i.title.includes("Absorbers plugin"))).toBe(true); + }); + + it("should detect interaction mode", () => { + const issues = diagnoseIssues({ + interactivity: { + modes: { + grab: { distance: 200 }, + }, + }, + }); + expect(issues.some(i => i.title.includes("grab"))).toBe(true); + }); + + it("should detect hex color warning", () => { + const issues = diagnoseIssues({ + particles: { + color: { value: "#ff0000" }, + }, + }); + expect(issues.some(i => i.title.includes("Hex color"))).toBe(true); + }); + + it("should detect low particle count", () => { + const issues = diagnoseIssues({ + particles: { + number: { value: 10 }, + }, + }); + expect(issues.some(i => i.title.includes("Low particle count"))).toBe(true); + }); + + it("should warn about fullScreen not set", () => { + const issues = diagnoseIssues({}); + expect(issues.some(i => i.title.includes("Full-screen not enabled"))).toBe(true); + }); + + it("should detect high particle count performance issue", () => { + const issues = diagnoseIssues({ + particles: { + number: { value: 2000 }, + }, + }); + expect(issues.some(i => i.title.includes("High particle count"))).toBe(true); + }); + + it("should detect move plugin needed", () => { + const issues = diagnoseIssues({ + particles: { + move: { speed: 5 }, + }, + }); + expect(issues.some(i => i.title.includes("Move plugin"))).toBe(true); + }); + + it("should detect emitter shape", () => { + const issues = diagnoseIssues({ + emitters: { + shape: { type: "square" }, + }, + }); + expect(issues.some(i => i.title.includes("Emitter shape"))).toBe(true); + }); + + it("should detect interaction mode packages beyond the defaults", () => { + const issues = diagnoseIssues({ + interactivity: { + modes: { + repulse: { distance: 200 }, + attract: { distance: 100 }, + }, + }, + }); + expect(issues.some(i => i.title.includes("repulse"))).toBe(true); + expect(issues.some(i => i.title.includes("attract"))).toBe(true); + }); + + it("should generate multiple issues for a complex broken config", () => { + const issues = diagnoseIssues({ + interactivity: { + modes: { + bubble: { size: 10 }, + push: { quantity: 4 }, + }, + }, + emitters: [{ position: { x: 50, y: 50 } }], + particles: { + opacity: { value: 0 }, + links: { enable: true }, + shape: { type: "star" }, + number: { value: 5 }, + }, + }); + expect(issues.length).toBeGreaterThanOrEqual(5); + }); +}); diff --git a/integrations/mcp-server/src/tools/diagnoseIssues.ts b/integrations/mcp-server/src/tools/diagnoseIssues.ts new file mode 100644 index 00000000000..e3be32746fc --- /dev/null +++ b/integrations/mcp-server/src/tools/diagnoseIssues.ts @@ -0,0 +1,330 @@ +import { packageCatalog } from "../registry/packages.js"; + +export interface DiagnosticIssue { + severity: "error" | "warning" | "info"; + title: string; + description: string; + fix?: string; + relatedPackages?: string[]; +} + +function getOptionValue(options: Record, path: string): unknown { + const parts = path.split("."); + let current: unknown = options; + for (const part of parts) { + if (current === undefined || current === null || typeof current !== "object") { + return undefined; + } + current = (current as Record)[part]; + } + return current; +} + +export function diagnoseIssues(options: Record): DiagnosticIssue[] { + const issues: DiagnosticIssue[] = []; + + // ── No Plugins Loaded (most common issue) ─────────────────────── + const hasParticleOptions = + getOptionValue(options, "particles.number") !== undefined || + getOptionValue(options, "particles.color") !== undefined || + getOptionValue(options, "particles.shape") !== undefined || + getOptionValue(options, "particles.size") !== undefined || + getOptionValue(options, "particles.opacity") !== undefined || + getOptionValue(options, "particles.move") !== undefined || + getOptionValue(options, "particles.links") !== undefined; + + if (hasParticleOptions) { + issues.push({ + severity: "info", + title: "Verify plugins are loaded", + description: + "The @tsparticles/engine alone has no shape drawers, movement system, or updaters. Make sure you have loaded the required plugins before initializing — either via a bundle (loadBasic, loadSlim, loadFull) or by loading individual plugins.", + fix: + "Load at least @tsparticles/basic via loadBasic(engine), or load individual plugins like loadCircleShape, loadMovePlugin, loadOpacityUpdater, loadSizeUpdater, loadHexColorPlugin, loadRgbColorPlugin, loadHslColorPlugin.", + relatedPackages: [ + "@tsparticles/basic", + "@tsparticles/slim", + "@tsparticles/full", + ], + }); + } + + // ── Canvas / Container ────────────────────────────────────────── + if (options.id && typeof options.id !== "string" && typeof options.id !== "object") { + issues.push({ + severity: "error", + title: "Invalid container ID", + description: `The 'id' option should be a string matching the container element ID, or an object/HTMLElement. Got: ${typeof options.id}`, + fix: "Set id to a string like 'tsparticles' matching your
element.", + }); + } + + // ── Particle Visibility ───────────────────────────────────────── + const opacityVal = getOptionValue(options, "particles.opacity.value"); + if (opacityVal !== undefined && Number(opacityVal) === 0) { + const opacityAnim = getOptionValue(options, "particles.opacity.animation.enable"); + if (!opacityAnim) { + issues.push({ + severity: "error", + title: "Particles invisible (opacity = 0)", + description: "particles.opacity.value is set to 0 with no animation enabled. Particles will be fully transparent.", + fix: "Set particles.opacity.value to a value between 0.1 and 1, or enable opacity animation.", + }); + } + } + + const sizeVal = getOptionValue(options, "particles.size.value"); + if (sizeVal !== undefined && Number(sizeVal) === 0) { + const sizeAnim = getOptionValue(options, "particles.size.animation.enable"); + if (!sizeAnim) { + issues.push({ + severity: "error", + title: "Particles invisible (size = 0)", + description: "particles.size.value is set to 0 with no animation enabled. Particles will have zero width.", + fix: "Set particles.size.value to a value > 0, or enable size animation.", + }); + } + } + + // ── Missing Move Plugin ───────────────────────────────────────── + const moveVal = getOptionValue(options, "particles.move"); + if (moveVal !== undefined) { + issues.push({ + severity: "warning", + title: "Move plugin required", + description: "You have particles.move configured. Make sure @tsparticles/plugin-move is loaded before initializing tsParticles, otherwise particles won't move.", + fix: "Install and load @tsparticles/plugin-move via loadMovePlugin(engine).", + relatedPackages: ["@tsparticles/plugin-move"], + }); + } + + // ── Missing Color Plugin ──────────────────────────────────────── + const colorValue = getOptionValue(options, "particles.color.value"); + if (colorValue !== undefined && colorValue !== null) { + const colorStr = String(colorValue); + if (colorStr.startsWith("#")) { + issues.push({ + severity: "warning", + title: "Hex color format needs hex-color plugin", + description: "You're using a hex color (#RRGGBB). Load @tsparticles/plugin-hex-color or use a built-in color name.", + fix: "Install and load @tsparticles/plugin-hex-color via loadHexColorPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-hex-color"], + }); + } + if (colorStr.startsWith("hsl")) { + issues.push({ + severity: "warning", + title: "HSL color format needs hsl-color plugin", + description: "You're using an HSL color. Load @tsparticles/plugin-hsl-color or use a built-in color name.", + fix: "Install and load @tsparticles/plugin-hsl-color via loadHslColorPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-hsl-color"], + }); + } + if (colorStr.startsWith("rgb")) { + issues.push({ + severity: "warning", + title: "RGB color format needs rgb-color plugin", + description: "You're using an RGB color. Load @tsparticles/plugin-rgb-color or use a built-in color name.", + fix: "Install and load @tsparticles/plugin-rgb-color via loadRgbColorPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-rgb-color"], + }); + } + } + + // ── Missing Shape Plugin ──────────────────────────────────────── + const shapeType = getOptionValue(options, "particles.shape.type"); + if (shapeType) { + const names = typeof shapeType === "string" + ? shapeType.split(/[,\s]+/).filter(Boolean) + : Array.isArray(shapeType) ? shapeType.filter(Boolean) : []; + for (const name of names) { + const cleanName = name.replace("@tsparticles/", ""); + const fullName = cleanName.startsWith("shape-") + ? `@tsparticles/${cleanName}` + : `@tsparticles/shape-${cleanName}`; + if (packageCatalog.byName[fullName]) { + issues.push({ + severity: "warning", + title: `Shape '${cleanName}' needs its plugin`, + description: `Shape type '${name}' requires ${fullName}. Without it, particles with this shape won't render.`, + fix: `Install and load ${fullName}.`, + relatedPackages: [fullName], + }); + } + } + } + + // ── Missing Interactivity Plugin ──────────────────────────────── + const interactivity = getOptionValue(options, "interactivity"); + if (interactivity !== undefined) { + issues.push({ + severity: "warning", + title: "Interactivity plugin required", + description: "You have interactivity configured. Make sure @tsparticles/plugin-interactivity is loaded, otherwise mouse/touch interactions won't work.", + fix: "Install and load @tsparticles/plugin-interactivity via loadInteractivityPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-interactivity"], + }); + } + + // ── Missing Interaction Packages ──────────────────────────────── + const modes = getOptionValue(options, "interactivity.modes") as Record | undefined; + if (modes) { + const modeToPackage: Record = { + attract: "@tsparticles/interaction-external-attract", + bounce: "@tsparticles/interaction-external-bounce", + bubble: "@tsparticles/interaction-external-bubble", + cannon: "@tsparticles/interaction-external-cannon", + connect: "@tsparticles/interaction-external-connect", + destroy: "@tsparticles/interaction-external-destroy", + drag: "@tsparticles/interaction-external-drag", + grab: "@tsparticles/interaction-external-grab", + particle: "@tsparticles/interaction-external-particle", + pause: "@tsparticles/interaction-external-pause", + pop: "@tsparticles/interaction-external-pop", + push: "@tsparticles/interaction-external-push", + remove: "@tsparticles/interaction-external-remove", + repulse: "@tsparticles/interaction-external-repulse", + slow: "@tsparticles/interaction-external-slow", + trail: "@tsparticles/interaction-external-trail", + light: "@tsparticles/interaction-light", + }; + + for (const [mode, pkg] of Object.entries(modeToPackage)) { + if (getOptionValue(options, `interactivity.modes.${mode}`) !== undefined) { + issues.push({ + severity: "info", + title: `Interaction mode '${mode}' needs package`, + description: `Interactivity mode '${mode}' is configured. Make sure ${pkg} is loaded, otherwise the mode won't produce any effect.`, + fix: `Install and load ${pkg}.`, + relatedPackages: [pkg], + }); + } + } + } + + // ── Links plugin needed ───────────────────────────────────────── + if (getOptionValue(options, "particles.links") !== undefined) { + issues.push({ + severity: "warning", + title: "Links interaction plugin required", + description: "particles.links is configured. Load @tsparticles/interaction-particles-links to draw connecting lines between particles.", + fix: "Install and load @tsparticles/interaction-particles-links via loadParticlesLinksInteraction(engine).", + relatedPackages: ["@tsparticles/interaction-particles-links"], + }); + } + + // ── Missing Emitters Plugin ───────────────────────────────────── + if (getOptionValue(options, "emitters") !== undefined) { + issues.push({ + severity: "warning", + title: "Emitters plugin required", + description: "emitters is configured. Load @tsparticles/plugin-emitters to spawn particles from emitter points.", + fix: "Install and load @tsparticles/plugin-emitters via loadEmittersPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-emitters"], + }); + } + + // ── Missing Absorbers Plugin ──────────────────────────────────── + if (getOptionValue(options, "absorbers") !== undefined) { + issues.push({ + severity: "warning", + title: "Absorbers plugin required", + description: "absorbers is configured. Load @tsparticles/plugin-absorbers for particle absorption behavior.", + fix: "Install and load @tsparticles/plugin-absorbers via loadAbsorbersPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-absorbers"], + }); + } + + // ── Background Mask ───────────────────────────────────────────── + if (getOptionValue(options, "backgroundMask") !== undefined) { + issues.push({ + severity: "warning", + title: "Background mask plugin required", + description: "backgroundMask is configured. Load @tsparticles/plugin-background-mask.", + fix: "Install and load @tsparticles/plugin-background-mask via loadBackgroundMaskPlugin(engine).", + relatedPackages: ["@tsparticles/plugin-background-mask"], + }); + } + + // ── Options Structure Issues ──────────────────────────────────── + const particlesVal = getOptionValue(options, "particles") as Record | undefined; + if (particlesVal && typeof particlesVal === "object" && !("number" in particlesVal) && !("color" in particlesVal) && !("shape" in particlesVal) && !("size" in particlesVal) && !("opacity" in particlesVal) && !("move" in particlesVal)) { + const childKeys = Object.keys(particlesVal).filter(k => typeof particlesVal[k] === "object"); + if (childKeys.length > 0) { + issues.push({ + severity: "info", + title: "Unusual particles structure", + description: "The particles object doesn't contain expected keys (number, color, shape, size, opacity, move). Your options may be nested incorrectly.", + fix: "Ensure your options follow the correct structure: { background, particles: { number, color, shape, size, opacity, move, links, ... }, interactivity: { ... } }", + }); + } + } + + // ── Low particle count ────────────────────────────────────────── + const numParticles = getOptionValue(options, "particles.number.value"); + const densityArea = getOptionValue(options, "particles.number.density.area"); + if (numParticles !== undefined && Number(numParticles) < 30 && !densityArea) { + issues.push({ + severity: "info", + title: "Low particle count", + description: `Only ${numParticles} particles configured. In a full-screen canvas this may look sparse.`, + fix: "Increase particles.number.value to 50-100, or configure particles.number.density.area to auto-scale based on canvas size.", + }); + } + + // ── Full-screen not set ───────────────────────────────────────── + const fullScreen = getOptionValue(options, "fullScreen"); + if (fullScreen === undefined) { + issues.push({ + severity: "info", + title: "Full-screen not enabled by default in v2", + description: "tsParticles v2 does NOT set fullScreen by default. If your container div has no explicit size, the canvas may have zero height.", + fix: "Add fullScreen: { enable: true } to your options, or ensure your container div has explicit width and height (e.g., width: 100%; height: 100vh).", + }); + } + + // ── Preset usage ──────────────────────────────────────────────── + const preset = getOptionValue(options, "preset"); + if (preset && typeof preset === "string") { + issues.push({ + severity: "info", + title: "Using a preset", + description: `You're using the '${preset}' preset. Make sure the corresponding preset package is installed and loaded before initializing tsParticles.`, + }); + } + + // ── Emitter shape ─────────────────────────────────────────────── + const emitterShapeType = getOptionValue(options, "emitters.shape.type"); + if (emitterShapeType) { + const esShapeMap: Record = { + circle: "@tsparticles/plugin-emitters-shape-circle", + square: "@tsparticles/plugin-emitters-shape-square", + canvas: "@tsparticles/plugin-emitters-shape-canvas", + path: "@tsparticles/plugin-emitters-shape-path", + polygon: "@tsparticles/plugin-emitters-shape-polygon", + }; + const name = String(emitterShapeType); + const pkg = esShapeMap[name]; + if (pkg) { + issues.push({ + severity: "info", + title: `Emitter shape '${name}' needs package`, + description: `Emitter shape type '${name}' requires ${pkg}. Without it, the default circle shape will be used.`, + fix: `Install and load ${pkg}.`, + relatedPackages: [pkg], + }); + } + } + + // ── Performance Warnings ──────────────────────────────────────── + if (numParticles !== undefined && Number(numParticles) > 1000) { + issues.push({ + severity: "warning", + title: "High particle count may affect performance", + description: `${numParticles} particles is a lot. Consider reducing the count or enabling performance options.`, + fix: "Set particles.number.value to a lower value (100-500), or enable particles.reduceDuplicates.", + }); + } + + return issues; +} diff --git a/integrations/mcp-server/src/tools/getPackageInfo.test.ts b/integrations/mcp-server/src/tools/getPackageInfo.test.ts new file mode 100644 index 00000000000..23a1c7aab5a --- /dev/null +++ b/integrations/mcp-server/src/tools/getPackageInfo.test.ts @@ -0,0 +1,24 @@ +import { describe, it, expect } from "vitest"; +import { getPackageInfo } from "./getPackageInfo.js"; + +describe("getPackageInfo", () => { + it("should return info for a known package using full name", () => { + const result = getPackageInfo("@tsparticles/plugin-absorbers"); + expect(result).not.toBeNull(); + expect(result!.name).toBe("@tsparticles/plugin-absorbers"); + expect(result!.description).toBeTruthy(); + expect(result!.category).toBe("plugin"); + }); + + it("should return a bundle's sub-packages", () => { + const result = getPackageInfo("@tsparticles/basic"); + expect(result).not.toBeNull(); + expect(result!.subPackages).toBeDefined(); + expect(result!.subPackages!.length).toBeGreaterThan(3); + }); + + it("should return null for unknown package", () => { + const result = getPackageInfo("nonexistent-package"); + expect(result).toBeNull(); + }); +}); diff --git a/integrations/mcp-server/src/tools/getPackageInfo.ts b/integrations/mcp-server/src/tools/getPackageInfo.ts new file mode 100644 index 00000000000..45264c77a5a --- /dev/null +++ b/integrations/mcp-server/src/tools/getPackageInfo.ts @@ -0,0 +1,48 @@ +import { packageCatalog } from "../registry/packages.js"; +import { bundles } from "../registry/bundles.js"; +import { optionToPlugin } from "../registry/pluginOptions.js"; + +export function getPackageInfo(packageName: string) { + const pkg = packageCatalog.byName[packageName]; + if (!pkg) { + return null; + } + + const relatedOptions = optionToPlugin.filter( + (m) => m.packageName === packageName, + ); + + const bundleInfo = bundles.find((b) => + b.packages.some((bp) => bp === packageName), + ); + + const includedInBundles = bundles + .filter((b) => b.packages.some((bp) => bp === packageName)) + .map((b) => ({ name: b.name, description: b.description })); + + const subPackages = + pkg.category === "bundle" + ? bundles + .find((b) => b.name === packageName) + ?.packages.filter((bp) => bp !== packageName) || [] + : undefined; + + return { + name: pkg.name, + description: pkg.description, + category: pkg.category, + loadFunction: pkg.loadFunction, + optionKeys: pkg.optionKeys, + needsPluginCheck: pkg.needsPluginCheck, + alwaysNeeded: pkg.alwaysNeeded, + relatedOptions: relatedOptions.map((ro) => ({ + optionPath: ro.optionPath, + description: ro.description, + })), + includedInBundles, + bundle: bundleInfo + ? { name: bundleInfo.name, description: bundleInfo.description } + : undefined, + subPackages, + }; +} diff --git a/integrations/mcp-server/src/tools/listPackages.test.ts b/integrations/mcp-server/src/tools/listPackages.test.ts new file mode 100644 index 00000000000..39b5c7d6f5e --- /dev/null +++ b/integrations/mcp-server/src/tools/listPackages.test.ts @@ -0,0 +1,35 @@ +import { describe, it, expect } from "vitest"; +import { listPackages } from "./listPackages.js"; + +describe("listPackages", () => { + it("should return all packages when no filter", () => { + const result = listPackages({}); + expect(result.packages.length).toBeGreaterThan(50); + expect(result.categories.length).toBeGreaterThan(5); + }); + + it("should filter by category", () => { + const result = listPackages({ category: "shape" }); + for (const pkg of result.packages) { + expect(pkg.category).toBe("shape"); + } + }); + + it("should filter by text query", () => { + const result = listPackages({ query: "absorbers" }); + expect(result.packages.length).toBeGreaterThanOrEqual(1); + expect(result.packages.some(p => p.name.includes("absorbers"))).toBe(true); + }); + + it("should return all packages for unknown category", () => { + const result = listPackages({ category: "nonexistent" }); + expect(result.packages.length).toBeGreaterThan(50); + }); + + it("should include categories listing", () => { + const result = listPackages({}); + expect(result.categories).toContain("shape"); + expect(result.categories).toContain("plugin"); + expect(result.categories).toContain("bundle"); + }); +}); diff --git a/integrations/mcp-server/src/tools/listPackages.ts b/integrations/mcp-server/src/tools/listPackages.ts new file mode 100644 index 00000000000..ce3c38abb35 --- /dev/null +++ b/integrations/mcp-server/src/tools/listPackages.ts @@ -0,0 +1,64 @@ +import { packageCatalog } from "../registry/packages.js"; +import type { PackageCategory, PackageInfo } from "../types.js"; + +const categories: PackageCategory[] = [ + "bundle", + "plugin", + "interaction-external", + "interaction-particles", + "interaction-light", + "updater", + "shape", + "effect", + "path", + "emitter-shape", + "color", + "easing", + "preset", +]; + +export function listPackages(filters?: { + category?: string; + query?: string; +}): { + packages: Array<{ + name: string; + description: string; + category: string; + loadFunction?: string; + }>; + total: number; + categories: string[]; +} { + let results: PackageInfo[] = []; + + if (filters?.category && filters.category in packageCatalog.byCategory) { + results = packageCatalog.byCategory[filters.category as PackageCategory]; + } else { + for (const cat of categories) { + results.push(...(packageCatalog.byCategory[cat] || [])); + } + } + + if (filters?.query) { + const q = filters.query.toLowerCase(); + results = results.filter( + (p) => + p.name.toLowerCase().includes(q) || + p.description.toLowerCase().includes(q), + ); + } + + results.sort((a, b) => a.name.localeCompare(b.name)); + + return { + packages: results.map((p) => ({ + name: p.name, + description: p.description, + category: p.category, + loadFunction: p.loadFunction, + })), + total: results.length, + categories, + }; +} diff --git a/integrations/mcp-server/src/tools/suggestPlugins.test.ts b/integrations/mcp-server/src/tools/suggestPlugins.test.ts new file mode 100644 index 00000000000..1c2abbbcfe8 --- /dev/null +++ b/integrations/mcp-server/src/tools/suggestPlugins.test.ts @@ -0,0 +1,196 @@ +import { describe, it, expect } from "vitest"; +import { suggestPlugins } from "./suggestPlugins.js"; + +describe("suggestPlugins", () => { + it("should return empty result for empty options", () => { + const result = suggestPlugins({}); + expect(result.npmPackages).toEqual([]); + expect(result.imports).toEqual([]); + expect(result.suggestedBundle).toBeUndefined(); + }); + + it("should detect links interaction", () => { + const result = suggestPlugins({ + particles: { + links: { enable: true }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/interaction-particles-links"); + }); + + it("should detect collision interaction", () => { + const result = suggestPlugins({ + particles: { + collisions: { enable: true }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/interaction-particles-collisions"); + }); + + it("should detect absorbers", () => { + const result = suggestPlugins({ + absorbers: [{ position: { x: 50, y: 50 } }], + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-absorbers"); + }); + + it("should detect emitters", () => { + const result = suggestPlugins({ + emitters: [{ position: { x: 50, y: 50 } }], + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-emitters"); + }); + + it("should detect background mask", () => { + const result = suggestPlugins({ + backgroundMask: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-background-mask"); + }); + + it("should detect canvas mask", () => { + const result = suggestPlugins({ + canvasMask: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-canvas-mask"); + }); + + it("should detect sounds plugin", () => { + const result = suggestPlugins({ + sounds: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-sounds"); + }); + + it("should detect polygon mask", () => { + const result = suggestPlugins({ + polygon: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-polygon-mask"); + }); + + it("should detect infection", () => { + const result = suggestPlugins({ + infection: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-infection"); + }); + + it("should detect poisson disc", () => { + const result = suggestPlugins({ + poisson: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-poisson-disc"); + }); + + it("should detect manual particles", () => { + const result = suggestPlugins({ + manualParticles: [{ position: { x: 50, y: 50 } }], + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-manual-particles"); + }); + + it("should detect responsive", () => { + const result = suggestPlugins({ + responsive: [{ maxWidth: 800, options: {} }], + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-responsive"); + }); + + it("should detect themes", () => { + const result = suggestPlugins({ + themes: [{ name: "dark", default: { value: true } }], + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-themes"); + }); + + it("should detect shape types", () => { + const result = suggestPlugins({ + particles: { + shape: { type: "star" }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/shape-star"); + }); + + it("should detect multiple shape types", () => { + const result = suggestPlugins({ + particles: { + shape: { type: ["circle", "star", "heart"] }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/shape-star"); + expect(result.npmPackages).toContain("@tsparticles/shape-heart"); + }); + + it("should detect interactivity modes", () => { + const result = suggestPlugins({ + interactivity: { + modes: { + grab: { distance: 200 }, + bubble: { size: 10 }, + }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/interaction-external-grab"); + expect(result.npmPackages).toContain("@tsparticles/interaction-external-bubble"); + }); + + it("should detect emitter shapes", () => { + const result = suggestPlugins({ + emitters: { + shape: { type: "square" }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-emitters-shape-square"); + }); + + it("should detect particle attract", () => { + const result = suggestPlugins({ + particles: { + move: { attract: { enable: true } }, + }, + }); + expect(result.npmPackages).toContain("@tsparticles/interaction-particles-attract"); + }); + + it("should return imports with function names", () => { + const result = suggestPlugins({ + absorbers: [{ position: { x: 50, y: 50 } }], + }); + const absImports = result.imports.filter(i => i.from === "@tsparticles/plugin-absorbers"); + expect(absImports.length).toBeGreaterThanOrEqual(1); + }); + + it("should blend plugin detection work (either root or particles.blend)", () => { + const rootResult = suggestPlugins({ + blend: { enable: true }, + }); + expect(rootResult.npmPackages).toContain("@tsparticles/plugin-blend"); + }); + + it("should return matched packages and imports for rich options", () => { + const result = suggestPlugins({ + particles: { + links: { enable: true }, + collisions: { enable: true }, + }, + interactivity: { + modes: { + grab: { distance: 200 }, + push: { quantity: 4 }, + }, + }, + }); + expect(result.npmPackages.length).toBeGreaterThan(3); + expect(result.imports.length).toBeGreaterThan(3); + }); + + it("should return matched packages for single-plugin options", () => { + const result = suggestPlugins({ + backgroundMask: { enable: true }, + }); + expect(result.npmPackages).toContain("@tsparticles/plugin-background-mask"); + expect(typeof result.suggestedBundle === "string" || result.suggestedBundle === undefined).toBe(true); + }); +}); diff --git a/integrations/mcp-server/src/tools/suggestPlugins.ts b/integrations/mcp-server/src/tools/suggestPlugins.ts new file mode 100644 index 00000000000..6286ba916e1 --- /dev/null +++ b/integrations/mcp-server/src/tools/suggestPlugins.ts @@ -0,0 +1,255 @@ +import type { SuggestPluginsResult, PackageImport } from "../types.js"; +import { packageCatalog } from "../registry/packages.js"; +import { optionToPlugin } from "../registry/pluginOptions.js"; +import { bundles } from "../registry/bundles.js"; + +function getOptionValue(obj: Record, path: string): unknown { + const parts = path.split("."); + let current: unknown = obj; + + for (const part of parts) { + if (current === undefined || current === null || typeof current !== "object") { + return undefined; + } + current = (current as Record)[part]; + } + + return current; +} + +function isOptionEnabled(obj: Record, path: string): boolean { + const value = getOptionValue(obj, path); + + if (value === undefined) return false; + + if (typeof value === "boolean") return value; + + if (Array.isArray(value)) return value.length > 0; + + if (typeof value === "object" && value !== null) { + const enableVal = (value as Record)["enable"]; + if (typeof enableVal === "boolean") return enableVal; + return true; + } + + return true; +} + +function findBundle(packages: string[]): string | undefined { + const allNames = new Set(packages); + + const bundlePriority: Array<{ name: string; pkgs: string[] }> = [ + { + name: "@tsparticles/all", + pkgs: ["@tsparticles/plugin-background-mask", "@tsparticles/plugin-canvas-mask", "@tsparticles/plugin-sounds"], + }, + { + name: "@tsparticles/full", + pkgs: ["@tsparticles/plugin-absorbers", "@tsparticles/plugin-emitters", "@tsparticles/interaction-external-drag"], + }, + { + name: "@tsparticles/slim", + pkgs: ["@tsparticles/plugin-interactivity", "@tsparticles/interaction-particles-links", "@tsparticles/shape-image"], + }, + { + name: "@tsparticles/basic", + pkgs: ["@tsparticles/plugin-move", "@tsparticles/updater-opacity", "@tsparticles/updater-size"], + }, + ]; + + for (const bundle of bundlePriority) { + const allPresent = bundle.pkgs.every(p => allNames.has(p)); + if (allPresent) { + const extra = packages.filter(p => !bundle.pkgs.includes(p) && !p.startsWith("@tsparticles/plugin-easing-") && !p.startsWith("@tsparticles/plugin-export-") && p !== "@tsparticles/plugin-blend"); + if (extra.length <= 3) { + return bundle.name; + } + return bundle.name; + } + } + + return undefined; +} + +export function suggestPlugins(options: Record): SuggestPluginsResult { + const matched: Set = new Set(); + const imports: PackageImport[] = []; + + for (const mapping of optionToPlugin) { + if (isOptionEnabled(options, mapping.optionPath)) { + matched.add(mapping.packageName); + } + } + + const hasInteractivity = options.interactivity !== undefined; + const hasEmitter = options.emitters !== undefined; + const hasAbsorber = options.absorbers !== undefined; + + // -- Shape Detection -- + const shapeSection = (options.particles as Record | undefined)?.shape as Record | undefined; + const shapeType = shapeSection?.type; + const shapeOptions = shapeSection?.options as Record | undefined; + + function addShapeByName(name: string) { + const fullName = name.startsWith("@tsparticles/") ? name : `@tsparticles/shape-${name}`; + if (packageCatalog.byName[fullName]) { + matched.add(fullName); + } + } + + function getShapeNames(value: unknown): string[] { + if (typeof value === "string") return value.split(/[,\s]+/).filter(Boolean); + if (Array.isArray(value)) return (value as string[]).filter(Boolean); + return []; + } + + for (const name of getShapeNames(shapeType)) { + addShapeByName(name); + } + + // Infer shapes from shape options keys (e.g. shape.options.image → shape-image) + if (shapeOptions) { + const optionToShape: Record = { + image: "image", + text: "text", + emoji: "emoji", + images: "image", + character: "text", + path: "path", + polygon: "polygon", + star: "star", + heart: "heart", + arrow: "arrow", + }; + for (const key of Object.keys(shapeOptions)) { + const shapeName = optionToShape[key]; + if (shapeName) addShapeByName(shapeName); + } + } + + // -- Effect Detection -- + const effectType = (options as Record).effect as Record | undefined; + if (effectType?.type) { + const effectMap: Record = { + bubble: "@tsparticles/effect-bubble", + filter: "@tsparticles/effect-filter", + particles: "@tsparticles/effect-particles", + shadow: "@tsparticles/effect-shadow", + trail: "@tsparticles/effect-trail", + }; + const typeStr = String(effectType.type); + const pkg = effectMap[typeStr]; + if (pkg) matched.add(pkg); + } + + // -- Emitter Shape Detection -- + const emitterShape = options.emitters as Record | undefined; + if (emitterShape) { + const esTypeRaw = (emitterShape.shape as Record | undefined)?.type; + const esNames = getShapeNames(esTypeRaw); + const esShapeMap: Record = { + circle: "@tsparticles/plugin-emitters-shape-circle", + square: "@tsparticles/plugin-emitters-shape-square", + canvas: "@tsparticles/plugin-emitters-shape-canvas", + path: "@tsparticles/plugin-emitters-shape-path", + polygon: "@tsparticles/plugin-emitters-shape-polygon", + }; + for (const name of esNames) { + const pkg = esShapeMap[name]; + if (pkg) matched.add(pkg); + } + } + + if (hasInteractivity && !hasInteractivityTools()) { + matched.add("@tsparticles/plugin-interactivity"); + } + + const pluginInteractions = [ + { key: "particles.links", pkg: "@tsparticles/interaction-particles-links" }, + { key: "particles.collisions", pkg: "@tsparticles/interaction-particles-collisions" }, + { key: "particles.move.attract", pkg: "@tsparticles/interaction-particles-attract" }, + { key: "particles.move.repulse", pkg: "@tsparticles/interaction-particles-repulse" }, + ]; + + for (const { key, pkg } of pluginInteractions) { + if (isOptionEnabled(options, key)) { + matched.add(pkg); + } + } + + const interactivityModes = (options.interactivity as Record | undefined)?.modes as Record | undefined; + if (interactivityModes) { + for (const mode of Object.keys(interactivityModes)) { + const pkg = findInteractionPackageForMode(mode); + if (pkg) matched.add(pkg); + } + } + + if (hasEmitter) { + matched.add("@tsparticles/plugin-emitters"); + if (!matched.has("@tsparticles/plugin-emitters-shape-circle") && !matched.has("@tsparticles/plugin-emitters-shape-square")) { + matched.add("@tsparticles/plugin-emitters-shape-circle"); + } + } + + if (hasAbsorber) { + matched.add("@tsparticles/plugin-absorbers"); + } + + const matchedArr = [...matched].filter(Boolean).sort(); + + for (const pkgName of matchedArr) { + const pkgInfo = packageCatalog.byName[pkgName]; + if (pkgInfo?.loadFunction) { + imports.push({ + function: pkgInfo.loadFunction, + from: pkgName, + }); + } + } + + const suggestedBundle = findBundle(matchedArr); + + let alreadyInBundle: string[] = []; + if (suggestedBundle) { + const bundleInfo = bundles.find(b => b.name === suggestedBundle); + if (bundleInfo) { + alreadyInBundle = matchedArr.filter(p => bundleInfo.packages.includes(p) || bundleInfo.packages.includes(p.replace("@tsparticles/", ""))); + } + } + + return { + npmPackages: matchedArr, + imports, + suggestedBundle: suggestedBundle, + alreadyInBundle, + }; +} + +function findInteractionPackageForMode(mode: string): string | undefined { + const modeMap: Record = { + attract: "@tsparticles/interaction-external-attract", + bounce: "@tsparticles/interaction-external-bounce", + bubble: "@tsparticles/interaction-external-bubble", + cannon: "@tsparticles/interaction-external-cannon", + connect: "@tsparticles/interaction-external-connect", + destroy: "@tsparticles/interaction-external-destroy", + drag: "@tsparticles/interaction-external-drag", + grab: "@tsparticles/interaction-external-grab", + particle: "@tsparticles/interaction-external-particle", + pause: "@tsparticles/interaction-external-pause", + pop: "@tsparticles/interaction-external-pop", + push: "@tsparticles/interaction-external-push", + remove: "@tsparticles/interaction-external-remove", + repulse: "@tsparticles/interaction-external-repulse", + slow: "@tsparticles/interaction-external-slow", + trail: "@tsparticles/interaction-external-trail", + light: "@tsparticles/interaction-light", + }; + + return modeMap[mode]; +} + +function hasInteractivityTools(): boolean { + return false; +} diff --git a/integrations/mcp-server/src/types.ts b/integrations/mcp-server/src/types.ts new file mode 100644 index 00000000000..ab1bbcb864a --- /dev/null +++ b/integrations/mcp-server/src/types.ts @@ -0,0 +1,57 @@ +export type PackageCategory = + | "interaction-external" + | "interaction-particles" + | "interaction-light" + | "updater" + | "shape" + | "plugin" + | "color" + | "easing" + | "effect" + | "path" + | "emitter-shape" + | "preset" + | "bundle"; + +export interface PackageInfo { + name: string; + description: string; + category: PackageCategory; + loadFunction?: string; + subpathExport?: string; + optionKeys: string[]; + needsPluginCheck?: string; + alwaysNeeded: boolean; + includedInBundles: string[]; +} + +export interface PackageImport { + function: string; + from: string; +} + +export interface SuggestPluginsResult { + npmPackages: string[]; + imports: PackageImport[]; + suggestedBundle?: string; + alreadyInBundle: string[]; +} + +export interface OptionPluginMapping { + optionPath: string; + packageName: string; + description: string; +} + +export interface BundleInfo { + name: string; + description: string; + loadFunction: string; + packages: string[]; + extends?: string; +} + +export interface PackageCatalog { + byCategory: Record; + byName: Record; +} diff --git a/integrations/mcp-server/tsconfig.json b/integrations/mcp-server/tsconfig.json new file mode 100644 index 00000000000..8b26cfc0853 --- /dev/null +++ b/integrations/mcp-server/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "./dist", + "rootDir": "./src", + "declaration": true, + "sourceMap": true, + "strict": true, + "esModuleInterop": true, + "types": ["node"], + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "resolveJsonModule": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/integrations/mcp-server/vitest.config.ts b/integrations/mcp-server/vitest.config.ts new file mode 100644 index 00000000000..53487dbf52e --- /dev/null +++ b/integrations/mcp-server/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, + include: ["src/**/*.test.ts"], + }, +}); diff --git a/interactions/external/attract/CHANGELOG.md b/interactions/external/attract/CHANGELOG.md index f7db54bf7ba..5b962c19213 100644 --- a/interactions/external/attract/CHANGELOG.md +++ b/interactions/external/attract/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-attract diff --git a/interactions/external/attract/package.dist.json b/interactions/external/attract/package.dist.json index 50fef214e6f..9dabff18a57 100644 --- a/interactions/external/attract/package.dist.json +++ b/interactions/external/attract/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-attract", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles attract external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/attract/package.json b/interactions/external/attract/package.json index 7f0dc240c0c..48cd36278cd 100644 --- a/interactions/external/attract/package.json +++ b/interactions/external/attract/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-attract", - "version": "4.1.3", - "description": "tsParticles attract external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for attracting particles toward the mouse cursor or touch position", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "attract" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/attract/src/Attractor.ts b/interactions/external/attract/src/Attractor.ts index be563d7fa60..0d5f6b7be4b 100644 --- a/interactions/external/attract/src/Attractor.ts +++ b/interactions/external/attract/src/Attractor.ts @@ -7,7 +7,13 @@ import { type Modes, mouseMoveEvent, } from "@tsparticles/plugin-interactivity"; -import { type PluginManager, type RecursivePartial, isInArray, millisecondsToSeconds } from "@tsparticles/engine"; +import { + type PluginManager, + type RecursivePartial, + isInArray, + loadOptionProperty, + millisecondsToSeconds, +} from "@tsparticles/engine"; import { clickAttract, hoverAttract } from "./Utils.js"; import { Attract } from "./Options/Classes/Attract.js"; @@ -26,7 +32,6 @@ interface IAttractRestoreData { * Particle external attract manager */ export class Attractor extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; readonly #interactedThisFrame; @@ -80,17 +85,14 @@ export class Attractor extends ExternalInteractorBase { }; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { const container = this.container, attract = container.actualOptions.interactivity?.modes.attract; @@ -104,7 +106,6 @@ export class Attractor extends ExternalInteractorBase { container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio; } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { this.#interactedThisFrame.clear(); @@ -146,9 +147,9 @@ export class Attractor extends ExternalInteractorBase { } /** - * {@inheritDoc} - * @param interactivityData - * @param particle + * @param interactivityData - The interactivity data + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, @@ -167,22 +168,16 @@ export class Attractor extends ExternalInteractorBase { } /** - * {@inheritDoc} - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadModeOptions( options: Modes & AttractMode, ...sources: RecursivePartial<(IModes & IAttractMode) | undefined>[] ): void { - options.attract ??= new Attract(); - - for (const source of sources) { - options.attract.load(source?.attract); - } + loadOptionProperty(options, "attract", Attract, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/attract/src/Options/Classes/Attract.ts b/interactions/external/attract/src/Options/Classes/Attract.ts index be3757b1b27..24a05e477b9 100644 --- a/interactions/external/attract/src/Options/Classes/Attract.ts +++ b/interactions/external/attract/src/Options/Classes/Attract.ts @@ -1,36 +1,30 @@ -import { EasingType, type EasingTypeAlt, type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; import type { IAttract, IAttractRestore } from "../Interfaces/IAttract.js"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; /** Attract mode options class */ export class Attract implements IAttract, IOptionLoader { /** Attraction distance in pixels */ - distance; + distance = 200; /** Attraction animation duration in seconds */ - duration; + duration = 0.4; /** Easing type used for the attraction animation */ - easing: EasingType | EasingTypeAlt; + easing = "ease-out-quad"; /** Attraction factor multiplier */ - factor; + factor = 1; /** Maximum speed of attracted particles */ - maxSpeed; + maxSpeed = 50; /** Restore behavior after attract interaction */ restore: IAttractRestore; /** Attraction speed */ - speed; + speed = 1; constructor() { - this.distance = 200; - this.duration = 0.4; - this.easing = EasingType.easeOutQuad; - this.factor = 1; - this.maxSpeed = 50; - this.speed = 1; this.restore = { enable: false, delay: 0, @@ -39,35 +33,26 @@ export class Attract implements IAttract, IOptionLoader { }; } - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } + loadProperty(this, "distance", data.distance); - if (data.duration !== undefined) { - this.duration = data.duration; - } + loadProperty(this, "duration", data.duration); if (data.easing !== undefined) { this.easing = data.easing; } - if (data.factor !== undefined) { - this.factor = data.factor; - } + loadProperty(this, "factor", data.factor); if (data.maxSpeed !== undefined) { this.maxSpeed = data.maxSpeed; } - if (data.speed !== undefined) { - this.speed = data.speed; - } + loadProperty(this, "speed", data.speed); if (data.restore !== undefined) { this.restore.enable = data.restore.enable ?? this.restore.enable; diff --git a/interactions/external/attract/src/Options/Classes/AttractOptions.ts b/interactions/external/attract/src/Options/Classes/AttractOptions.ts index 89e3224fceb..f879c7e683d 100644 --- a/interactions/external/attract/src/Options/Classes/AttractOptions.ts +++ b/interactions/external/attract/src/Options/Classes/AttractOptions.ts @@ -1,9 +1,11 @@ -import type { AttractMode } from "../../Types.js"; +import type { Attract } from "./Attract.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Attract interaction options */ export type AttractOptions = InteractivityOptions & { interactivity?: { - modes: AttractMode; + modes: { + attract?: Attract; + }; }; }; diff --git a/interactions/external/attract/src/Options/Interfaces/IAttract.ts b/interactions/external/attract/src/Options/Interfaces/IAttract.ts index 2419d23d83a..b03d5e4a030 100644 --- a/interactions/external/attract/src/Options/Interfaces/IAttract.ts +++ b/interactions/external/attract/src/Options/Interfaces/IAttract.ts @@ -1,5 +1,3 @@ -import type { EasingType, EasingTypeAlt } from "@tsparticles/engine"; - /** Restore behavior options after attract interaction */ export interface IAttractRestore { /** Delay in seconds before restoring starts */ @@ -19,7 +17,7 @@ export interface IAttract { /** Attract animation duration in seconds */ duration: number; /** Attract animation easing type */ - easing: EasingType | EasingTypeAlt; + easing: string; /** Attract factor multiplier */ factor: number; /** Maximum attract speed */ diff --git a/interactions/external/bounce/CHANGELOG.md b/interactions/external/bounce/CHANGELOG.md index 7ac9fb28a39..de4577ee45b 100644 --- a/interactions/external/bounce/CHANGELOG.md +++ b/interactions/external/bounce/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-bounce diff --git a/interactions/external/bounce/package.dist.json b/interactions/external/bounce/package.dist.json index 11a3538d3ef..43121225f27 100644 --- a/interactions/external/bounce/package.dist.json +++ b/interactions/external/bounce/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-bounce", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bounce external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/bounce/package.json b/interactions/external/bounce/package.json index a274984da78..8b5ddfe46d3 100644 --- a/interactions/external/bounce/package.json +++ b/interactions/external/bounce/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-bounce", - "version": "4.1.3", - "description": "tsParticles bounce external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for bouncing particles away from the mouse cursor or touch area", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "bounce" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/bounce/src/Bouncer.ts b/interactions/external/bounce/src/Bouncer.ts index ea25e4a4db5..eec4409110d 100644 --- a/interactions/external/bounce/src/Bouncer.ts +++ b/interactions/external/bounce/src/Bouncer.ts @@ -8,7 +8,7 @@ import { isDivModeEnabled, mouseMoveEvent, } from "@tsparticles/plugin-interactivity"; -import { type RecursivePartial, isInArray } from "@tsparticles/engine"; +import { type RecursivePartial, isInArray, loadOptionProperty } from "@tsparticles/engine"; import { divBounce, mouseBounce } from "./Utils.js"; import { Bounce } from "./Options/Classes/Bounce.js"; @@ -24,17 +24,14 @@ export class Bouncer extends ExternalInteractorBase { this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { const container = this.container, bounce = container.actualOptions.interactivity?.modes.bounce; @@ -48,7 +45,6 @@ export class Bouncer extends ExternalInteractorBase { container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio; } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions, @@ -70,7 +66,6 @@ export class Bouncer extends ExternalInteractorBase { } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -89,19 +84,13 @@ export class Bouncer extends ExternalInteractorBase { ); } - /** @inheritDoc */ loadModeOptions( options: Modes & BounceMode, ...sources: RecursivePartial<(IModes & IBounceMode) | undefined>[] ): void { - options.bounce ??= new Bounce(); - - for (const source of sources) { - options.bounce.load(source?.bounce); - } + loadOptionProperty(options, "bounce", Bounce, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/bounce/src/Options/Classes/Bounce.ts b/interactions/external/bounce/src/Options/Classes/Bounce.ts index 2d30954b510..37df52f893a 100644 --- a/interactions/external/bounce/src/Options/Classes/Bounce.ts +++ b/interactions/external/bounce/src/Options/Classes/Bounce.ts @@ -1,23 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IBounce } from "../Interfaces/IBounce.js"; /** Bounce mode options class */ export class Bounce implements IBounce, IOptionLoader { /** Bounce distance in pixels */ - distance: number; + distance = 200; - constructor() { - this.distance = 200; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } + loadProperty(this, "distance", data.distance); } } diff --git a/interactions/external/bounce/src/Options/Classes/BounceOptions.ts b/interactions/external/bounce/src/Options/Classes/BounceOptions.ts index 2c225c13723..397c855229c 100644 --- a/interactions/external/bounce/src/Options/Classes/BounceOptions.ts +++ b/interactions/external/bounce/src/Options/Classes/BounceOptions.ts @@ -1,9 +1,11 @@ -import type { BounceMode } from "../../Types.js"; +import type { Bounce } from "./Bounce.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Bounce interaction options */ export type BounceOptions = InteractivityOptions & { interactivity?: { - modes: BounceMode; + modes: { + bounce?: Bounce; + }; }; }; diff --git a/interactions/external/bounce/src/Utils.ts b/interactions/external/bounce/src/Utils.ts index d0ed83cb917..8f1624f5365 100644 --- a/interactions/external/bounce/src/Utils.ts +++ b/interactions/external/bounce/src/Utils.ts @@ -14,17 +14,17 @@ import { double, getRangeValue, half, + minRadius, + minVelocity, safeDocument, + squareExp, } from "@tsparticles/engine"; import { type DivEvent, DivType, type IInteractivityData, divModeExecute } from "@tsparticles/plugin-interactivity"; import type { BounceContainer } from "./Types.js"; import type { IRectSideResult } from "./IRectSideResult.js"; -const squareExp = 2, - halfPI = Math.PI * half, - toleranceFactor = 10, - minRadius = 0, - minVelocity = 0; +const halfPI = Math.PI * half, + toleranceFactor = 10; interface RectSideBounceData { /** diff --git a/interactions/external/bubble/CHANGELOG.md b/interactions/external/bubble/CHANGELOG.md index 1e0f0a9e74c..505df8134e5 100644 --- a/interactions/external/bubble/CHANGELOG.md +++ b/interactions/external/bubble/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-bubble diff --git a/interactions/external/bubble/package.dist.json b/interactions/external/bubble/package.dist.json index 4e9ea8ade95..3e961b98641 100644 --- a/interactions/external/bubble/package.dist.json +++ b/interactions/external/bubble/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-bubble", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bubble external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/bubble/package.json b/interactions/external/bubble/package.json index 6e4ce9c9bb5..fcd59138cb7 100644 --- a/interactions/external/bubble/package.json +++ b/interactions/external/bubble/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-bubble", - "version": "4.1.3", - "description": "tsParticles bubble external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction that enlarges particles near the mouse cursor, creating a bubble effect", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "bubble" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/bubble/src/Bubbler.ts b/interactions/external/bubble/src/Bubbler.ts index e5e35445c78..c291b1c8c82 100644 --- a/interactions/external/bubble/src/Bubbler.ts +++ b/interactions/external/bubble/src/Bubbler.ts @@ -12,6 +12,7 @@ import { half, isInArray, itemFromSingleOrMultiple, + loadOptionProperty, millisecondsToSeconds, rangeColorToHsl, rgbToHsl, @@ -50,7 +51,6 @@ const bubbleMode = "bubble", * Particle bubble manager */ export class Bubbler extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; #maxDistance; @@ -75,12 +75,10 @@ export class Bubbler extends ExternalInteractorBase { }; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(particle: Particle, _delta: IDelta, force?: boolean): void { if (particle.bubble.inRange && !force) { return; @@ -92,7 +90,6 @@ export class Bubbler extends ExternalInteractorBase { delete particle.bubble.color; } - /** @inheritDoc */ init(): void { const container = this.container, bubble = container.actualOptions.interactivity?.modes.bubble; @@ -110,7 +107,6 @@ export class Bubbler extends ExternalInteractorBase { } } - /** @inheritDoc */ interact(interactivityData: IInteractivityData, delta: IDelta): void { const options = this.container.actualOptions, events = options.interactivity?.events; @@ -139,7 +135,6 @@ export class Bubbler extends ExternalInteractorBase { } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -160,24 +155,18 @@ export class Bubbler extends ExternalInteractorBase { return isInArray(bubbleMode, onHover.mode) || isInArray(bubbleMode, onClick.mode) || divBubble; } - /** @inheritDoc */ loadModeOptions( options: Modes & BubbleMode, ...sources: RecursivePartial<(IModes & IBubbleMode) | undefined>[] ): void { - options.bubble ??= new Bubble(); - - for (const source of sources) { - options.bubble.load(source?.bubble); - } + loadOptionProperty(options, "bubble", Bubble, ...sources); } - /** @inheritDoc */ reset(_interactivityData: IInteractivityData, particle: Particle): void { particle.bubble.inRange = false; } - readonly #clickBubble: (interactivityData: IInteractivityData) => void = interactivityData => { + #clickBubble(interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions, mouseClickPos = interactivityData.mouse.clickPosition, @@ -255,9 +244,9 @@ export class Bubbler extends ExternalInteractorBase { delete particle.bubble.color; } } - }; + } - readonly #hoverBubble: (interactivityData: IInteractivityData) => void = interactivityData => { + #hoverBubble(interactivityData: IInteractivityData): void { const container = this.container, mousePos = interactivityData.mouse.position, distance = container.retina.bubbleModeDistance; @@ -297,13 +286,9 @@ export class Bubbler extends ExternalInteractorBase { this.reset(interactivityData, particle); } } - }; + } - readonly #hoverBubbleColor: (particle: Particle, ratio: number, divBubble?: BubbleDiv) => void = ( - particle, - ratio, - divBubble, - ) => { + #hoverBubbleColor(particle: Particle, ratio: number, divBubble?: BubbleDiv): void { const options = this.container.actualOptions, bubbleOptions = divBubble ?? options.interactivity?.modes.bubble; @@ -338,13 +323,9 @@ export class Bubbler extends ExternalInteractorBase { } else { particle.bubble.color = particle.bubble.finalColor; } - }; + } - readonly #hoverBubbleOpacity: (particle: Particle, ratio: number, divBubble?: BubbleDiv) => void = ( - particle, - ratio, - divBubble, - ) => { + #hoverBubbleOpacity(particle: Particle, ratio: number, divBubble?: BubbleDiv): void { const container = this.container, options = container.actualOptions, modeOpacity = divBubble?.opacity ?? options.interactivity?.modes.bubble?.opacity; @@ -359,13 +340,9 @@ export class Bubbler extends ExternalInteractorBase { if (opacity !== undefined) { particle.bubble.opacity = opacity; } - }; + } - readonly #hoverBubbleSize: (particle: Particle, ratio: number, divBubble?: BubbleDiv) => void = ( - particle, - ratio, - divBubble, - ) => { + #hoverBubbleSize(particle: Particle, ratio: number, divBubble?: BubbleDiv): void { const container = this.container, modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize; @@ -379,14 +356,9 @@ export class Bubbler extends ExternalInteractorBase { if (size !== undefined) { particle.bubble.radius = size; } - }; - - readonly #process: (particle: Particle, distMouse: number, timeSpent: number, data: Interfaces) => void = ( - particle, - distMouse, - timeSpent, - data, - ) => { + } + + #process(particle: Particle, distMouse: number, timeSpent: number, data: Interfaces): void { const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, @@ -444,14 +416,9 @@ export class Bubbler extends ExternalInteractorBase { } } } - }; - - readonly #singleSelectorHover: ( - interactivityData: IInteractivityData, - delta: IDelta, - selector: string, - div: DivEvent, - ) => void = (interactivityData, delta, selector, div) => { + } + + #singleSelectorHover(interactivityData: IInteractivityData, delta: IDelta, selector: string, div: DivEvent): void { const container = this.container, selectors = safeDocument().querySelectorAll(selector), bubble = container.actualOptions.interactivity?.modes.bubble; @@ -505,5 +472,5 @@ export class Bubbler extends ExternalInteractorBase { this.#hoverBubbleColor(particle, defaultRatio, divBubble); } }); - }; + } } diff --git a/interactions/external/bubble/src/Options/Classes/Bubble.ts b/interactions/external/bubble/src/Options/Classes/Bubble.ts index 400858941b9..1cad314aa23 100644 --- a/interactions/external/bubble/src/Options/Classes/Bubble.ts +++ b/interactions/external/bubble/src/Options/Classes/Bubble.ts @@ -14,7 +14,6 @@ export class Bubble extends BubbleBase implements IBubble, IOptionLoader; - /** @inheritDoc */ override load(data?: RecursivePartial): void { super.load(data); diff --git a/interactions/external/bubble/src/Options/Classes/BubbleBase.ts b/interactions/external/bubble/src/Options/Classes/BubbleBase.ts index fa64162b677..053f4b6c721 100644 --- a/interactions/external/bubble/src/Options/Classes/BubbleBase.ts +++ b/interactions/external/bubble/src/Options/Classes/BubbleBase.ts @@ -6,6 +6,8 @@ import { executeOnSingleOrMultiple, isArray, isNull, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IBubbleBase } from "../Interfaces/IBubbleBase.js"; @@ -15,48 +17,26 @@ export abstract class BubbleBase implements IBubbleBase, IOptionLoader; /** Bubble distance in pixels */ - distance; - + distance = 200; /** Bubble animation duration in seconds */ - duration; - + duration = 0.4; /** Whether to mix the bubble color with the particle color */ - mix; - + mix = false; /** Bubble opacity */ opacity?: number; /** Bubble size */ size?: number; - /** @inheritDoc */ - constructor() { - this.distance = 200; - this.duration = 0.4; - this.mix = false; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } - - if (data.duration !== undefined) { - this.duration = data.duration; - } - - if (data.mix !== undefined) { - this.mix = data.mix; - } - - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadProperty(this, "distance", data.distance); + loadProperty(this, "duration", data.duration); + loadProperty(this, "mix", data.mix); + loadRangeProperty(this, "opacity", data.opacity); if (data.color !== undefined) { const sourceColor = isArray(this.color) ? undefined : this.color; @@ -66,8 +46,6 @@ export abstract class BubbleBase implements IBubbleBase, IOptionLoader { /** CSS selectors for the div elements */ - selectors: SingleOrMultiple; + selectors: SingleOrMultiple = []; - /** @inheritDoc */ - constructor() { - super(); - - this.selectors = []; - } - - /** @inheritDoc */ override load(data?: RecursivePartial): void { super.load(data); @@ -22,8 +20,6 @@ export class BubbleDiv extends BubbleBase implements IBubbleDiv, IOptionLoader", "license": "MIT", @@ -76,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/cannon/src/Cannoner.ts b/interactions/external/cannon/src/Cannoner.ts index 95f75c82677..f3ddfd14914 100644 --- a/interactions/external/cannon/src/Cannoner.ts +++ b/interactions/external/cannon/src/Cannoner.ts @@ -17,6 +17,7 @@ import { getDistance, getRandomInRange, identity, + loadOptionProperty, none, } from "@tsparticles/engine"; import { Cannon } from "./Options/Classes/Cannon.js"; @@ -39,10 +40,10 @@ const cannonMode = "cannon", /** * Computes the angle in radians between two points. - * @param x0 - - * @param y0 - - * @param x1 - - * @param y1 - + * @param x0 - The x0 + * @param y0 - The y0 + * @param x1 - The x1 + * @param y1 - The y1 * @returns - */ function angleRad(x0: number, y0: number, x1: number, y1: number): number { @@ -104,7 +105,6 @@ interface CannonGesture { * - `vectorColor` — CSS color for the aiming line (default "#ffffff80") */ export class Cannoner extends ExternalInteractorBase { - /** {@inheritDoc ExternalInteractorBase.maxDistance} */ readonly maxDistance = 0; #data?: CannonData; @@ -119,7 +119,7 @@ export class Cannoner extends ExternalInteractorBase { /** * {@inheritDoc ExternalInteractorBase} - * @param container - + * @param container - The container to handle */ // eslint-disable-next-line @typescript-eslint/no-useless-constructor constructor(container: CannonContainer) { @@ -127,15 +127,13 @@ export class Cannoner extends ExternalInteractorBase { } /** - * {@inheritDoc ExternalInteractorBase.clear} - * @param _particle - - * @param _delta - + * @param _particle - The particle to process + * @param _delta - The delta time */ clear(_particle: InteractivityParticle, _delta: IDelta): void { // nothing to clear per-particle } - /** {@inheritDoc ExternalInteractorBase.init} */ init(): void { const options = this.container.actualOptions.interactivity?.modes.cannon ?? new Cannon(); @@ -152,9 +150,8 @@ export class Cannoner extends ExternalInteractorBase { } /** - * {@inheritDoc ExternalInteractorBase.interact} - * @param interactivityData - - * @param _delta - + * @param interactivityData - The interactivity data + * @param _delta - The delta time */ interact(interactivityData: IInteractivityData, _delta: IDelta): void { const mouse = interactivityData.mouse, @@ -188,8 +185,7 @@ export class Cannoner extends ExternalInteractorBase { } /** - * {@inheritDoc ExternalInteractorBase.isEnabled} - * @param interactivityData - + * @param interactivityData - The interactivity data * @returns - */ isEnabled(interactivityData: IInteractivityData): boolean { @@ -213,25 +209,19 @@ export class Cannoner extends ExternalInteractorBase { } /** - * {@inheritDoc ExternalInteractorBase.loadModeOptions} - * @param options - - * @param sources - + * @param options - The options to handle + * @param sources - The sources */ loadModeOptions( options: Modes & CannonMode, ...sources: RecursivePartial<(IModes & ICannonMode) | undefined>[] ): void { - options.cannon ??= new Cannon(); - - for (const source of sources) { - options.cannon.load(source?.cannon); - } + loadOptionProperty(options, "cannon", Cannon, ...sources); } /** - * {@inheritDoc ExternalInteractorBase.reset} - * @param _interactivityData - - * @param _particle - + * @param _interactivityData - The interactivity data + * @param _particle - The particle to process */ reset(_interactivityData: IInteractivityData, _particle: InteractivityParticle): void { // nothing to reset diff --git a/interactions/external/cannon/src/Options/Classes/Cannon.ts b/interactions/external/cannon/src/Options/Classes/Cannon.ts index 57a4b090ec6..4a64461296b 100644 --- a/interactions/external/cannon/src/Options/Classes/Cannon.ts +++ b/interactions/external/cannon/src/Options/Classes/Cannon.ts @@ -1,79 +1,37 @@ +import { type RecursivePartial, loadProperty } from "@tsparticles/engine"; import type { ICannon } from "../Interfaces/ICannon.js"; -import type { RecursivePartial } from "@tsparticles/engine"; /** Cannon mode options class */ export class Cannon implements ICannon { /** Whether to draw the aiming vector */ - drawVector; - + drawVector = true; /** Maximum drag distance in pixels */ - maxDragDistance; - + maxDragDistance = 0; /** Maximum number of particles to spawn */ - maxParticles; - + maxParticles = 200; /** Minimum number of particles to spawn */ - minParticles; - + minParticles = 5; /** Particles per pixel of drag distance */ - particleFactor; - + particleFactor = 0.2; /** Spread angle in degrees */ - spread; - + spread = 30; /** CSS color for the aiming vector line */ - vectorColor; - + vectorColor = "#ffffff80"; /** Velocity multiplier from drag distance */ - velocityFactor; - - constructor() { - this.spread = 30; - this.velocityFactor = 0.5; - this.particleFactor = 0.2; - this.maxDragDistance = 0; - this.minParticles = 5; - this.maxParticles = 200; - this.drawVector = true; - this.vectorColor = "#ffffff80"; - } + velocityFactor = 0.5; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (!data) { return; } - if (data.spread !== undefined) { - this.spread = data.spread; - } - - if (data.velocityFactor !== undefined) { - this.velocityFactor = data.velocityFactor; - } - - if (data.particleFactor !== undefined) { - this.particleFactor = data.particleFactor; - } - - if (data.minParticles !== undefined) { - this.minParticles = data.minParticles; - } - - if (data.maxParticles !== undefined) { - this.maxParticles = data.maxParticles; - } - - if (data.maxDragDistance !== undefined) { - this.maxDragDistance = data.maxDragDistance; - } - - if (data.drawVector !== undefined) { - this.drawVector = data.drawVector; - } - - if (data.vectorColor !== undefined) { - this.vectorColor = data.vectorColor; - } + loadProperty(this, "spread", data.spread); + loadProperty(this, "velocityFactor", data.velocityFactor); + loadProperty(this, "particleFactor", data.particleFactor); + loadProperty(this, "minParticles", data.minParticles); + loadProperty(this, "maxParticles", data.maxParticles); + loadProperty(this, "maxDragDistance", data.maxDragDistance); + loadProperty(this, "drawVector", data.drawVector); + loadProperty(this, "vectorColor", data.vectorColor); } } diff --git a/interactions/external/cannon/src/Options/Classes/CannonOptions.ts b/interactions/external/cannon/src/Options/Classes/CannonOptions.ts index d1abed8440a..ea5b573f16a 100644 --- a/interactions/external/cannon/src/Options/Classes/CannonOptions.ts +++ b/interactions/external/cannon/src/Options/Classes/CannonOptions.ts @@ -1,9 +1,11 @@ -import type { CannonMode } from "../../Types.js"; +import type { Cannon } from "./Cannon.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Cannon interaction options */ export type CannonOptions = InteractivityOptions & { interactivity?: { - modes: CannonMode; + modes: { + cannon?: Cannon; + }; }; }; diff --git a/interactions/external/connect/CHANGELOG.md b/interactions/external/connect/CHANGELOG.md index 17eaeb5779d..92c7b8b782e 100644 --- a/interactions/external/connect/CHANGELOG.md +++ b/interactions/external/connect/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-connect diff --git a/interactions/external/connect/package.dist.json b/interactions/external/connect/package.dist.json index 01fae7e1133..33a463a4863 100644 --- a/interactions/external/connect/package.dist.json +++ b/interactions/external/connect/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-connect", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles connect external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,10 +97,10 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/interactions/external/connect/package.json b/interactions/external/connect/package.json index aed62509d69..8929415e793 100644 --- a/interactions/external/connect/package.json +++ b/interactions/external/connect/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-connect", - "version": "4.1.3", - "description": "tsParticles connect external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction that draws connecting lines between particles near the cursor", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "connect" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/connect/src/Connector.ts b/interactions/external/connect/src/Connector.ts index a9db7790284..35bae74b840 100644 --- a/interactions/external/connect/src/Connector.ts +++ b/interactions/external/connect/src/Connector.ts @@ -6,7 +6,7 @@ import { type InteractivityParticle, type Modes, } from "@tsparticles/plugin-interactivity"; -import { type RecursivePartial, isInArray } from "@tsparticles/engine"; +import { type RecursivePartial, isInArray, loadOptionProperty } from "@tsparticles/engine"; import { Connect } from "./Options/Classes/Connect.js"; import { drawConnection } from "./Utils.js"; @@ -25,17 +25,14 @@ export class Connector extends ExternalInteractorBase { this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { const container = this.container, connect = container.actualOptions.interactivity?.modes.connect; @@ -52,7 +49,7 @@ export class Connector extends ExternalInteractorBase { /** * Connecting particles on hover interactivity - * @param interactivityData - + * @param interactivityData - The interactivity data */ interact(interactivityData: IInteractivityData): void { const container = this.container, @@ -93,7 +90,6 @@ export class Connector extends ExternalInteractorBase { } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -106,19 +102,13 @@ export class Connector extends ExternalInteractorBase { return isInArray(connectMode, events.onHover.mode); } - /** @inheritDoc */ loadModeOptions( options: Modes & ConnectMode, ...sources: RecursivePartial<(IModes & IConnectMode) | undefined>[] ): void { - options.connect ??= new Connect(); - - for (const source of sources) { - options.connect.load(source?.connect); - } + loadOptionProperty(options, "connect", Connect, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/connect/src/Options/Classes/Connect.ts b/interactions/external/connect/src/Options/Classes/Connect.ts index 6a42c770422..963bdb8bbc6 100644 --- a/interactions/external/connect/src/Options/Classes/Connect.ts +++ b/interactions/external/connect/src/Options/Classes/Connect.ts @@ -1,38 +1,25 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { ConnectLinks } from "./ConnectLinks.js"; import type { IConnect } from "../Interfaces/IConnect.js"; /** Connect mode options class */ export class Connect implements IConnect, IOptionLoader { /** Connect distance in pixels */ - distance; - + distance = 80; /** Connect links options */ - links; - + readonly links = new ConnectLinks(); /** Connect radius in pixels */ - radius; - - constructor() { - this.distance = 80; - this.links = new ConnectLinks(); - this.radius = 60; - } + radius = 60; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } + loadProperty(this, "distance", data.distance); this.links.load(data.links); - if (data.radius !== undefined) { - this.radius = data.radius; - } + loadProperty(this, "radius", data.radius); } } diff --git a/interactions/external/connect/src/Options/Classes/ConnectLinks.ts b/interactions/external/connect/src/Options/Classes/ConnectLinks.ts index f8421f7f2e4..dfdc19ddfb6 100644 --- a/interactions/external/connect/src/Options/Classes/ConnectLinks.ts +++ b/interactions/external/connect/src/Options/Classes/ConnectLinks.ts @@ -1,23 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadRangeProperty } from "@tsparticles/engine"; import type { IConnectLinks } from "../Interfaces/IConnectLinks.js"; /** Connect links options class */ export class ConnectLinks implements IConnectLinks, IOptionLoader { /** Connect line opacity */ - opacity; + opacity = 0.5; - constructor() { - this.opacity = 0.5; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadRangeProperty(this, "opacity", data.opacity); } } diff --git a/interactions/external/connect/src/Options/Classes/ConnectOptions.ts b/interactions/external/connect/src/Options/Classes/ConnectOptions.ts index f3dd511c934..c80e8af5e43 100644 --- a/interactions/external/connect/src/Options/Classes/ConnectOptions.ts +++ b/interactions/external/connect/src/Options/Classes/ConnectOptions.ts @@ -1,9 +1,11 @@ -import type { ConnectMode } from "../../Types.js"; +import type { Connect } from "./Connect.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Connect interaction options */ export type ConnectOptions = InteractivityOptions & { interactivity?: { - modes: ConnectMode; + modes: { + connect?: Connect; + }; }; }; diff --git a/interactions/external/connect/src/Utils.ts b/interactions/external/connect/src/Utils.ts index e9ed451c825..8f184501258 100644 --- a/interactions/external/connect/src/Utils.ts +++ b/interactions/external/connect/src/Utils.ts @@ -51,11 +51,11 @@ export function gradient( /** * Draw a connect line between two points - * @param context - * @param width - * @param lineStyle - * @param begin - * @param end + * @param context - The rendering context + * @param width - The width + * @param lineStyle - The lineStyle + * @param begin - The begin + * @param end - The end value */ export function drawConnectLine( context: OffscreenCanvasRenderingContext2D, @@ -73,10 +73,11 @@ export function drawConnectLine( /** * Get the line style for a connection - * @param container - * @param ctx - * @param p1 - * @param p2 + * @param container - The container to handle + * @param ctx - The rendering context + * @param p1 - The first point + * @param p2 - The second point + * @returns The canvas gradient for the connection */ export function lineStyle( container: ConnectContainer, @@ -96,9 +97,9 @@ export function lineStyle( /** * Draw a connection between two particles - * @param container - * @param p1 - * @param p2 + * @param container - The container to handle + * @param p1 - The first point + * @param p2 - The second point */ export function drawConnection(container: ConnectContainer, p1: LinkParticle, p2: LinkParticle): void { container.canvas.render.draw(ctx => { diff --git a/interactions/external/destroy/CHANGELOG.md b/interactions/external/destroy/CHANGELOG.md index 958c34356cc..2272e8e19a0 100644 --- a/interactions/external/destroy/CHANGELOG.md +++ b/interactions/external/destroy/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-destroy diff --git a/interactions/external/destroy/package.dist.json b/interactions/external/destroy/package.dist.json index da6b68ae157..1df63c2d136 100644 --- a/interactions/external/destroy/package.dist.json +++ b/interactions/external/destroy/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-destroy", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles destroy external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/destroy/package.json b/interactions/external/destroy/package.json index 2d70a55addb..1b006658a64 100644 --- a/interactions/external/destroy/package.json +++ b/interactions/external/destroy/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-destroy", - "version": "4.1.3", - "description": "tsParticles destroy external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for destroying particles on mouse click or touch", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "destroy" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/destroy/src/Destroyer.ts b/interactions/external/destroy/src/Destroyer.ts index 4e1e501191c..c49d45734a3 100644 --- a/interactions/external/destroy/src/Destroyer.ts +++ b/interactions/external/destroy/src/Destroyer.ts @@ -8,7 +8,7 @@ import { isDivModeEnabled, mouseMoveEvent, } from "@tsparticles/plugin-interactivity"; -import { type RecursivePartial, isInArray } from "@tsparticles/engine"; +import { type RecursivePartial, isInArray, loadOptionProperty } from "@tsparticles/engine"; import { divDestroy, mouseDestroy } from "./Utils.js"; import { Destroy } from "./Options/Classes/Destroy.js"; @@ -24,17 +24,14 @@ export class Destroyer extends ExternalInteractorBase { this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { const container = this.container, destroy = container.actualOptions.interactivity?.modes.destroy; @@ -48,7 +45,6 @@ export class Destroyer extends ExternalInteractorBase { container.retina.destroyModeDistance = destroy.distance * container.retina.pixelRatio; } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions, @@ -70,7 +66,6 @@ export class Destroyer extends ExternalInteractorBase { } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -89,19 +84,13 @@ export class Destroyer extends ExternalInteractorBase { ); } - /** @inheritDoc */ loadModeOptions( options: Modes & DestroyMode, ...sources: RecursivePartial<(IModes & IDestroyMode) | undefined>[] ): void { - options.destroy ??= new Destroy(); - - for (const source of sources) { - options.destroy.load(source?.destroy); - } + loadOptionProperty(options, "destroy", Destroy, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/destroy/src/Options/Classes/Destroy.ts b/interactions/external/destroy/src/Options/Classes/Destroy.ts index 42ef6b76ff9..3d28d9d83d5 100644 --- a/interactions/external/destroy/src/Options/Classes/Destroy.ts +++ b/interactions/external/destroy/src/Options/Classes/Destroy.ts @@ -1,23 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IDestroy } from "../Interfaces/IDestroy.js"; /** Destroy mode options class */ export class Destroy implements IDestroy, IOptionLoader { /** Destroy distance in pixels */ - distance: number; + distance = 200; - constructor() { - this.distance = 200; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } + loadProperty(this, "distance", data.distance); } } diff --git a/interactions/external/destroy/src/Options/Classes/DestroyOptions.ts b/interactions/external/destroy/src/Options/Classes/DestroyOptions.ts index 51cff4cf288..eb324e7bea5 100644 --- a/interactions/external/destroy/src/Options/Classes/DestroyOptions.ts +++ b/interactions/external/destroy/src/Options/Classes/DestroyOptions.ts @@ -1,9 +1,11 @@ -import type { DestroyMode } from "../../Types.js"; +import type { Destroy } from "./Destroy.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Destroy interaction options */ export type DestroyOptions = InteractivityOptions & { interactivity?: { - modes: DestroyMode; + modes: { + destroy?: Destroy; + }; }; }; diff --git a/interactions/external/destroy/src/Utils.ts b/interactions/external/destroy/src/Utils.ts index 89bd0fddb36..1ed049cf7b6 100644 --- a/interactions/external/destroy/src/Utils.ts +++ b/interactions/external/destroy/src/Utils.ts @@ -1,15 +1,13 @@ -import { Circle, Rectangle, type SingleOrMultiple, double, safeDocument } from "@tsparticles/engine"; +import { Circle, Rectangle, type SingleOrMultiple, double, half, minRadius, safeDocument } from "@tsparticles/engine"; import { type DivEvent, DivType, type IInteractivityData, divModeExecute } from "@tsparticles/plugin-interactivity"; import type { DestroyContainer } from "./Types.js"; -const half = 0.5, - toleranceFactor = 10, - minRadius = 0; +const toleranceFactor = 10; /** * Process destroy in an area - * @param container - * @param area + * @param container - The container to handle + * @param area - The area */ function processDestroy(container: DestroyContainer, area: Circle | Rectangle): void { const query = container.particles.grid.query(area); @@ -21,9 +19,9 @@ function processDestroy(container: DestroyContainer, area: Circle | Rectangle): /** * Process destroy for a single selector - * @param container - * @param selector - * @param div + * @param container - The container to handle + * @param selector - The selector + * @param div - The div */ function singleSelectorDestroy(container: DestroyContainer, selector: string, div: DivEvent): void { const query = safeDocument().querySelectorAll(selector); @@ -57,9 +55,9 @@ function singleSelectorDestroy(container: DestroyContainer, selector: string, di /** * Destroy particles in div elements - * @param container - * @param divs - * @param destroyMode + * @param container - The container to handle + * @param divs - The divs + * @param destroyMode - The destroyMode */ export function divDestroy(container: DestroyContainer, divs: SingleOrMultiple, destroyMode: string): void { divModeExecute(destroyMode, divs, (selector, div): void => { @@ -69,8 +67,8 @@ export function divDestroy(container: DestroyContainer, divs: SingleOrMultiple", "license": "MIT", @@ -76,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/drag/src/Dragger.ts b/interactions/external/drag/src/Dragger.ts index 02073d05645..96b439c6417 100644 --- a/interactions/external/drag/src/Dragger.ts +++ b/interactions/external/drag/src/Dragger.ts @@ -14,6 +14,7 @@ import { defaultFps, getDistance, isInArray, + loadOptionProperty, millisecondsToSeconds, } from "@tsparticles/engine"; import { Drag } from "./Options/Classes/Drag.js"; @@ -44,7 +45,6 @@ interface MomentumSample { * - `momentumFactor` — scaling factor for the computed drag velocity (default `0.03`). */ export class Dragger extends ExternalInteractorBase { - /** @inheritDoc */ readonly maxDistance = 0; #dragStartClickTime?: number; @@ -56,23 +56,19 @@ export class Dragger extends ExternalInteractorBase { #mouseDownHandled = false; #savedVelocity?: ICoordinates; - /** @inheritDoc */ // eslint-disable-next-line @typescript-eslint/no-useless-constructor constructor(container: DragContainer) { super(container); } - /** @inheritDoc */ clear(_particle: InteractivityParticle, _delta: IDelta): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(interactivityData: IInteractivityData, _delta: IDelta): void { const mouse = interactivityData.mouse, mousePos = mouse.position; @@ -179,7 +175,6 @@ export class Dragger extends ExternalInteractorBase { closest.misplaced = false; } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -192,27 +187,19 @@ export class Dragger extends ExternalInteractorBase { return !!events?.onClick.enable && mouse.clicking && !!mouse.position && isInArray(dragMode, events.onClick.mode); } - /** @inheritDoc */ loadModeOptions(options: Modes & DragMode, ...sources: RecursivePartial<(IModes & IDragMode) | undefined>[]): void { - options.drag ??= new Drag(); - - for (const source of sources) { - options.drag.load(source?.drag); - } + loadOptionProperty(options, "drag", Drag, ...sources); } - /** @inheritDoc */ reset(_interactivityData: IInteractivityData, _particle: InteractivityParticle): void { // do nothing - release logic is handled in interact() } + // eslint-disable-next-line jsdoc/require-param -- tsdoc forbids @param mousePos.x /** * Finds the closest particle under the cursor within its radius - * @param interactivityData - - * @param mousePos - - * @param mousePos.x - * @param mousePos.y - * @returns - + * @param interactivityData - The interactivity data + * @returns The particle found under the cursor, if any */ #findParticleUnderCursor( interactivityData: IInteractivityData, @@ -244,7 +231,8 @@ export class Dragger extends ExternalInteractorBase { /** * Checks whether a new click cycle has begun since drag started - * @param mouse + * @param mouse - The mouse + * @returns The boolean value */ #hasClickEnded(mouse: IInteractivityData["mouse"]): boolean { return ( diff --git a/interactions/external/drag/src/Options/Classes/Drag.ts b/interactions/external/drag/src/Options/Classes/Drag.ts index 88b72c3ca67..30fd888df1e 100644 --- a/interactions/external/drag/src/Options/Classes/Drag.ts +++ b/interactions/external/drag/src/Options/Classes/Drag.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IDrag } from "../Interfaces/IDrag.js"; const defaultMomentumFactor = 0.03, @@ -7,28 +7,17 @@ const defaultMomentumFactor = 0.03, /** Options class for the drag interaction mode */ export class Drag implements IDrag, IOptionLoader { /** Momentum factor applied on drag release */ - momentumFactor; - + momentumFactor = defaultMomentumFactor; /** Whether to preserve drag momentum on release */ - preserveMomentum; - - constructor() { - this.momentumFactor = defaultMomentumFactor; - this.preserveMomentum = defaultPreserveMomentum; - } + preserveMomentum = defaultPreserveMomentum; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.momentumFactor !== undefined) { - this.momentumFactor = data.momentumFactor; - } + loadProperty(this, "momentumFactor", data.momentumFactor); - if (data.preserveMomentum !== undefined) { - this.preserveMomentum = data.preserveMomentum; - } + loadProperty(this, "preserveMomentum", data.preserveMomentum); } } diff --git a/interactions/external/drag/src/Options/Classes/DragOptions.ts b/interactions/external/drag/src/Options/Classes/DragOptions.ts index 0959a30a5c2..5d0f537585c 100644 --- a/interactions/external/drag/src/Options/Classes/DragOptions.ts +++ b/interactions/external/drag/src/Options/Classes/DragOptions.ts @@ -1,9 +1,11 @@ -import type { DragMode } from "../../Types.js"; +import type { Drag } from "./Drag.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Drag interaction options */ export type DragOptions = InteractivityOptions & { interactivity?: { - modes: DragMode; + modes: { + drag?: Drag; + }; }; }; diff --git a/interactions/external/drag/src/Options/Interfaces/IDrag.ts b/interactions/external/drag/src/Options/Interfaces/IDrag.ts index fac4737c784..5863123cffc 100644 --- a/interactions/external/drag/src/Options/Interfaces/IDrag.ts +++ b/interactions/external/drag/src/Options/Interfaces/IDrag.ts @@ -4,15 +4,13 @@ export interface IDrag { /** * Scaling factor applied to the computed drag velocity when {@link preserveMomentum} is enabled. - * Higher values result in a faster post-release movement. - * @defaultValue 0.03 + * Higher values result in a faster post-release movement. Default: 0.03 */ momentumFactor: number; /** * When `true`, the particle retains the velocity of the drag gesture on release - * instead of resuming the velocity it had before being grabbed. - * @defaultValue false + * instead of resuming the velocity it had before being grabbed. Default: false */ preserveMomentum: boolean; } diff --git a/interactions/external/grab/CHANGELOG.md b/interactions/external/grab/CHANGELOG.md index e3572da0764..e7f3c976244 100644 --- a/interactions/external/grab/CHANGELOG.md +++ b/interactions/external/grab/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-grab diff --git a/interactions/external/grab/package.dist.json b/interactions/external/grab/package.dist.json index fbb93047f90..082aa6ef9b6 100644 --- a/interactions/external/grab/package.dist.json +++ b/interactions/external/grab/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-grab", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles grab external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,10 +97,10 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/interactions/external/grab/package.json b/interactions/external/grab/package.json index beec14b088d..9fca43dfb7e 100644 --- a/interactions/external/grab/package.json +++ b/interactions/external/grab/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-grab", - "version": "4.1.3", - "description": "tsParticles grab external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for pulling particles toward the cursor, creating a grabbing effect", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "grab" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/grab/src/Grabber.ts b/interactions/external/grab/src/Grabber.ts index 1046d55e118..b8024cdf84f 100644 --- a/interactions/external/grab/src/Grabber.ts +++ b/interactions/external/grab/src/Grabber.ts @@ -14,6 +14,7 @@ import { getLinkColor, getLinkRandomColor, isInArray, + loadOptionProperty, } from "@tsparticles/engine"; import { Grab } from "./Options/Classes/Grab.js"; import { drawGrab } from "./Utils.js"; @@ -36,17 +37,14 @@ export class Grabber extends ExternalInteractorBase { this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { const container = this.container, grab = container.actualOptions.interactivity?.modes.grab; @@ -60,7 +58,6 @@ export class Grabber extends ExternalInteractorBase { container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio; } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions, @@ -133,7 +130,6 @@ export class Grabber extends ExternalInteractorBase { } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -142,16 +138,10 @@ export class Grabber extends ExternalInteractorBase { return !!events?.onHover.enable && !!mouse.position && isInArray(grabMode, events.onHover.mode); } - /** @inheritDoc */ loadModeOptions(options: Modes & GrabMode, ...sources: RecursivePartial<(IModes & IGrabMode) | undefined>[]): void { - options.grab ??= new Grab(); - - for (const source of sources) { - options.grab.load(source?.grab); - } + loadOptionProperty(options, "grab", Grab, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/grab/src/Options/Classes/Grab.ts b/interactions/external/grab/src/Options/Classes/Grab.ts index 4096f6622da..56bfa75817c 100644 --- a/interactions/external/grab/src/Options/Classes/Grab.ts +++ b/interactions/external/grab/src/Options/Classes/Grab.ts @@ -1,29 +1,20 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { GrabLinks } from "./GrabLinks.js"; import type { IGrab } from "../Interfaces/IGrab.js"; /** Grab mode options class */ export class Grab implements IGrab, IOptionLoader { /** Grab distance in pixels */ - distance; - + distance = 100; /** Grab links options */ - links; - - constructor() { - this.distance = 100; - this.links = new GrabLinks(); - } + readonly links = new GrabLinks(); - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } + loadProperty(this, "distance", data.distance); this.links.load(data.links); } diff --git a/interactions/external/grab/src/Options/Classes/GrabLinks.ts b/interactions/external/grab/src/Options/Classes/GrabLinks.ts index 6bad13593c3..5fd41453d81 100644 --- a/interactions/external/grab/src/Options/Classes/GrabLinks.ts +++ b/interactions/external/grab/src/Options/Classes/GrabLinks.ts @@ -1,46 +1,38 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + OptionsColor, + type RecursivePartial, + isNull, + loadProperty, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IGrabLinks } from "../Interfaces/IGrabLinks.js"; /** Grab links options class */ export class GrabLinks implements IGrabLinks, IOptionLoader { /** Whether to blink the grab line */ - blink; - + blink = false; /** Grab line color */ color?: OptionsColor; /** Whether the user consented to the grab link */ - consent; - + consent = false; /** Grab line opacity */ - opacity; - - constructor() { - this.blink = false; - this.consent = false; - this.opacity = 1; - } + opacity = 1; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.blink !== undefined) { - this.blink = data.blink; - } + loadProperty(this, "blink", data.blink); if (data.color !== undefined) { this.color = OptionsColor.create(this.color, data.color); } - if (data.consent !== undefined) { - this.consent = data.consent; - } + loadProperty(this, "consent", data.consent); - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadRangeProperty(this, "opacity", data.opacity); } } diff --git a/interactions/external/grab/src/Options/Classes/GrabOptions.ts b/interactions/external/grab/src/Options/Classes/GrabOptions.ts index 759ffcd739b..e55218ab816 100644 --- a/interactions/external/grab/src/Options/Classes/GrabOptions.ts +++ b/interactions/external/grab/src/Options/Classes/GrabOptions.ts @@ -1,9 +1,11 @@ -import type { GrabMode } from "../../Types.js"; +import type { Grab } from "./Grab.js"; import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; /** Grab interaction options */ export type GrabOptions = InteractivityOptions & { interactivity?: { - modes: GrabMode; + modes: { + grab?: Grab; + }; }; }; diff --git a/interactions/external/grab/src/Utils.ts b/interactions/external/grab/src/Utils.ts index 01215458e06..66e8222bb72 100644 --- a/interactions/external/grab/src/Utils.ts +++ b/interactions/external/grab/src/Utils.ts @@ -32,11 +32,11 @@ export function drawGrabLine( /** * Draw the grab interaction - * @param container - * @param particle - * @param lineColor - * @param opacity - * @param mousePos + * @param container - The container to handle + * @param particle - The particle to process + * @param lineColor - The lineColor + * @param opacity - The opacity value + * @param mousePos - The mouse position */ export function drawGrab( container: GrabContainer, diff --git a/interactions/external/parallax/CHANGELOG.md b/interactions/external/parallax/CHANGELOG.md index 0f9d5854074..cf462540c85 100644 --- a/interactions/external/parallax/CHANGELOG.md +++ b/interactions/external/parallax/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-parallax diff --git a/interactions/external/parallax/package.dist.json b/interactions/external/parallax/package.dist.json index 1497a1c4ecc..356748c32ae 100644 --- a/interactions/external/parallax/package.dist.json +++ b/interactions/external/parallax/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-parallax", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles parallax external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/parallax/package.json b/interactions/external/parallax/package.json index 7fce8a747d0..9c267e6a5cf 100644 --- a/interactions/external/parallax/package.json +++ b/interactions/external/parallax/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-parallax", - "version": "4.1.3", - "description": "tsParticles parallax external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction creating a depth parallax effect based on cursor or scroll position", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "parallax" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/parallax/src/Options/Classes/Parallax.ts b/interactions/external/parallax/src/Options/Classes/Parallax.ts index 42802587888..3fb5d9afd75 100644 --- a/interactions/external/parallax/src/Options/Classes/Parallax.ts +++ b/interactions/external/parallax/src/Options/Classes/Parallax.ts @@ -1,31 +1,19 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IParallax } from "../Interfaces/IParallax.js"; /** Parallax effect options */ export class Parallax implements IParallax, IOptionLoader { /** The parallax force */ - force; - + force = 2; /** The parallax smoothing factor */ - smooth; - - constructor() { - this.force = 2; - this.smooth = 10; - } + smooth = 10; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.force !== undefined) { - this.force = data.force; - } - - if (data.smooth !== undefined) { - this.smooth = data.smooth; - } + loadProperty(this, "force", data.force); + loadProperty(this, "smooth", data.smooth); } } diff --git a/interactions/external/parallax/src/Options/Classes/ParallaxOptions.ts b/interactions/external/parallax/src/Options/Classes/ParallaxOptions.ts index f751aeaa0f4..9adb1138dd4 100644 --- a/interactions/external/parallax/src/Options/Classes/ParallaxOptions.ts +++ b/interactions/external/parallax/src/Options/Classes/ParallaxOptions.ts @@ -1,9 +1,11 @@ import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; -import type { ParallaxMode } from "../../Types.js"; +import type { Parallax } from "./Parallax.js"; /** Parallax interaction options */ export type ParallaxOptions = InteractivityOptions & { interactivity?: { - modes: ParallaxMode; + modes: { + parallax?: Parallax; + }; }; }; diff --git a/interactions/external/parallax/src/Parallaxer.ts b/interactions/external/parallax/src/Parallaxer.ts index c4b3707b9f8..c2f8b296f46 100644 --- a/interactions/external/parallax/src/Parallaxer.ts +++ b/interactions/external/parallax/src/Parallaxer.ts @@ -6,7 +6,7 @@ import { type Modes, } from "@tsparticles/plugin-interactivity"; import type { IParallaxMode, ParallaxContainer, ParallaxMode } from "./Types.js"; -import { type Particle, type RecursivePartial, half, isInArray } from "@tsparticles/engine"; +import { type Particle, type RecursivePartial, half, isInArray, loadOptionProperty } from "@tsparticles/engine"; import { Parallax } from "./Options/Classes/Parallax.js"; const parallaxMode = "parallax"; @@ -15,7 +15,6 @@ const parallaxMode = "parallax"; * Particle parallax manager */ export class Parallaxer extends ExternalInteractorBase { - /** @inheritDoc */ readonly maxDistance = 0; // eslint-disable-next-line @typescript-eslint/no-useless-constructor @@ -23,24 +22,20 @@ export class Parallaxer extends ExternalInteractorBase { super(container); } - /** @inheritDoc */ clear(): void { // no-op } - /** @inheritDoc */ init(): void { // no-op } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { for (const particle of this.container.particles.filter(p => this.isEnabled(interactivityData, p))) { this.#parallaxInteract(interactivityData, particle); } } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -49,19 +44,13 @@ export class Parallaxer extends ExternalInteractorBase { return !!events?.onHover.enable && !!mouse.position && isInArray(parallaxMode, events.onHover.mode); } - /** @inheritDoc */ loadModeOptions( options: Modes & ParallaxMode, ...sources: RecursivePartial<(IModes & IParallaxMode) | undefined>[] ): void { - options.parallax ??= new Parallax(); - - for (const source of sources) { - options.parallax.load(source?.parallax); - } + loadOptionProperty(options, "parallax", Parallax, ...sources); } - /** @inheritDoc */ reset(): void { // no-op } diff --git a/interactions/external/parallax/src/index.lazy.ts b/interactions/external/parallax/src/index.lazy.ts index faa4be797d4..60cfde7bfca 100644 --- a/interactions/external/parallax/src/index.lazy.ts +++ b/interactions/external/parallax/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalParallaxInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/parallax/src/index.ts b/interactions/external/parallax/src/index.ts index 0c77364f9e0..ea9e7f03d30 100644 --- a/interactions/external/parallax/src/index.ts +++ b/interactions/external/parallax/src/index.ts @@ -5,7 +5,7 @@ import { Parallaxer } from "./Parallaxer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalParallaxInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/particle/CHANGELOG.md b/interactions/external/particle/CHANGELOG.md index 370bbd5d40e..e493bcb8567 100644 --- a/interactions/external/particle/CHANGELOG.md +++ b/interactions/external/particle/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-particle diff --git a/interactions/external/particle/package.dist.json b/interactions/external/particle/package.dist.json index 0d5da896cdd..e345bd837a0 100644 --- a/interactions/external/particle/package.dist.json +++ b/interactions/external/particle/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-particle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particle external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/particle/package.json b/interactions/external/particle/package.json index 8d50c7dc8c2..39b3e310227 100644 --- a/interactions/external/particle/package.json +++ b/interactions/external/particle/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-particle", - "version": "4.1.3", - "description": "tsParticles particle external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for spawning new particles on mouse click or touch", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,19 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "@tsparticles/interaction" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "particle" ], "author": "Matteo Bruni ", "license": "MIT", @@ -76,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/particle/src/InteractivityParticleMaker.ts b/interactions/external/particle/src/InteractivityParticleMaker.ts index da8e4298046..01bb7de8eda 100644 --- a/interactions/external/particle/src/InteractivityParticleMaker.ts +++ b/interactions/external/particle/src/InteractivityParticleMaker.ts @@ -12,6 +12,7 @@ import { type RecursivePartial, deepExtend, isInArray, + loadOptionProperty, safeDocument, } from "@tsparticles/engine"; import type { IParticleMode, InteractivityParticleContainer, ParticleMode } from "./Types.js"; @@ -21,7 +22,6 @@ const particleMode = "particle"; /** Interactivity particle maker interactor */ export class InteractivityParticleMaker extends ExternalInteractorBase { - /** @inheritDoc */ readonly maxDistance = 0; #clearTimeout?: number; @@ -33,17 +33,14 @@ export class InteractivityParticleMaker extends ExternalInteractorBase[] ): void { - options.particle ??= new InteractivityParticleOptions(); - - for (const source of sources) { - options.particle.load(source?.particle); - } + loadOptionProperty(options, "particle", InteractivityParticleOptions, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/particle/src/Options/Classes/InteractivityParticleOptions.ts b/interactions/external/particle/src/Options/Classes/InteractivityParticleOptions.ts index c71c0fe2491..8480423f3f5 100644 --- a/interactions/external/particle/src/Options/Classes/InteractivityParticleOptions.ts +++ b/interactions/external/particle/src/Options/Classes/InteractivityParticleOptions.ts @@ -4,6 +4,7 @@ import { type RecursivePartial, deepExtend, isNull, + loadProperty, } from "@tsparticles/engine"; import type { IInteractivityParticleOptions } from "../Interfaces/IInteractivityParticleOptions.js"; @@ -15,21 +16,12 @@ export class InteractivityParticleOptions options?: RecursivePartial; /** Whether to pause the particle when the mouse stops moving */ - pauseOnStop: boolean; - + pauseOnStop = false; /** Whether to replace the cursor with a custom one */ - replaceCursor: boolean; - + replaceCursor = false; /** The delay in milliseconds before stopping the particle */ - stopDelay: number; + stopDelay = 0; - constructor() { - this.replaceCursor = false; - this.pauseOnStop = false; - this.stopDelay = 0; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; @@ -39,16 +31,8 @@ export class InteractivityParticleOptions this.options = deepExtend({}, data.options) as RecursivePartial; } - if (data.replaceCursor !== undefined) { - this.replaceCursor = data.replaceCursor; - } - - if (data.pauseOnStop !== undefined) { - this.pauseOnStop = data.pauseOnStop; - } - - if (data.stopDelay !== undefined) { - this.stopDelay = data.stopDelay; - } + loadProperty(this, "replaceCursor", data.replaceCursor); + loadProperty(this, "pauseOnStop", data.pauseOnStop); + loadProperty(this, "stopDelay", data.stopDelay); } } diff --git a/interactions/external/particle/src/Options/Classes/InteractivityParticleOptionsData.ts b/interactions/external/particle/src/Options/Classes/InteractivityParticleOptionsData.ts index 14c8caea449..eca369897d4 100644 --- a/interactions/external/particle/src/Options/Classes/InteractivityParticleOptionsData.ts +++ b/interactions/external/particle/src/Options/Classes/InteractivityParticleOptionsData.ts @@ -1,9 +1,11 @@ +import type { InteractivityParticleOptions } from "./InteractivityParticleOptions.js"; import type { Options } from "@tsparticles/engine"; -import type { ParticleMode } from "../../Types.js"; /** Interactivity particle options data type */ export type InteractivityParticleOptionsData = Options & { interactivity?: { - modes: ParticleMode; + modes: { + particle?: InteractivityParticleOptions; + }; }; }; diff --git a/interactions/external/particle/src/index.lazy.ts b/interactions/external/particle/src/index.lazy.ts index 47257178eaf..b4e5d97afed 100644 --- a/interactions/external/particle/src/index.lazy.ts +++ b/interactions/external/particle/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalParticleInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/particle/src/index.ts b/interactions/external/particle/src/index.ts index c992de4ed81..a433c759756 100644 --- a/interactions/external/particle/src/index.ts +++ b/interactions/external/particle/src/index.ts @@ -5,7 +5,7 @@ import { InteractivityParticleMaker } from "./InteractivityParticleMaker.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalParticleInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/pause/CHANGELOG.md b/interactions/external/pause/CHANGELOG.md index caa2bb23b30..127c26a9705 100644 --- a/interactions/external/pause/CHANGELOG.md +++ b/interactions/external/pause/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-pause diff --git a/interactions/external/pause/package.dist.json b/interactions/external/pause/package.dist.json index 04652b4c27b..a89e358fa4f 100644 --- a/interactions/external/pause/package.dist.json +++ b/interactions/external/pause/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-pause", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pause external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/pause/package.json b/interactions/external/pause/package.json index 6d4e727f897..da6254c7fb7 100644 --- a/interactions/external/pause/package.json +++ b/interactions/external/pause/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-pause", - "version": "4.1.3", - "description": "tsParticles pause external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for pausing and resuming particle animation on mouse or touch", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "pause" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/pause/src/Pauser.ts b/interactions/external/pause/src/Pauser.ts index cc43f708be9..f25a0552de6 100644 --- a/interactions/external/pause/src/Pauser.ts +++ b/interactions/external/pause/src/Pauser.ts @@ -12,10 +12,8 @@ const pauseMode = "pause"; * Particle attract manager */ export class Pauser extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; - /** @inheritDoc */ readonly maxDistance = 0; constructor(container: InteractivityContainer) { @@ -36,22 +34,18 @@ export class Pauser extends ExternalInteractorBase { }; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(): void { // do nothing } - /** @inheritDoc */ isEnabled(_interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -60,7 +54,6 @@ export class Pauser extends ExternalInteractorBase { return !!events && isInArray(pauseMode, events.onClick.mode); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/pause/src/index.lazy.ts b/interactions/external/pause/src/index.lazy.ts index cd7ff606106..08b09cf7935 100644 --- a/interactions/external/pause/src/index.lazy.ts +++ b/interactions/external/pause/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalPauseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/pause/src/index.ts b/interactions/external/pause/src/index.ts index b29096209e7..06b56970873 100644 --- a/interactions/external/pause/src/index.ts +++ b/interactions/external/pause/src/index.ts @@ -5,7 +5,7 @@ import { Pauser } from "./Pauser.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalPauseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/pop/CHANGELOG.md b/interactions/external/pop/CHANGELOG.md index b067886e6e8..f4456352103 100644 --- a/interactions/external/pop/CHANGELOG.md +++ b/interactions/external/pop/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-pop diff --git a/interactions/external/pop/package.dist.json b/interactions/external/pop/package.dist.json index c82290ec526..23d8197eb0e 100644 --- a/interactions/external/pop/package.dist.json +++ b/interactions/external/pop/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-pop", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pop external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/pop/package.json b/interactions/external/pop/package.json index 486be8db537..e2784082d6a 100644 --- a/interactions/external/pop/package.json +++ b/interactions/external/pop/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-pop", - "version": "4.1.3", - "description": "tsParticles pop external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for popping or exploding particles on mouse click", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "pop" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/pop/src/Popper.ts b/interactions/external/pop/src/Popper.ts index 451dd49d3ed..01d74cd3285 100644 --- a/interactions/external/pop/src/Popper.ts +++ b/interactions/external/pop/src/Popper.ts @@ -12,10 +12,8 @@ const popMode = "pop"; * Particle attract manager */ export class Popper extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; - /** @inheritDoc */ readonly maxDistance = 0; constructor(container: InteractivityContainer) { @@ -46,22 +44,18 @@ export class Popper extends ExternalInteractorBase { }; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(): void { // do nothing } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -71,7 +65,6 @@ export class Popper extends ExternalInteractorBase { return !!events && mouse.clicking && mouse.inside && !!mouse.position && isInArray(popMode, events.onClick.mode); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/pop/src/index.lazy.ts b/interactions/external/pop/src/index.lazy.ts index 4df7573255c..b6cf6edf36e 100644 --- a/interactions/external/pop/src/index.lazy.ts +++ b/interactions/external/pop/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalPopInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/pop/src/index.ts b/interactions/external/pop/src/index.ts index 1bb2fb527b9..8e9cd32ade4 100644 --- a/interactions/external/pop/src/index.ts +++ b/interactions/external/pop/src/index.ts @@ -5,7 +5,7 @@ import { Popper } from "./Popper.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalPopInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/push/CHANGELOG.md b/interactions/external/push/CHANGELOG.md index 0776a79bd3c..6b108937594 100644 --- a/interactions/external/push/CHANGELOG.md +++ b/interactions/external/push/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-push diff --git a/interactions/external/push/package.dist.json b/interactions/external/push/package.dist.json index 0616d2ba84a..4994b5ee4e7 100644 --- a/interactions/external/push/package.dist.json +++ b/interactions/external/push/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-push", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles push external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/push/package.json b/interactions/external/push/package.json index e8f6d2ab512..5c19697314f 100644 --- a/interactions/external/push/package.json +++ b/interactions/external/push/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-push", - "version": "4.1.3", - "description": "tsParticles push external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for pushing particles away from the cursor position", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "push" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/push/src/Options/Classes/Push.ts b/interactions/external/push/src/Options/Classes/Push.ts index ce3ec1dc55e..24debb4a8f3 100644 --- a/interactions/external/push/src/Options/Classes/Push.ts +++ b/interactions/external/push/src/Options/Classes/Push.ts @@ -7,36 +7,28 @@ import { deepExtend, executeOnSingleOrMultiple, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IPush } from "../Interfaces/IPush.js"; /** Push mode options class */ export class Push implements IPush, IOptionLoader { /** Whether to use the default groups */ - default; + default = true; /** Groups to push particles from */ - groups: string[]; + groups: string[] = []; /** Particles options for pushed particles */ particles?: SingleOrMultiple>; /** Number of particles to push */ - quantity: RangeValue; + quantity: RangeValue = 4; - constructor() { - this.default = true; - this.groups = []; - this.quantity = 4; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.default !== undefined) { - this.default = data.default; - } + loadProperty(this, "default", data.default); if (data.groups !== undefined) { this.groups = data.groups.map(t => t); @@ -46,11 +38,7 @@ export class Push implements IPush, IOptionLoader { this.default = true; } - const quantity = data.quantity; - - if (quantity !== undefined) { - this.quantity = setRangeValue(quantity); - } + loadRangeProperty(this, "quantity", data.quantity); this.particles = executeOnSingleOrMultiple(data.particles, particles => { return deepExtend({}, particles) as RecursivePartial; diff --git a/interactions/external/push/src/Pusher.ts b/interactions/external/push/src/Pusher.ts index 188948027e3..84cb4df8de7 100644 --- a/interactions/external/push/src/Pusher.ts +++ b/interactions/external/push/src/Pusher.ts @@ -13,6 +13,7 @@ import { isInArray, itemFromArray, itemFromSingleOrMultiple, + loadOptionProperty, } from "@tsparticles/engine"; import type { IPushMode, PushContainer, PushMode } from "./Types.js"; import { Push } from "./Options/Classes/Push.js"; @@ -24,10 +25,8 @@ const pushMode = "push", * Particle attract manager */ export class Pusher extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; - /** @inheritDoc */ readonly maxDistance = 0; constructor(container: PushContainer) { @@ -61,22 +60,18 @@ export class Pusher extends ExternalInteractorBase { }; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(): void { // do nothing } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -86,16 +81,10 @@ export class Pusher extends ExternalInteractorBase { return !!events && mouse.clicking && mouse.inside && !!mouse.position && isInArray(pushMode, events.onClick.mode); } - /** @inheritDoc */ loadModeOptions(options: Modes & PushMode, ...sources: RecursivePartial<(IModes & IPushMode) | undefined>[]): void { - options.push ??= new Push(); - - for (const source of sources) { - options.push.load(source?.push); - } + loadOptionProperty(options, "push", Push, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/remove/CHANGELOG.md b/interactions/external/remove/CHANGELOG.md index d41bba40d8c..43b178a5339 100644 --- a/interactions/external/remove/CHANGELOG.md +++ b/interactions/external/remove/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-remove diff --git a/interactions/external/remove/package.dist.json b/interactions/external/remove/package.dist.json index 41ae8da39fc..eb950a5ba20 100644 --- a/interactions/external/remove/package.dist.json +++ b/interactions/external/remove/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-remove", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles remove external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/remove/package.json b/interactions/external/remove/package.json index b1671582bfa..2de15ad559c 100644 --- a/interactions/external/remove/package.json +++ b/interactions/external/remove/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-remove", - "version": "4.1.3", - "description": "tsParticles remove external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for removing particles on mouse click or touch", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "remove" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/remove/src/Options/Classes/Remove.ts b/interactions/external/remove/src/Options/Classes/Remove.ts index d55df0dbca8..4719d27b743 100644 --- a/interactions/external/remove/src/Options/Classes/Remove.ts +++ b/interactions/external/remove/src/Options/Classes/Remove.ts @@ -1,25 +1,22 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IRemove } from "../Interfaces/IRemove.js"; /** Remove mode options class */ export class Remove implements IRemove, IOptionLoader { /** Number of particles to remove */ - quantity: RangeValue; + quantity: RangeValue = 2; - constructor() { - this.quantity = 2; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - const quantity = data.quantity; - - if (quantity !== undefined) { - this.quantity = setRangeValue(quantity); - } + loadRangeProperty(this, "quantity", data.quantity); } } diff --git a/interactions/external/remove/src/Remover.ts b/interactions/external/remove/src/Remover.ts index 76b41d13763..a1a9c5a0ba8 100644 --- a/interactions/external/remove/src/Remover.ts +++ b/interactions/external/remove/src/Remover.ts @@ -6,7 +6,7 @@ import { type Modes, } from "@tsparticles/plugin-interactivity"; import type { IRemoveMode, RemoveContainer, RemoveMode } from "./Types.js"; -import { type RecursivePartial, getRangeValue, isInArray } from "@tsparticles/engine"; +import { type RecursivePartial, getRangeValue, isInArray, loadOptionProperty } from "@tsparticles/engine"; import { Remove } from "./Options/Classes/Remove.js"; const removeMode = "remove"; @@ -15,10 +15,8 @@ const removeMode = "remove"; * Particle attract manager */ export class Remover extends ExternalInteractorBase { - /** @inheritDoc */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; - /** @inheritDoc */ readonly maxDistance = 0; constructor(container: RemoveContainer) { @@ -40,22 +38,18 @@ export class Remover extends ExternalInteractorBase { }; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(): void { // do nothing } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -65,19 +59,13 @@ export class Remover extends ExternalInteractorBase { return !!events && mouse.clicking && mouse.inside && !!mouse.position && isInArray(removeMode, events.onClick.mode); } - /** @inheritDoc */ loadModeOptions( options: Modes & RemoveMode, ...sources: RecursivePartial<(IModes & IRemoveMode) | undefined>[] ): void { - options.remove ??= new Remove(); - - for (const source of sources) { - options.remove.load(source?.remove); - } + loadOptionProperty(options, "remove", Remove, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/remove/src/index.lazy.ts b/interactions/external/remove/src/index.lazy.ts index 7a0b3e67a5a..0e1339c89ab 100644 --- a/interactions/external/remove/src/index.lazy.ts +++ b/interactions/external/remove/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalRemoveInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/remove/src/index.ts b/interactions/external/remove/src/index.ts index c0a634fca65..357fc1fa4e0 100644 --- a/interactions/external/remove/src/index.ts +++ b/interactions/external/remove/src/index.ts @@ -5,7 +5,7 @@ import { Remover } from "./Remover.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalRemoveInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/repulse/CHANGELOG.md b/interactions/external/repulse/CHANGELOG.md index 5926104e3cd..0d29d0a1c34 100644 --- a/interactions/external/repulse/CHANGELOG.md +++ b/interactions/external/repulse/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-repulse diff --git a/interactions/external/repulse/package.dist.json b/interactions/external/repulse/package.dist.json index 7af569370b1..8e102fa7619 100644 --- a/interactions/external/repulse/package.dist.json +++ b/interactions/external/repulse/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-repulse", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles repulse external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/repulse/package.json b/interactions/external/repulse/package.json index 03842769abf..4fe3a0b1f95 100644 --- a/interactions/external/repulse/package.json +++ b/interactions/external/repulse/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-repulse", - "version": "4.1.3", - "description": "tsParticles repulse external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for repelling particles away from the cursor or touch position", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "repulse" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/repulse/src/Options/Classes/Repulse.ts b/interactions/external/repulse/src/Options/Classes/Repulse.ts index 264abc7bb29..8e67a337c27 100644 --- a/interactions/external/repulse/src/Options/Classes/Repulse.ts +++ b/interactions/external/repulse/src/Options/Classes/Repulse.ts @@ -14,7 +14,6 @@ export class Repulse extends RepulseBase implements IRepulse, IOptionLoader; - /** @inheritDoc */ override load(data?: RecursivePartial): void { super.load(data); diff --git a/interactions/external/repulse/src/Options/Classes/RepulseBase.ts b/interactions/external/repulse/src/Options/Classes/RepulseBase.ts index 1e181f0e986..4d2baedd71c 100644 --- a/interactions/external/repulse/src/Options/Classes/RepulseBase.ts +++ b/interactions/external/repulse/src/Options/Classes/RepulseBase.ts @@ -1,4 +1,4 @@ -import { EasingType, type EasingTypeAlt, type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IRepulseBase, IRepulseRestore } from "../Interfaces/IRepulseBase.js"; /** @@ -6,27 +6,21 @@ import type { IRepulseBase, IRepulseRestore } from "../Interfaces/IRepulseBase.j */ export abstract class RepulseBase implements IRepulseBase, IOptionLoader { /** Repulse distance in pixels */ - distance; + distance = 200; /** Repulse animation duration in seconds */ - duration; + duration = 0.4; /** Easing type used for the repulse animation */ - easing: EasingType | EasingTypeAlt; + easing = "ease-out-quad"; /** Repulse factor multiplier */ - factor; + factor = 100; /** Maximum repulse speed */ - maxSpeed; + maxSpeed = 50; /** Restore behavior after repulse interaction */ restore: IRepulseRestore; /** Repulse speed */ - speed; + speed = 1; constructor() { - this.distance = 200; - this.duration = 0.4; - this.factor = 100; - this.speed = 1; - this.maxSpeed = 50; - this.easing = EasingType.easeOutQuad; this.restore = { enable: false, delay: 0, @@ -35,35 +29,17 @@ export abstract class RepulseBase implements IRepulseBase, IOptionLoader): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = data.distance; - } - - if (data.duration !== undefined) { - this.duration = data.duration; - } - - if (data.easing !== undefined) { - this.easing = data.easing; - } - - if (data.factor !== undefined) { - this.factor = data.factor; - } - - if (data.speed !== undefined) { - this.speed = data.speed; - } - - if (data.maxSpeed !== undefined) { - this.maxSpeed = data.maxSpeed; - } + loadProperty(this, "distance", data.distance); + loadProperty(this, "duration", data.duration); + loadProperty(this, "easing", data.easing); + loadProperty(this, "factor", data.factor); + loadProperty(this, "speed", data.speed); + loadProperty(this, "maxSpeed", data.maxSpeed); if (data.restore !== undefined) { this.restore.enable = data.restore.enable ?? this.restore.enable; diff --git a/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts b/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts index de1def330ed..b9d0f3f49d6 100644 --- a/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts +++ b/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts @@ -1,19 +1,18 @@ -import { type IOptionLoader, type RecursivePartial, type SingleOrMultiple, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + type SingleOrMultiple, + isNull, + loadProperty, +} from "@tsparticles/engine"; import type { IRepulseDiv } from "../Interfaces/IRepulseDiv.js"; import { RepulseBase } from "./RepulseBase.js"; /** Repulse mode div options class */ export class RepulseDiv extends RepulseBase implements IRepulseDiv, IOptionLoader { /** CSS selectors for div elements to apply repulse to */ - selectors: SingleOrMultiple; + selectors: SingleOrMultiple = []; - constructor() { - super(); - - this.selectors = []; - } - - /** @inheritDoc */ override load(data?: RecursivePartial): void { super.load(data); @@ -21,8 +20,6 @@ export class RepulseDiv extends RepulseBase implements IRepulseDiv, IOptionLoade return; } - if (data.selectors !== undefined) { - this.selectors = data.selectors; - } + loadProperty(this, "selectors", data.selectors); } } diff --git a/interactions/external/repulse/src/Options/Classes/RepulseOptions.ts b/interactions/external/repulse/src/Options/Classes/RepulseOptions.ts index d0599785c9a..ec67c74b561 100644 --- a/interactions/external/repulse/src/Options/Classes/RepulseOptions.ts +++ b/interactions/external/repulse/src/Options/Classes/RepulseOptions.ts @@ -1,8 +1,10 @@ import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; -import type { RepulseMode } from "../../Types.js"; +import type { Repulse } from "./Repulse.js"; export type RepulseOptions = InteractivityOptions & { interactivity?: { - modes: RepulseMode; + modes: { + repulse?: Repulse; + }; }; }; diff --git a/interactions/external/repulse/src/Options/Interfaces/IRepulseBase.ts b/interactions/external/repulse/src/Options/Interfaces/IRepulseBase.ts index b9ebb6d63a4..2439d52e4be 100644 --- a/interactions/external/repulse/src/Options/Interfaces/IRepulseBase.ts +++ b/interactions/external/repulse/src/Options/Interfaces/IRepulseBase.ts @@ -1,5 +1,3 @@ -import type { EasingType, EasingTypeAlt } from "@tsparticles/engine"; - /** Restore behavior options after repulse interaction */ export interface IRepulseRestore { /** Delay in seconds before restoring starts */ @@ -21,7 +19,7 @@ export interface IRepulseBase { /** Repulse animation duration in seconds */ duration: number; /** Repulse animation easing type */ - easing: EasingType | EasingTypeAlt; + easing: string; /** Repulse factor multiplier */ factor: number; /** Maximum repulse speed */ diff --git a/interactions/external/repulse/src/Repulser.ts b/interactions/external/repulse/src/Repulser.ts index 9a466ac3162..0c19f0d5f4e 100644 --- a/interactions/external/repulse/src/Repulser.ts +++ b/interactions/external/repulse/src/Repulser.ts @@ -10,6 +10,7 @@ import { getDistances, half, isInArray, + loadOptionProperty, millisecondsToSeconds, safeDocument, } from "@tsparticles/engine"; @@ -51,7 +52,6 @@ interface IRepulseRestoreData { * Particle repulse manager */ export class Repulser extends ExternalInteractorBase { - /** {@inheritDoc} */ handleClickMode: (mode: string, interactivityData: IInteractivityData) => void; readonly #clickVec: Vector; @@ -113,12 +113,10 @@ export class Repulser extends ExternalInteractorBase { return this.#maxDistance; } - /** {@inheritDoc} */ clear(): void { // do nothing } - /** {@inheritDoc} */ init(): void { const container = this.container, repulse = container.actualOptions.interactivity?.modes.repulse; @@ -133,8 +131,7 @@ export class Repulser extends ExternalInteractorBase { } /** - * {@inheritDoc} - * @param interactivityData + * @param interactivityData - The interactivity data */ interact(interactivityData: IInteractivityData): void { this.#interactedThisFrame.clear(); @@ -170,9 +167,9 @@ export class Repulser extends ExternalInteractorBase { } /** - * {@inheritDoc} - * @param interactivityData - * @param particle + * @param interactivityData - The interactivity data + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, @@ -200,27 +197,21 @@ export class Repulser extends ExternalInteractorBase { } /** - * {@inheritDoc} - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadModeOptions( options: Modes & RepulseMode, ...sources: RecursivePartial<(IModes & IRepulseMode) | undefined>[] ): void { - options.repulse ??= new Repulse(); - - for (const source of sources) { - options.repulse.load(source?.repulse); - } + loadOptionProperty(options, "repulse", Repulse, ...sources); } - /** {@inheritDoc} */ reset(): void { // do nothing } - readonly #clickRepulse: (interactivityData: IInteractivityData) => void = interactivityData => { + #clickRepulse(interactivityData: IInteractivityData): void { const container = this.container, repulseOptions = container.actualOptions.interactivity?.modes.repulse; @@ -282,9 +273,9 @@ export class Repulser extends ExternalInteractorBase { repulse.particles = []; } - }; + } - readonly #hoverRepulse: (interactivityData: IInteractivityData) => void = interactivityData => { + #hoverRepulse(interactivityData: IInteractivityData): void { const container = this.container, mousePos = interactivityData.mouse.position, repulseRadius = container.retina.repulseModeDistance; @@ -294,15 +285,15 @@ export class Repulser extends ExternalInteractorBase { } this.#processRepulse(interactivityData, mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius)); - }; + } - readonly #processRepulse: ( + #processRepulse( interactivityData: IInteractivityData, position: ICoordinates, repulseRadius: number, area: BaseRange, divRepulse?: RepulseDiv, - ) => void = (interactivityData, position, repulseRadius, area, divRepulse) => { + ): void { const container = this.container, query = container.particles.grid.query(area, p => this.isEnabled(interactivityData, p)), repulseOptions = container.actualOptions.interactivity?.modes.repulse; @@ -325,7 +316,7 @@ export class Repulser extends ExternalInteractorBase { this.#trackInteractedParticle(particle); particle.position.addTo(this.#normVec); } - }; + } #restoreParticles(): void { const restore = this.container.actualOptions.interactivity?.modes.repulse?.restore; @@ -381,11 +372,7 @@ export class Repulser extends ExternalInteractorBase { } } - readonly #singleSelectorRepulse: (interactivityData: IInteractivityData, selector: string, div: DivEvent) => void = ( - interactivityData, - selector, - div, - ) => { + #singleSelectorRepulse(interactivityData: IInteractivityData, selector: string, div: DivEvent): void { const container = this.container, repulse = container.actualOptions.interactivity?.modes.repulse; @@ -421,7 +408,7 @@ export class Repulser extends ExternalInteractorBase { this.#processRepulse(interactivityData, pos, repulseRadius, area, divRepulse); }); - }; + } #trackInteractedParticle(particle: InteractivityParticle): void { this.#interactedThisFrame.add(particle); diff --git a/interactions/external/repulse/src/index.lazy.ts b/interactions/external/repulse/src/index.lazy.ts index 5ed382d560c..68641bf3d53 100644 --- a/interactions/external/repulse/src/index.lazy.ts +++ b/interactions/external/repulse/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalRepulseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/repulse/src/index.ts b/interactions/external/repulse/src/index.ts index e60ca5ae61d..030ec5146b8 100644 --- a/interactions/external/repulse/src/index.ts +++ b/interactions/external/repulse/src/index.ts @@ -5,7 +5,7 @@ import { Repulser } from "./Repulser.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalRepulseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/slow/CHANGELOG.md b/interactions/external/slow/CHANGELOG.md index 5ca465a0d00..2a3cd2a30e8 100644 --- a/interactions/external/slow/CHANGELOG.md +++ b/interactions/external/slow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-slow diff --git a/interactions/external/slow/package.dist.json b/interactions/external/slow/package.dist.json index 10cf1bf4fd5..395c25ad54b 100644 --- a/interactions/external/slow/package.dist.json +++ b/interactions/external/slow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-slow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles slow external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/slow/package.json b/interactions/external/slow/package.json index 456ff022d0d..4b32cb2a7c1 100644 --- a/interactions/external/slow/package.json +++ b/interactions/external/slow/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-slow", - "version": "4.1.3", - "description": "tsParticles slow external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction for slowing down particles near the mouse cursor", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "slow" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/slow/src/Options/Classes/Slow.ts b/interactions/external/slow/src/Options/Classes/Slow.ts index 08504c572b3..f6e0e20cb5a 100644 --- a/interactions/external/slow/src/Options/Classes/Slow.ts +++ b/interactions/external/slow/src/Options/Classes/Slow.ts @@ -1,30 +1,19 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ISlow } from "../Interfaces/ISlow.js"; /** Slow mode options class */ export class Slow implements ISlow, IOptionLoader { /** Slow factor multiplier */ - factor; + factor = 3; /** Slow radius in pixels */ - radius; + radius = 200; - constructor() { - this.factor = 3; - this.radius = 200; - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.factor !== undefined) { - this.factor = data.factor; - } - - if (data.radius !== undefined) { - this.radius = data.radius; - } + loadProperty(this, "factor", data.factor); + loadProperty(this, "radius", data.radius); } } diff --git a/interactions/external/slow/src/Options/Classes/SlowOptions.ts b/interactions/external/slow/src/Options/Classes/SlowOptions.ts index 33bd24db134..462858d7778 100644 --- a/interactions/external/slow/src/Options/Classes/SlowOptions.ts +++ b/interactions/external/slow/src/Options/Classes/SlowOptions.ts @@ -1,8 +1,10 @@ import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; -import type { SlowMode } from "../../Types.js"; +import type { Slow } from "./Slow.js"; export type SlowOptions = InteractivityOptions & { interactivity?: { - modes: SlowMode; + modes: { + slow?: Slow; + }; }; }; diff --git a/interactions/external/slow/src/Slower.ts b/interactions/external/slow/src/Slower.ts index bc0e2d5022e..f54718b27de 100644 --- a/interactions/external/slow/src/Slower.ts +++ b/interactions/external/slow/src/Slower.ts @@ -5,7 +5,14 @@ import { type InteractivityParticle, type Modes, } from "@tsparticles/plugin-interactivity"; -import { type IDelta, type Particle, type RecursivePartial, getDistance, isInArray } from "@tsparticles/engine"; +import { + type IDelta, + type Particle, + type RecursivePartial, + getDistance, + isInArray, + loadOptionProperty, +} from "@tsparticles/engine"; import type { ISlowMode, SlowContainer, SlowMode } from "./Types.js"; import { Slow } from "./Options/Classes/Slow.js"; @@ -24,12 +31,10 @@ export class Slower extends ExternalInteractorBase { this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(particle: Particle, _delta: IDelta, force?: boolean): void { if (particle.slow.inRange && !force) { return; @@ -38,7 +43,6 @@ export class Slower extends ExternalInteractorBase { particle.slow.factor = 1; } - /** @inheritDoc */ init(): void { const container = this.container, slow = container.actualOptions.interactivity?.modes.slow; @@ -52,12 +56,10 @@ export class Slower extends ExternalInteractorBase { container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio; } - /** @inheritDoc */ interact(): void { // nothing to do } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -66,16 +68,10 @@ export class Slower extends ExternalInteractorBase { return !!events?.onHover.enable && !!mouse.position && isInArray(slowMode, events.onHover.mode); } - /** @inheritDoc */ loadModeOptions(options: Modes & SlowMode, ...sources: RecursivePartial<(IModes & ISlowMode) | undefined>[]): void { - options.slow ??= new Slow(); - - for (const source of sources) { - options.slow.load(source?.slow); - } + loadOptionProperty(options, "slow", Slow, ...sources); } - /** @inheritDoc */ reset(interactivityData: IInteractivityData, particle: Particle): void { particle.slow.inRange = false; diff --git a/interactions/external/slow/src/index.lazy.ts b/interactions/external/slow/src/index.lazy.ts index 81e06809655..ae303c64030 100644 --- a/interactions/external/slow/src/index.lazy.ts +++ b/interactions/external/slow/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalSlowInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/slow/src/index.ts b/interactions/external/slow/src/index.ts index 8f1cc6cb175..b6f74ae53c3 100644 --- a/interactions/external/slow/src/index.ts +++ b/interactions/external/slow/src/index.ts @@ -5,7 +5,7 @@ import { Slower } from "./Slower.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalSlowInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/trail/CHANGELOG.md b/interactions/external/trail/CHANGELOG.md index cf16e53d793..af7ec7007a4 100644 --- a/interactions/external/trail/CHANGELOG.md +++ b/interactions/external/trail/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-external-trail diff --git a/interactions/external/trail/package.dist.json b/interactions/external/trail/package.dist.json index af6b9d6e4cf..e1523910d31 100644 --- a/interactions/external/trail/package.dist.json +++ b/interactions/external/trail/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-external-trail", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles trail external interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/external/trail/package.json b/interactions/external/trail/package.json index 36ebdc4ad87..2bc070e8f28 100644 --- a/interactions/external/trail/package.json +++ b/interactions/external/trail/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-external-trail", - "version": "4.1.3", - "description": "tsParticles trail external interaction", + "version": "4.2.0", + "description": "tsParticles external interaction that creates trailing particle effects behind the cursor movement", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,19 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "@tsparticles/interaction" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "trail" ], "author": "Matteo Bruni ", "license": "MIT", @@ -76,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/external/trail/src/Options/Classes/Trail.ts b/interactions/external/trail/src/Options/Classes/Trail.ts index cbb5c0bf945..22d809d2a3b 100644 --- a/interactions/external/trail/src/Options/Classes/Trail.ts +++ b/interactions/external/trail/src/Options/Classes/Trail.ts @@ -4,6 +4,7 @@ import { type RecursivePartial, deepExtend, isNull, + loadProperty, } from "@tsparticles/engine"; import type { ITrail } from "../Interfaces/ITrail.js"; import { TrailColorCoords } from "./TrailColorCoords.js"; @@ -11,38 +12,22 @@ import { TrailColorCoords } from "./TrailColorCoords.js"; /** Trail mode options class */ export class Trail implements ITrail, IOptionLoader { /** Optional configuration to map mouse coordinates to particle colors */ - colorCoords?: TrailColorCoords; + colorCoords?: TrailColorCoords = new TrailColorCoords(); /** Trail emission delay in seconds */ - delay: number; + delay = 1; /** Trail particles options */ particles?: RecursivePartial; /** Whether to pause trail when mouse stops moving */ - pauseOnStop: boolean; + pauseOnStop = false; /** Number of particles to emit per trail step */ - quantity: number; + quantity = 1; - constructor() { - this.delay = 1; - this.pauseOnStop = false; - this.quantity = 1; - this.colorCoords = new TrailColorCoords(); - } - - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) return; - if (data.delay !== undefined) { - this.delay = data.delay; - } - - if (data.quantity !== undefined) { - this.quantity = data.quantity; - } - - if (data.pauseOnStop !== undefined) { - this.pauseOnStop = data.pauseOnStop; - } + loadProperty(this, "delay", data.delay); + loadProperty(this, "quantity", data.quantity); + loadProperty(this, "pauseOnStop", data.pauseOnStop); if (data.particles !== undefined) { this.particles = deepExtend({}, data.particles) as RecursivePartial; diff --git a/interactions/external/trail/src/Options/Classes/TrailColorComponent.ts b/interactions/external/trail/src/Options/Classes/TrailColorComponent.ts index 58ff0719bc6..d5cc4c16a53 100644 --- a/interactions/external/trail/src/Options/Classes/TrailColorComponent.ts +++ b/interactions/external/trail/src/Options/Classes/TrailColorComponent.ts @@ -4,11 +4,7 @@ import { TrailColorWeight } from "./TrailColorWeight.js"; export class TrailColorComponent implements ITrailColorComponent, IOptionLoader { value?: RangeValue; - weights?: TrailColorWeight; - - constructor() { - this.weights = new TrailColorWeight(); - } + weights?: TrailColorWeight = new TrailColorWeight(); load(data?: RecursivePartial): void { if (!data) { diff --git a/interactions/external/trail/src/Options/Classes/TrailColorCoords.ts b/interactions/external/trail/src/Options/Classes/TrailColorCoords.ts index 6d44b1ec331..8985028cb41 100644 --- a/interactions/external/trail/src/Options/Classes/TrailColorCoords.ts +++ b/interactions/external/trail/src/Options/Classes/TrailColorCoords.ts @@ -3,15 +3,9 @@ import type { ITrailColorCoords } from "../Interfaces/ITrailColorCoords.js"; import { TrailColorComponent } from "./TrailColorComponent.js"; export class TrailColorCoords implements ITrailColorCoords, IOptionLoader { - h?: TrailColorComponent; - l?: TrailColorComponent; - s?: TrailColorComponent; - - constructor() { - this.h = new TrailColorComponent(); - this.s = new TrailColorComponent(); - this.l = new TrailColorComponent(); - } + h?: TrailColorComponent = new TrailColorComponent(); + l?: TrailColorComponent = new TrailColorComponent(); + s?: TrailColorComponent = new TrailColorComponent(); load(data?: RecursivePartial): void { if (!data) { diff --git a/interactions/external/trail/src/Options/Classes/TrailColorWeight.ts b/interactions/external/trail/src/Options/Classes/TrailColorWeight.ts index 93f805051ee..6f27f294375 100644 --- a/interactions/external/trail/src/Options/Classes/TrailColorWeight.ts +++ b/interactions/external/trail/src/Options/Classes/TrailColorWeight.ts @@ -1,26 +1,16 @@ -import type { IOptionLoader, RecursivePartial } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, loadProperty } from "@tsparticles/engine"; import type { ITrailColorWeight } from "../Interfaces/ITrailColorWeight.js"; export class TrailColorWeight implements ITrailColorWeight, IOptionLoader { - x: number; - y: number; - - constructor() { - this.x = 0; - this.y = 0; - } + x = 0; + y = 0; load(data?: RecursivePartial): void { if (!data) { return; } - if (data.x !== undefined) { - this.x = data.x; - } - - if (data.y !== undefined) { - this.y = data.y; - } + loadProperty(this, "x", data.x); + loadProperty(this, "y", data.y); } } diff --git a/interactions/external/trail/src/Options/Classes/TrailOptions.ts b/interactions/external/trail/src/Options/Classes/TrailOptions.ts index 3b165fd32e2..567a188bea6 100644 --- a/interactions/external/trail/src/Options/Classes/TrailOptions.ts +++ b/interactions/external/trail/src/Options/Classes/TrailOptions.ts @@ -1,8 +1,10 @@ import type { InteractivityOptions } from "@tsparticles/plugin-interactivity"; -import type { TrailMode } from "../../Types.js"; +import type { Trail } from "./Trail.js"; export type TrailOptions = InteractivityOptions & { interactivity?: { - modes: TrailMode; + modes: { + trail?: Trail; + }; }; }; diff --git a/interactions/external/trail/src/TrailMaker.ts b/interactions/external/trail/src/TrailMaker.ts index 0b0fa72dd6e..ccb962f10cc 100644 --- a/interactions/external/trail/src/TrailMaker.ts +++ b/interactions/external/trail/src/TrailMaker.ts @@ -12,6 +12,7 @@ import { isInArray, itemFromSingleOrMultiple, lMax, + loadOptionProperty, millisecondsToSeconds, rangeColorToHsl, sMax, @@ -34,7 +35,6 @@ const trailMode = "trail", /** Trail mode interactor */ export class TrailMaker extends ExternalInteractorBase { - /** @inheritDoc */ readonly maxDistance = 0; #delay: number; @@ -47,17 +47,14 @@ export class TrailMaker extends ExternalInteractorBase { this.#delay = 0; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(interactivityData: IInteractivityData, delta: IDelta): void { const container = this.container; @@ -154,7 +151,6 @@ export class TrailMaker extends ExternalInteractorBase { this.#delay -= optDelay; } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean { const container = this.container, options = container.actualOptions, @@ -168,15 +164,10 @@ export class TrailMaker extends ExternalInteractorBase { ); } - /** @inheritDoc */ loadModeOptions(options: Modes & TrailMode, ...sources: RecursivePartial<(IModes & ITrailMode) | undefined>[]): void { - options.trail ??= new Trail(); - for (const source of sources) { - options.trail.load(source?.trail); - } + loadOptionProperty(options, "trail", Trail, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/external/trail/src/index.lazy.ts b/interactions/external/trail/src/index.lazy.ts index 3b5e0f6bc2f..d0cc1c32861 100644 --- a/interactions/external/trail/src/index.lazy.ts +++ b/interactions/external/trail/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalTrailInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/external/trail/src/index.ts b/interactions/external/trail/src/index.ts index 6287939fc0e..862fbffa97d 100644 --- a/interactions/external/trail/src/index.ts +++ b/interactions/external/trail/src/index.ts @@ -5,7 +5,7 @@ import { TrailMaker } from "./TrailMaker.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExternalTrailInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/light/CHANGELOG.md b/interactions/light/CHANGELOG.md index 4a4bf54f32d..f4ae9626e27 100644 --- a/interactions/light/CHANGELOG.md +++ b/interactions/light/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-light diff --git a/interactions/light/package.dist.json b/interactions/light/package.dist.json index de9bee74595..fdaed855b08 100644 --- a/interactions/light/package.dist.json +++ b/interactions/light/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-light", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles Light interaction", "homepage": "https://particles.js.org", "repository": { @@ -107,8 +107,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/interactions/light/package.json b/interactions/light/package.json index 8082a51bdb3..3bb9d6c0e64 100644 --- a/interactions/light/package.json +++ b/interactions/light/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-light", - "version": "4.1.3", - "description": "tsParticles Light interaction", + "version": "4.2.0", + "description": "tsParticles interaction that illuminates particles near a light source, simulating lighting effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "light" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +84,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/light/src/ExternalLighter.ts b/interactions/light/src/ExternalLighter.ts index 0737a3deb99..901de33c561 100644 --- a/interactions/light/src/ExternalLighter.ts +++ b/interactions/light/src/ExternalLighter.ts @@ -5,13 +5,18 @@ import { type Modes, } from "@tsparticles/plugin-interactivity"; import type { ILightMode, LightContainer, LightMode, LightParticle } from "./Types.js"; -import { type PluginManager, type RecursivePartial, isInArray, rangeColorToRgb } from "@tsparticles/engine"; +import { + type PluginManager, + type RecursivePartial, + isInArray, + loadOptionProperty, + rangeColorToRgb, +} from "@tsparticles/engine"; import { drawLight, lightMode } from "./Utils.js"; import { Light } from "./Options/Classes/Light.js"; /** External light interactor */ export class ExternalLighter extends ExternalInteractorBase { - /** @inheritDoc */ readonly maxDistance = 0; readonly #pluginManager; @@ -21,17 +26,14 @@ export class ExternalLighter extends ExternalInteractorBase { this.#pluginManager = pluginManager; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions, @@ -52,7 +54,6 @@ export class ExternalLighter extends ExternalInteractorBase { }); } - /** @inheritDoc */ isEnabled(interactivityData: IInteractivityData, particle?: LightParticle): boolean { const container = this.container, mouse = interactivityData.mouse, @@ -77,16 +78,10 @@ export class ExternalLighter extends ExternalInteractorBase { return res; } - /** @inheritDoc */ loadModeOptions(options: Modes & LightMode, ...sources: RecursivePartial<(IModes & ILightMode) | undefined>[]): void { - options.light ??= new Light(); - - for (const source of sources) { - options.light.load(source?.light); - } + loadOptionProperty(options, "light", Light, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/light/src/Options/Classes/Light.ts b/interactions/light/src/Options/Classes/Light.ts index 451781f7e43..2e619cee44b 100644 --- a/interactions/light/src/Options/Classes/Light.ts +++ b/interactions/light/src/Options/Classes/Light.ts @@ -6,17 +6,10 @@ import { LightShadow } from "./LightShadow.js"; /** Light mode options class */ export class Light implements ILight, IOptionLoader { /** The light area options */ - area; - + readonly area = new LightArea(); /** The light shadow options */ - shadow; - - constructor() { - this.area = new LightArea(); - this.shadow = new LightShadow(); - } + readonly shadow = new LightShadow(); - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; diff --git a/interactions/light/src/Options/Classes/LightArea.ts b/interactions/light/src/Options/Classes/LightArea.ts index d35088fc576..654bfe50a15 100644 --- a/interactions/light/src/Options/Classes/LightArea.ts +++ b/interactions/light/src/Options/Classes/LightArea.ts @@ -1,21 +1,14 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILightArea } from "../Interfaces/ILightArea.js"; import { LightGradient } from "./LightGradient.js"; /** Light area options class */ export class LightArea implements ILightArea, IOptionLoader { /** The light gradient options */ - gradient; - + readonly gradient = new LightGradient(); /** The light radius */ - radius; - - constructor() { - this.gradient = new LightGradient(); - this.radius = 1000; - } + radius = 1000; - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; @@ -23,8 +16,6 @@ export class LightArea implements ILightArea, IOptionLoader { this.gradient.load(data.gradient); - if (data.radius !== undefined) { - this.radius = data.radius; - } + loadProperty(this, "radius", data.radius); } } diff --git a/interactions/light/src/Options/Classes/LightGradient.ts b/interactions/light/src/Options/Classes/LightGradient.ts index 081974bc998..5bcc39fcc7b 100644 --- a/interactions/light/src/Options/Classes/LightGradient.ts +++ b/interactions/light/src/Options/Classes/LightGradient.ts @@ -4,20 +4,16 @@ import type { ILightGradient } from "../Interfaces/ILightGradient.js"; /** Light gradient options class */ export class LightGradient implements ILightGradient, IOptionLoader { /** The start color of the gradient */ - start; + start = new OptionsColor(); /** The stop color of the gradient */ - stop; + stop = new OptionsColor(); constructor() { - this.start = new OptionsColor(); - this.stop = new OptionsColor(); - this.start.value = "#ffffff"; this.stop.value = "#000000"; } - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; diff --git a/interactions/light/src/Options/Classes/LightOptions.ts b/interactions/light/src/Options/Classes/LightOptions.ts index 6b92b8f085d..b3e84fb0e4d 100644 --- a/interactions/light/src/Options/Classes/LightOptions.ts +++ b/interactions/light/src/Options/Classes/LightOptions.ts @@ -1,16 +1,20 @@ import type { InteractivityOptions, InteractivityParticlesOptions } from "@tsparticles/plugin-interactivity"; -import type { LightMode } from "../../Types.js"; +import type { Light } from "./Light.js"; /** Light interaction options */ export type LightOptions = InteractivityOptions & { interactivity?: { - modes: LightMode; + modes: { + light?: Light; + }; }; }; /** Light particle options */ export type LightParticlesOptions = InteractivityParticlesOptions & { interactivity?: { - modes: LightMode; + modes: { + light?: Light; + }; }; }; diff --git a/interactions/light/src/Options/Classes/LightShadow.ts b/interactions/light/src/Options/Classes/LightShadow.ts index 521fb57fcad..f9b81033c18 100644 --- a/interactions/light/src/Options/Classes/LightShadow.ts +++ b/interactions/light/src/Options/Classes/LightShadow.ts @@ -1,22 +1,18 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILightShadow } from "../Interfaces/ILightShadow.js"; /** Light shadow options class */ export class LightShadow implements ILightShadow, IOptionLoader { /** The shadow color */ - color; + color = new OptionsColor(); /** The shadow length */ - length; + length = 2000; constructor() { - this.color = new OptionsColor(); this.color.value = "#000000"; - - this.length = 2000; } - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; @@ -24,8 +20,6 @@ export class LightShadow implements ILightShadow, IOptionLoader { this.color = OptionsColor.create(this.color, data.color); - if (data.length !== undefined) { - this.length = data.length; - } + loadProperty(this, "length", data.length); } } diff --git a/interactions/light/src/ParticlesLighter.ts b/interactions/light/src/ParticlesLighter.ts index 025a7ec22ff..53b14310abe 100644 --- a/interactions/light/src/ParticlesLighter.ts +++ b/interactions/light/src/ParticlesLighter.ts @@ -5,7 +5,6 @@ import { drawParticleShadow, lightMode } from "./Utils.js"; /** Particles lighter interactor */ export class ParticlesLighter extends ParticlesInteractorBase { - /** @inheritDoc */ readonly maxDistance; readonly #pluginManager; @@ -17,17 +16,14 @@ export class ParticlesLighter extends ParticlesInteractorBase { this.maxDistance = 0; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(particle: LightParticle, interactivityData: IInteractivityData): void { const container = this.container, options = container.actualOptions; @@ -47,7 +43,6 @@ export class ParticlesLighter extends ParticlesInteractorBase { }); } - /** @inheritDoc */ isEnabled(particle: LightParticle, interactivityData: IInteractivityData): boolean { const interactivity = particle.interactivity, mouse = interactivityData.mouse, @@ -68,7 +63,6 @@ export class ParticlesLighter extends ParticlesInteractorBase { return res; } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/light/src/Utils.ts b/interactions/light/src/Utils.ts index e8f58eda1e6..e7cea51b61e 100644 --- a/interactions/light/src/Utils.ts +++ b/interactions/light/src/Utils.ts @@ -14,9 +14,9 @@ export const lightMode = "light"; /** * Draw the light area around the mouse - * @param container - * @param context - * @param mousePos + * @param container - The container to handle + * @param context - The rendering context + * @param mousePos - The mouse position */ export function drawLight( container: LightContainer, @@ -55,10 +55,10 @@ export function drawLight( /** * Draw the shadow of a particle in light mode - * @param container - * @param context - * @param particle - * @param mousePos + * @param container - The container to handle + * @param context - The rendering context + * @param particle - The particle to process + * @param mousePos - The mouse position */ export function drawParticleShadow( container: LightContainer, diff --git a/interactions/light/src/index.lazy.ts b/interactions/light/src/index.lazy.ts index e1090b645bd..5a1b743a719 100644 --- a/interactions/light/src/index.lazy.ts +++ b/interactions/light/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLightInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/light/src/index.ts b/interactions/light/src/index.ts index 932aa65ff02..3c0fce47785 100644 --- a/interactions/light/src/index.ts +++ b/interactions/light/src/index.ts @@ -6,7 +6,7 @@ import { ParticlesLighter } from "./ParticlesLighter.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLightInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/attract/CHANGELOG.md b/interactions/particles/attract/CHANGELOG.md index 99318bca3c7..05aa01a5ac8 100644 --- a/interactions/particles/attract/CHANGELOG.md +++ b/interactions/particles/attract/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-particles-attract diff --git a/interactions/particles/attract/package.dist.json b/interactions/particles/attract/package.dist.json index 3dc6773af68..78afe9466e2 100644 --- a/interactions/particles/attract/package.dist.json +++ b/interactions/particles/attract/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-particles-attract", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles attract particles interaction", "homepage": "https://particles.js.org", "repository": { @@ -93,8 +93,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/interactions/particles/attract/package.json b/interactions/particles/attract/package.json index d778ebf3f6a..2dc6955af30 100644 --- a/interactions/particles/attract/package.json +++ b/interactions/particles/attract/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-particles-attract", - "version": "4.1.3", - "description": "tsParticles attract particles interaction", + "version": "4.2.0", + "description": "tsParticles particle interaction for attracting particles toward each other", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "attract" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/particles/attract/src/Attractor.ts b/interactions/particles/attract/src/Attractor.ts index 13d85d9cb4a..f2503196b3a 100644 --- a/interactions/particles/attract/src/Attractor.ts +++ b/interactions/particles/attract/src/Attractor.ts @@ -1,5 +1,12 @@ import type { AttractParticle, IParticlesAttractOptions, ParticlesAttractOptions } from "./Types.js"; -import { type Container, type RecursivePartial, getDistances, getRangeValue, isNull } from "@tsparticles/engine"; +import { + type Container, + type RecursivePartial, + getDistances, + getRangeValue, + isNull, + loadOptionProperty, +} from "@tsparticles/engine"; import { Attract } from "./Options/Classes/Attract.js"; import { ParticlesInteractorBase } from "@tsparticles/plugin-interactivity"; @@ -16,22 +23,18 @@ export class Attractor extends ParticlesInteractorBase | undefined)[] ): void { - options.attract ??= new Attract(); - - for (const source of sources) { - options.attract.load(source?.attract); - } + loadOptionProperty(options, "attract", Attract, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/particles/attract/src/Options/Classes/Attract.ts b/interactions/particles/attract/src/Options/Classes/Attract.ts index cade4eb8131..ac1f3f26893 100644 --- a/interactions/particles/attract/src/Options/Classes/Attract.ts +++ b/interactions/particles/attract/src/Options/Classes/Attract.ts @@ -4,20 +4,19 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IAttract } from "../Interfaces/IAttract.js"; /** */ export class Attract implements IAttract, IOptionLoader { - distance: RangeValue; - enable; + distance: RangeValue = 200; + enable = false; rotate: ICoordinates; constructor() { - this.distance = 200; - this.enable = false; this.rotate = { x: 3000, y: 3000, @@ -29,13 +28,8 @@ export class Attract implements IAttract, IOptionLoader { return; } - if (data.distance !== undefined) { - this.distance = setRangeValue(data.distance); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadRangeProperty(this, "distance", data.distance); + loadProperty(this, "enable", data.enable); if (data.rotate) { const rotateX = data.rotate.x; diff --git a/interactions/particles/attract/src/index.lazy.ts b/interactions/particles/attract/src/index.lazy.ts index 5026c1b43b2..feccb1ec308 100644 --- a/interactions/particles/attract/src/index.lazy.ts +++ b/interactions/particles/attract/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesAttractInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/attract/src/index.ts b/interactions/particles/attract/src/index.ts index dce57ea91fb..79bc26b222a 100644 --- a/interactions/particles/attract/src/index.ts +++ b/interactions/particles/attract/src/index.ts @@ -5,7 +5,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesAttractInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/collisions/CHANGELOG.md b/interactions/particles/collisions/CHANGELOG.md index 3259a133332..c5360955b5c 100644 --- a/interactions/particles/collisions/CHANGELOG.md +++ b/interactions/particles/collisions/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-particles-collisions diff --git a/interactions/particles/collisions/package.dist.json b/interactions/particles/collisions/package.dist.json index 18698862f20..5a4df488558 100644 --- a/interactions/particles/collisions/package.dist.json +++ b/interactions/particles/collisions/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-particles-collisions", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles collisions particles interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,7 +97,7 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" } } diff --git a/interactions/particles/collisions/package.json b/interactions/particles/collisions/package.json index f4f941a62d5..8c316b6724f 100644 --- a/interactions/particles/collisions/package.json +++ b/interactions/particles/collisions/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-particles-collisions", - "version": "4.1.3", - "description": "tsParticles collisions particles interaction", + "version": "4.2.0", + "description": "tsParticles particle interaction for detecting and resolving collisions between particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "collisions" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/particles/collisions/src/Absorb.ts b/interactions/particles/collisions/src/Absorb.ts index 0ae03996bb7..80a70216979 100644 --- a/interactions/particles/collisions/src/Absorb.ts +++ b/interactions/particles/collisions/src/Absorb.ts @@ -4,12 +4,12 @@ import type { CollisionParticle } from "./Types.js"; const minAbsorbAmount = 0; /** - * @param p1 - - * @param r1 - - * @param p2 - - * @param r2 - - * @param delta - - * @param pixelRatio - + * @param p1 - The first point + * @param r1 - The r1 + * @param p2 - The second point + * @param r2 - The r2 + * @param delta - The delta time + * @param pixelRatio - The pixel ratio */ function updateAbsorb( p1: CollisionParticle, @@ -36,10 +36,10 @@ function updateAbsorb( } /** - * @param p1 - - * @param p2 - - * @param delta - - * @param pixelRatio - + * @param p1 - The first point + * @param p2 - The second point + * @param delta - The delta time + * @param pixelRatio - The pixel ratio */ export function absorb(p1: Particle, p2: Particle, delta: IDelta, pixelRatio: number): void { const r1 = p1.getRadius(), diff --git a/interactions/particles/collisions/src/Bounce.ts b/interactions/particles/collisions/src/Bounce.ts index a4c4827350b..009a0211170 100644 --- a/interactions/particles/collisions/src/Bounce.ts +++ b/interactions/particles/collisions/src/Bounce.ts @@ -25,8 +25,8 @@ const energyCorrectionMinRatio = 1e-6, }; /** - * @param p1 - - * @param p2 - + * @param p1 - The first point + * @param p2 - The second point */ export function bounce(p1: BounceParticle, p2: BounceParticle): void { const m1 = p1.getMass(), diff --git a/interactions/particles/collisions/src/Collider.ts b/interactions/particles/collisions/src/Collider.ts index 6a4c3b53654..bcbc3270112 100644 --- a/interactions/particles/collisions/src/Collider.ts +++ b/interactions/particles/collisions/src/Collider.ts @@ -1,5 +1,12 @@ import { type CollisionParticle, type IParticlesCollisionOptions, type ParticlesCollisionOptions } from "./Types.js"; -import { type Container, type IDelta, type RecursivePartial, double, getDistance } from "@tsparticles/engine"; +import { + type Container, + type IDelta, + type RecursivePartial, + double, + getDistance, + loadOptionProperty, +} from "@tsparticles/engine"; import { type IInteractivityData, ParticlesInteractorBase } from "@tsparticles/plugin-interactivity"; import { Collisions } from "./Options/Classes/Collisions.js"; import { resolveCollision } from "./ResolveCollision.js"; @@ -9,7 +16,6 @@ import { resolveCollision } from "./ResolveCollision.js"; * Handles collision detection and resolution between particles */ export class Collider extends ParticlesInteractorBase { - /** @inheritDoc */ readonly maxDistance; constructor(container: Container) { @@ -18,17 +24,14 @@ export class Collider extends ParticlesInteractorBase | undefined)[] ): void { - options.collisions ??= new Collisions(); - - for (const source of sources) { - options.collisions.load(source?.collisions); - } + loadOptionProperty(options, "collisions", Collisions, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/particles/collisions/src/Destroy.ts b/interactions/particles/collisions/src/Destroy.ts index 1f73fff06d7..54665ba556a 100644 --- a/interactions/particles/collisions/src/Destroy.ts +++ b/interactions/particles/collisions/src/Destroy.ts @@ -2,8 +2,8 @@ import type { Particle } from "@tsparticles/engine"; import { bounce } from "./Bounce.js"; /** - * @param p1 - - * @param p2 - + * @param p1 - The first point + * @param p2 - The second point */ export function destroy(p1: Particle, p2: Particle): void { if (!p1.unbreakable && !p2.unbreakable) { diff --git a/interactions/particles/collisions/src/Options/Classes/Collisions.ts b/interactions/particles/collisions/src/Options/Classes/Collisions.ts index cb81e8c0467..1593c93fd80 100644 --- a/interactions/particles/collisions/src/Options/Classes/Collisions.ts +++ b/interactions/particles/collisions/src/Options/Classes/Collisions.ts @@ -4,7 +4,8 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import { CollisionMode } from "../../CollisionMode.js"; import { CollisionsAbsorb } from "./CollisionsAbsorb.js"; @@ -16,26 +17,17 @@ import type { ICollisions } from "../Interfaces/ICollisions.js"; */ export class Collisions implements ICollisions, IOptionLoader { /** The collisions absorb options */ - readonly absorb; + readonly absorb = new CollisionsAbsorb(); /** The collisions bounce options */ - readonly bounce; + readonly bounce = new ParticlesBounce(); /** Enables collisions */ - enable; + enable = false; /** The maximum collision speed */ - maxSpeed: RangeValue; + maxSpeed: RangeValue = 50; /** The collision mode */ - mode: CollisionMode | keyof typeof CollisionMode; + mode: CollisionMode | keyof typeof CollisionMode = CollisionMode.bounce; /** The collision overlap options */ - readonly overlap; - - constructor() { - this.absorb = new CollisionsAbsorb(); - this.bounce = new ParticlesBounce(); - this.enable = false; - this.maxSpeed = 50; - this.mode = CollisionMode.bounce; - this.overlap = new CollisionsOverlap(); - } + readonly overlap = new CollisionsOverlap(); load(data?: RecursivePartial): void { if (isNull(data)) { @@ -45,17 +37,9 @@ export class Collisions implements ICollisions, IOptionLoader { this.absorb.load(data.absorb); this.bounce.load(data.bounce); - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.maxSpeed !== undefined) { - this.maxSpeed = setRangeValue(data.maxSpeed); - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "maxSpeed", data.maxSpeed); + loadProperty(this, "mode", data.mode); this.overlap.load(data.overlap); } diff --git a/interactions/particles/collisions/src/Options/Classes/CollisionsAbsorb.ts b/interactions/particles/collisions/src/Options/Classes/CollisionsAbsorb.ts index e8ff3123107..c0bf6bd6e68 100644 --- a/interactions/particles/collisions/src/Options/Classes/CollisionsAbsorb.ts +++ b/interactions/particles/collisions/src/Options/Classes/CollisionsAbsorb.ts @@ -1,21 +1,15 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ICollisionsAbsorb } from "../Interfaces/ICollisionsAbsorb.js"; export class CollisionsAbsorb implements ICollisionsAbsorb, IOptionLoader { /** The absorb speed */ - speed; - - constructor() { - this.speed = 2; - } + speed = 2; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.speed !== undefined) { - this.speed = data.speed; - } + loadProperty(this, "speed", data.speed); } } diff --git a/interactions/particles/collisions/src/Options/Classes/CollisionsOverlap.ts b/interactions/particles/collisions/src/Options/Classes/CollisionsOverlap.ts index 6ab073f340b..6ef0ae981c9 100644 --- a/interactions/particles/collisions/src/Options/Classes/CollisionsOverlap.ts +++ b/interactions/particles/collisions/src/Options/Classes/CollisionsOverlap.ts @@ -1,28 +1,18 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ICollisionsOverlap } from "../Interfaces/ICollisionsOverlap.js"; export class CollisionsOverlap implements ICollisionsOverlap, IOptionLoader { /** Enables collision overlap */ - enable: boolean; + enable = true; /** The number of overlap retries */ - retries: number; - - constructor() { - this.enable = true; - this.retries = 0; - } + retries = 0; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.retries !== undefined) { - this.retries = data.retries; - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "retries", data.retries); } } diff --git a/interactions/particles/collisions/src/OverlapPluginInstance.ts b/interactions/particles/collisions/src/OverlapPluginInstance.ts index fec9c6a5685..5b2a03b8ed4 100644 --- a/interactions/particles/collisions/src/OverlapPluginInstance.ts +++ b/interactions/particles/collisions/src/OverlapPluginInstance.ts @@ -14,11 +14,7 @@ export class OverlapPluginInstance implements IContainerPlugin { return !this.#hasOverlaps(particle, position, tryCount); } - readonly #hasOverlaps: (particle: CollisionParticle, position: ICoordinates, tryCount: number) => boolean = ( - particle, - pos, - tryCount, - ) => { + #hasOverlaps(particle: CollisionParticle, pos: ICoordinates, tryCount: number): boolean { const collisionsOptions = particle.options.collisions; if (!collisionsOptions?.enable) { @@ -38,5 +34,5 @@ export class OverlapPluginInstance implements IContainerPlugin { } return !!this.#container.particles.find(p => getDistance(pos, p.position) < particle.getRadius() + p.getRadius()); - }; + } } diff --git a/interactions/particles/collisions/src/ResolveCollision.ts b/interactions/particles/collisions/src/ResolveCollision.ts index f8a933ce622..bf2f15627c0 100644 --- a/interactions/particles/collisions/src/ResolveCollision.ts +++ b/interactions/particles/collisions/src/ResolveCollision.ts @@ -6,10 +6,10 @@ import { bounce } from "./Bounce.js"; import { destroy } from "./Destroy.js"; /** - * @param p1 - - * @param p2 - - * @param delta - - * @param pixelRatio - + * @param p1 - The first point + * @param p2 - The second point + * @param delta - The delta time + * @param pixelRatio - The pixel ratio */ export function resolveCollision( p1: CollisionParticle, diff --git a/interactions/particles/links/CHANGELOG.md b/interactions/particles/links/CHANGELOG.md index 7c68dc658a6..8be2ce25d98 100644 --- a/interactions/particles/links/CHANGELOG.md +++ b/interactions/particles/links/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-particles-links diff --git a/interactions/particles/links/package.dist.json b/interactions/particles/links/package.dist.json index 19db8ceed13..c3cb2e5a0fd 100644 --- a/interactions/particles/links/package.dist.json +++ b/interactions/particles/links/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-particles-links", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles links particles interaction", "homepage": "https://particles.js.org", "repository": { @@ -97,10 +97,10 @@ }, "type": "module", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/interactions/particles/links/package.json b/interactions/particles/links/package.json index ae090833f60..c4afae38c67 100644 --- a/interactions/particles/links/package.json +++ b/interactions/particles/links/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-particles-links", - "version": "4.1.3", - "description": "tsParticles links particles interaction", + "version": "4.2.0", + "description": "tsParticles particle interaction that draws connecting lines between nearby particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "links" ], "author": "Matteo Bruni ", "license": "MIT", @@ -104,7 +70,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/particles/links/src/Interfaces.ts b/interactions/particles/links/src/Interfaces.ts index 5e788631e9d..f52d5a5273f 100644 --- a/interactions/particles/links/src/Interfaces.ts +++ b/interactions/particles/links/src/Interfaces.ts @@ -1,25 +1,6 @@ -import type { IRangeColor, IRgb, RangeValue } from "@tsparticles/engine"; -import type { LinkParticle } from "./Types.js"; +import type { IRangeColor, RangeValue } from "@tsparticles/engine"; -/** Link data between two particles */ -export interface ILink { - /** Link line color */ - color?: IRgb; - /** Destination particle */ - destination: LinkParticle; - /** Whether the link crosses the canvas boundaries */ - isWarped?: boolean; - /** Link line opacity */ - opacity: number; -} - -/** Triangle data between linked particles */ -export interface ILinkTriangle { - /** Triangle fill opacity */ - opacity: number; - /** Triangle vertices */ - vertices: LinkParticle[]; -} +export type { ILink, ILinkTriangle } from "./Types.js"; /** Particles link frequencies */ export interface IParticlesFrequencies { diff --git a/interactions/particles/links/src/Linker.ts b/interactions/particles/links/src/Linker.ts index 2a32cc02e3f..73aab82dfad 100644 --- a/interactions/particles/links/src/Linker.ts +++ b/interactions/particles/links/src/Linker.ts @@ -8,6 +8,7 @@ import { getDistances, getLinkColor, getLinkRandomColor, + loadOptionProperty, originPoint, } from "@tsparticles/engine"; import type { IParticlesLinkOptions, LinkContainer, LinkParticle, ParticlesLinkOptions } from "./Types.js"; @@ -49,23 +50,19 @@ export class Linker extends ParticlesInteractorBase this.#maxDistance = 0; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { this.container.particles.linksColor = undefined; this.container.particles.linksColors = new Map(); } - /** @inheritDoc */ interact(p1: LinkParticle): void { if (!p1.options.links) { return; @@ -137,23 +134,17 @@ export class Linker extends ParticlesInteractorBase } } - /** @inheritDoc */ isEnabled(particle: LinkParticle): boolean { return !!particle.options.links?.enable; } - /** @inheritDoc */ loadParticlesOptions( options: ParticlesLinkOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.links ??= new Links(); - for (const source of sources) { - options.links.load(source?.links); - } + loadOptionProperty(options, "links", Links, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/particles/links/src/Options/Classes/Links.ts b/interactions/particles/links/src/Options/Classes/Links.ts index b8c22b29c2f..dd1ec89cdc1 100644 --- a/interactions/particles/links/src/Options/Classes/Links.ts +++ b/interactions/particles/links/src/Options/Classes/Links.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILinks } from "../Interfaces/ILinks.js"; import { LinksShadow } from "./LinksShadow.js"; import { LinksTriangle } from "./LinksTriangle.js"; @@ -8,90 +8,54 @@ import { LinksTriangle } from "./LinksTriangle.js"; */ export class Links implements ILinks, IOptionLoader { /** Enables random blinking of link colors */ - blink; + blink = false; /** Link line color */ - color; + color = new OptionsColor(); /** Whether a random color applies to all links (consent) */ - consent; + consent = false; /** Maximum link line distance */ - distance; + distance = 100; /** Enables particle links */ - enable; + enable = false; /** Link frequency */ - frequency; + frequency = 1; /** Link ID for grouping */ id?: string; /** Maximum link opacity */ - opacity; + opacity = 1; /** Link shadow options */ - shadow; + shadow = new LinksShadow(); /** Link triangle fill options */ - triangles; + triangles = new LinksTriangle(); /** Enable link wrap around canvas edges */ - warp; + warp = false; /** Link line width */ - width; + width = 1; constructor() { - this.blink = false; - this.color = new OptionsColor(); this.color.value = "#fff"; - this.consent = false; - this.distance = 100; - this.enable = false; - this.frequency = 1; - this.opacity = 1; - this.shadow = new LinksShadow(); - this.triangles = new LinksTriangle(); - this.width = 1; - this.warp = false; } - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.id !== undefined) { - this.id = data.id; - } - - if (data.blink !== undefined) { - this.blink = data.blink; - } + loadProperty(this, "id", data.id); + loadProperty(this, "blink", data.blink); this.color = OptionsColor.create(this.color, data.color); - if (data.consent !== undefined) { - this.consent = data.consent; - } - - if (data.distance !== undefined) { - this.distance = data.distance; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.frequency !== undefined) { - this.frequency = data.frequency; - } - - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadProperty(this, "consent", data.consent); + loadProperty(this, "distance", data.distance); + loadProperty(this, "enable", data.enable); + loadProperty(this, "frequency", data.frequency); + loadProperty(this, "opacity", data.opacity); this.shadow.load(data.shadow); this.triangles.load(data.triangles); - if (data.width !== undefined) { - this.width = data.width; - } - - if (data.warp !== undefined) { - this.warp = data.warp; - } + loadProperty(this, "width", data.width); + loadProperty(this, "warp", data.warp); } } diff --git a/interactions/particles/links/src/Options/Classes/LinksShadow.ts b/interactions/particles/links/src/Options/Classes/LinksShadow.ts index c62b2ec598a..24b83595126 100644 --- a/interactions/particles/links/src/Options/Classes/LinksShadow.ts +++ b/interactions/particles/links/src/Options/Classes/LinksShadow.ts @@ -1,36 +1,28 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILinksShadow } from "../Interfaces/ILinksShadow.js"; /** Links shadow options class */ export class LinksShadow implements ILinksShadow, IOptionLoader { /** Shadow blur radius */ - blur; + blur = 5; /** Shadow color */ - color; + color = new OptionsColor(); /** Enables link shadow */ - enable; + enable = false; constructor() { - this.blur = 5; - this.color = new OptionsColor(); this.color.value = "#000"; - this.enable = false; } - /** @inheritDoc */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.blur !== undefined) { - this.blur = data.blur; - } + loadProperty(this, "blur", data.blur); this.color = OptionsColor.create(this.color, data.color); - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); } } diff --git a/interactions/particles/links/src/Options/Classes/LinksTriangle.ts b/interactions/particles/links/src/Options/Classes/LinksTriangle.ts index d9438895452..db3b2892747 100644 --- a/interactions/particles/links/src/Options/Classes/LinksTriangle.ts +++ b/interactions/particles/links/src/Options/Classes/LinksTriangle.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILinksTriangle } from "../Interfaces/ILinksTriangle.js"; /** Links triangle options class */ @@ -6,18 +6,12 @@ export class LinksTriangle implements ILinksTriangle, IOptionLoader): void { if (isNull(data)) { return; @@ -27,16 +21,8 @@ export class LinksTriangle implements ILinksTriangle, IOptionLoader): number { diff --git a/interactions/particles/links/src/index.lazy.ts b/interactions/particles/links/src/index.lazy.ts index b55dae8b634..a4c41051fd3 100644 --- a/interactions/particles/links/src/index.lazy.ts +++ b/interactions/particles/links/src/index.lazy.ts @@ -5,7 +5,7 @@ import type { LinkContainer } from "./Types.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesLinksInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/links/src/index.ts b/interactions/particles/links/src/index.ts index c03c24d01cf..920f2565e9f 100644 --- a/interactions/particles/links/src/index.ts +++ b/interactions/particles/links/src/index.ts @@ -7,7 +7,7 @@ import { LinksPlugin } from "./LinksPlugin.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesLinksInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/repulse/CHANGELOG.md b/interactions/particles/repulse/CHANGELOG.md index bc907f86e83..1ba07bc965c 100644 --- a/interactions/particles/repulse/CHANGELOG.md +++ b/interactions/particles/repulse/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/interaction-particles-repulse diff --git a/interactions/particles/repulse/package.dist.json b/interactions/particles/repulse/package.dist.json index 09b654eacc1..a81cd063f2c 100644 --- a/interactions/particles/repulse/package.dist.json +++ b/interactions/particles/repulse/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/interaction-particles-repulse", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles repulse particles interaction", "homepage": "https://particles.js.org", "repository": { @@ -107,8 +107,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/interactions/particles/repulse/package.json b/interactions/particles/repulse/package.json index 113a122a68f..98f93412214 100644 --- a/interactions/particles/repulse/package.json +++ b/interactions/particles/repulse/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/interaction-particles-repulse", - "version": "4.1.3", - "description": "tsParticles repulse particles interaction", + "version": "4.2.0", + "description": "tsParticles particle interaction for repelling particles away from each other", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/interaction" + "typescript", + "javascript", + "tsparticles-interaction", + "interaction", + "repulse" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +84,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts b/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts index 3e0d50d50bd..aa4cfaf063f 100644 --- a/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts +++ b/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts @@ -4,33 +4,24 @@ import { type RecursivePartial, ValueWithRandom, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IParticlesRepulse } from "../Interfaces/IParticlesRepulse.js"; /** Particles repulse options class */ export class ParticlesRepulse extends ValueWithRandom implements IParticlesRepulse, IOptionLoader { /** Repulse distance */ - distance: RangeValue; + distance: RangeValue = 1; /** Repulse duration */ - duration: RangeValue; + duration: RangeValue = 1; /** Enables particle repulse */ - enabled; + enabled = false; /** Repulse factor */ - factor: RangeValue; + factor: RangeValue = 1; /** Repulse speed */ - speed: RangeValue; + speed: RangeValue = 1; - constructor() { - super(); - this.enabled = false; - this.distance = 1; - this.duration = 1; - this.factor = 1; - this.speed = 1; - } - - /** @inheritDoc */ override load(data?: RecursivePartial): void { super.load(data); @@ -38,24 +29,10 @@ export class ParticlesRepulse extends ValueWithRandom implements IParticlesRepul return; } - if (data.enabled !== undefined) { - this.enabled = data.enabled; - } - - if (data.distance !== undefined) { - this.distance = setRangeValue(data.distance); - } - - if (data.duration !== undefined) { - this.duration = setRangeValue(data.duration); - } - - if (data.factor !== undefined) { - this.factor = setRangeValue(data.factor); - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } + loadProperty(this, "enabled", data.enabled); + loadRangeProperty(this, "distance", data.distance); + loadRangeProperty(this, "duration", data.duration); + loadRangeProperty(this, "factor", data.factor); + loadRangeProperty(this, "speed", data.speed); } } diff --git a/interactions/particles/repulse/src/Repulser.ts b/interactions/particles/repulse/src/Repulser.ts index 05e7443cc33..5086e5c40d7 100644 --- a/interactions/particles/repulse/src/Repulser.ts +++ b/interactions/particles/repulse/src/Repulser.ts @@ -1,13 +1,20 @@ import type { IRepulseParticlesOptions, RepulseParticlesOptions } from "./Types.js"; import { type InteractivityContainer, ParticlesInteractorBase } from "@tsparticles/plugin-interactivity"; -import { type Particle, type RecursivePartial, Vector, clamp, getDistances, getRangeValue } from "@tsparticles/engine"; +import { + type Particle, + type RecursivePartial, + Vector, + clamp, + getDistances, + getRangeValue, + identity, + loadOptionProperty, + minDistance, + minVelocity, + squareExp, +} from "@tsparticles/engine"; import { ParticlesRepulse } from "./Options/Classes/ParticlesRepulse.js"; -const minDistance = 0, - identity = 1, - squareExp = 2, - minVelocity = 0; - /** Repulse particle extension type */ export type RepulseParticle = Particle & { options: RepulseParticlesOptions; @@ -36,22 +43,18 @@ export class Repulser extends ParticlesInteractorBase { this.#velocityVec = Vector.origin; } - /** @inheritDoc */ get maxDistance(): number { return this.#maxDistance; } - /** @inheritDoc */ clear(): void { // do nothing } - /** @inheritDoc */ init(): void { // do nothing } - /** @inheritDoc */ interact(p1: RepulseParticle): void { const container = this.container; @@ -107,24 +110,17 @@ export class Repulser extends ParticlesInteractorBase { } } - /** @inheritDoc */ isEnabled(particle: RepulseParticle): boolean { return particle.options.repulse?.enabled ?? false; } - /** @inheritDoc */ - loadParticlesOptions?( + loadParticlesOptions( options: RepulseParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.repulse ??= new ParticlesRepulse(); - - for (const source of sources) { - options.repulse.load(source?.repulse); - } + loadOptionProperty(options, "repulse", ParticlesRepulse, ...sources); } - /** @inheritDoc */ reset(): void { // do nothing } diff --git a/interactions/particles/repulse/src/index.lazy.ts b/interactions/particles/repulse/src/index.lazy.ts index 1afa2ad7ff9..20c5cb4f8d2 100644 --- a/interactions/particles/repulse/src/index.lazy.ts +++ b/interactions/particles/repulse/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesRepulseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/interactions/particles/repulse/src/index.ts b/interactions/particles/repulse/src/index.ts index 5f7d32d5348..120b750e4e2 100644 --- a/interactions/particles/repulse/src/index.ts +++ b/interactions/particles/repulse/src/index.ts @@ -5,7 +5,7 @@ import { Repulser } from "./Repulser.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadParticlesRepulseInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/lerna.json b/lerna.json index a87cbdfb5b7..428733108d7 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.1.3", + "version": "4.2.0", "npmClient": "pnpm", "conventionalCommits": true, "command": { diff --git a/package.json b/package.json index 01de8509d0e..694ba6e7a60 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "name": "@tsparticles/workspace", "description": "tsParticles monorepository", - "version": "4.1.1", + "version": "4.2.0", "type": "module", "scripts": { "build": "pnpm run prettify:readme && nx run-many -t build --parallel=50%", @@ -25,43 +25,44 @@ "release:zip-artifacts": "node scripts/package-zips.js", "release:prettify-changelog": "node scripts/prettify-changelog.js", "deploy:docs:json": "node deploy.docs-json.js", - "prepare": "husky" + "prepare": "husky", + "template:run": "bash scripts/run-template.sh" }, "prettier": "@tsparticles/prettier-config", "devDependencies": { "@commitlint/cli": "^21.0.2", "@commitlint/config-conventional": "^21.0.2", - "@nx/devkit": "^22.7.5", - "@nx/js": "^22.7.5", + "@nx/devkit": "^23.0.0", + "@nx/js": "^23.0.0", "@swc-node/register": "^1.11.1", - "@swc/core": "^1.15.40", - "@tsparticles/browserslist-config": "workspace:^", - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-nx-plugin": "workspace:^", - "@tsparticles/depcruise-config": "workspace:^", - "@tsparticles/eslint-config": "workspace:^", - "@tsparticles/prettier-config": "workspace:^", - "@tsparticles/rollup-plugin": "workspace:^", - "@tsparticles/tsconfig": "workspace:^", - "@tsparticles/webpack-plugin": "workspace:^", - "@types/node": "^25.9.1", + "@swc/core": "^1.15.41", + "@tsparticles/browserslist-config": "workspace:*", + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-nx-plugin": "workspace:*", + "@tsparticles/depcruise-config": "workspace:*", + "@tsparticles/eslint-config": "workspace:*", + "@tsparticles/prettier-config": "workspace:*", + "@tsparticles/rollup-plugin": "workspace:*", + "@tsparticles/tsconfig": "workspace:*", + "@tsparticles/webpack-plugin": "workspace:*", + "@types/node": "^25.9.3", "@types/webpack-env": "^1.18.8", "browserslist": "^4.28.2", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", - "eslint": "^10.4.1", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.0", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "fs-extra": "^11.3.5", "gh-pages": "^6.3.0", "husky": "^9.1.7", "lerna": "^9.0.7", - "nx": "^22.7.5", + "nx": "^23.0.0", "nx-cloud": "^19.1.3", - "prettier": "^3.8.3", - "prettier-plugin-multiline-arrays": "^4.1.8", + "prettier": "^3.8.4", + "prettier-plugin-multiline-arrays": "^4.1.9", "puppeteer": "^25.1.0", "rimraf": "^6.1.3", "source-map-support": "^0.5.21", @@ -70,11 +71,11 @@ "ts-json-schema-generator": "^2.9.0", "ts-node": "^10.9.2", "typescript": "^6.0.3", - "typescript-eslint": "^8.60.0", + "typescript-eslint": "^8.61.1", "webpack": "^5.107.2", "webpack-bundle-analyzer": "^5.3.0", "webpack-cli": "^7.0.3", "yargs": "^18.0.0" }, - "packageManager": "pnpm@11.5.1" + "packageManager": "pnpm@11.7.0" } diff --git a/palettes/atmosphere/coloredSmokeAmber/CHANGELOG.md b/palettes/atmosphere/coloredSmokeAmber/CHANGELOG.md index 11c0e32cf42..62a17894d5e 100644 --- a/palettes/atmosphere/coloredSmokeAmber/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeAmber/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-amber diff --git a/palettes/atmosphere/coloredSmokeAmber/README.md b/palettes/atmosphere/coloredSmokeAmber/README.md index f3b2628beaf..d9233ca5ab8 100644 --- a/palettes/atmosphere/coloredSmokeAmber/README.md +++ b/palettes/atmosphere/coloredSmokeAmber/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeAmber/package.dist.json b/palettes/atmosphere/coloredSmokeAmber/package.dist.json index c64eb0cf685..745108d1d33 100644 --- a/palettes/atmosphere/coloredSmokeAmber/package.dist.json +++ b/palettes/atmosphere/coloredSmokeAmber/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-amber", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke amber palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeAmber/package.json b/palettes/atmosphere/coloredSmokeAmber/package.json index 8bd4a2c8074..97341c7d385 100644 --- a/palettes/atmosphere/coloredSmokeAmber/package.json +++ b/palettes/atmosphere/coloredSmokeAmber/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-amber", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke amber palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeAmber/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeAmber/src/index.lazy.ts index dfd9dea4708..53de0822852 100644 --- a/palettes/atmosphere/coloredSmokeAmber/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeAmber/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-amber"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeAmberPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeAmber/src/index.ts b/palettes/atmosphere/coloredSmokeAmber/src/index.ts index 04ca26a12f5..db936aab0d7 100644 --- a/palettes/atmosphere/coloredSmokeAmber/src/index.ts +++ b/palettes/atmosphere/coloredSmokeAmber/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-amber"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeAmberPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeBlue/CHANGELOG.md b/palettes/atmosphere/coloredSmokeBlue/CHANGELOG.md index bbf95c36a79..2db0e46edad 100644 --- a/palettes/atmosphere/coloredSmokeBlue/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeBlue/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-blue diff --git a/palettes/atmosphere/coloredSmokeBlue/README.md b/palettes/atmosphere/coloredSmokeBlue/README.md index c5ac304d53b..71f5967c6b4 100644 --- a/palettes/atmosphere/coloredSmokeBlue/README.md +++ b/palettes/atmosphere/coloredSmokeBlue/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeBlue/package.dist.json b/palettes/atmosphere/coloredSmokeBlue/package.dist.json index 3d700f6e34d..e76e4a19a13 100644 --- a/palettes/atmosphere/coloredSmokeBlue/package.dist.json +++ b/palettes/atmosphere/coloredSmokeBlue/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke blue palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeBlue/package.json b/palettes/atmosphere/coloredSmokeBlue/package.json index b5d028b94d4..3328ddb416e 100644 --- a/palettes/atmosphere/coloredSmokeBlue/package.json +++ b/palettes/atmosphere/coloredSmokeBlue/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke blue palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeBlue/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeBlue/src/index.lazy.ts index 90462da2fa9..83f66ca2a58 100644 --- a/palettes/atmosphere/coloredSmokeBlue/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeBlue/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeBluePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeBlue/src/index.ts b/palettes/atmosphere/coloredSmokeBlue/src/index.ts index fb367793deb..fb5ad9b5639 100644 --- a/palettes/atmosphere/coloredSmokeBlue/src/index.ts +++ b/palettes/atmosphere/coloredSmokeBlue/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeBluePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeGreen/CHANGELOG.md b/palettes/atmosphere/coloredSmokeGreen/CHANGELOG.md index 2d78c95c70f..888fac36ecb 100644 --- a/palettes/atmosphere/coloredSmokeGreen/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeGreen/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-green diff --git a/palettes/atmosphere/coloredSmokeGreen/README.md b/palettes/atmosphere/coloredSmokeGreen/README.md index 8f8c3bfc930..097728b8028 100644 --- a/palettes/atmosphere/coloredSmokeGreen/README.md +++ b/palettes/atmosphere/coloredSmokeGreen/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeGreen/package.dist.json b/palettes/atmosphere/coloredSmokeGreen/package.dist.json index f4341fedef5..3a301764806 100644 --- a/palettes/atmosphere/coloredSmokeGreen/package.dist.json +++ b/palettes/atmosphere/coloredSmokeGreen/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke green palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeGreen/package.json b/palettes/atmosphere/coloredSmokeGreen/package.json index 896ee2f7510..d73e280582c 100644 --- a/palettes/atmosphere/coloredSmokeGreen/package.json +++ b/palettes/atmosphere/coloredSmokeGreen/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke green palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeGreen/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeGreen/src/index.lazy.ts index 318f90ecd6e..a43c788d33d 100644 --- a/palettes/atmosphere/coloredSmokeGreen/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeGreen/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeGreen/src/index.ts b/palettes/atmosphere/coloredSmokeGreen/src/index.ts index 66bfb1c89c0..bfd12f5cc88 100644 --- a/palettes/atmosphere/coloredSmokeGreen/src/index.ts +++ b/palettes/atmosphere/coloredSmokeGreen/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeMagenta/CHANGELOG.md b/palettes/atmosphere/coloredSmokeMagenta/CHANGELOG.md index f33109a953a..ea5f84acd26 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeMagenta/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-magenta diff --git a/palettes/atmosphere/coloredSmokeMagenta/README.md b/palettes/atmosphere/coloredSmokeMagenta/README.md index 05aea62ce07..f9227a79b35 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/README.md +++ b/palettes/atmosphere/coloredSmokeMagenta/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeMagenta/package.dist.json b/palettes/atmosphere/coloredSmokeMagenta/package.dist.json index f05a8763fce..fe4e18bd21a 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/package.dist.json +++ b/palettes/atmosphere/coloredSmokeMagenta/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-magenta", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke - magenta palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeMagenta/package.json b/palettes/atmosphere/coloredSmokeMagenta/package.json index 179d6765313..31b5828056d 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/package.json +++ b/palettes/atmosphere/coloredSmokeMagenta/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-magenta", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke - magenta palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeMagenta/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeMagenta/src/index.lazy.ts index 9c0807d633e..210df4204a3 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeMagenta/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-magenta"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeMagentaPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeMagenta/src/index.ts b/palettes/atmosphere/coloredSmokeMagenta/src/index.ts index 7a222023508..b63d46680ee 100644 --- a/palettes/atmosphere/coloredSmokeMagenta/src/index.ts +++ b/palettes/atmosphere/coloredSmokeMagenta/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-magenta"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeMagentaPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeOrange/CHANGELOG.md b/palettes/atmosphere/coloredSmokeOrange/CHANGELOG.md index c9901747b43..742131ffba9 100644 --- a/palettes/atmosphere/coloredSmokeOrange/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeOrange/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-orange diff --git a/palettes/atmosphere/coloredSmokeOrange/README.md b/palettes/atmosphere/coloredSmokeOrange/README.md index 353fc9ce275..a649722f663 100644 --- a/palettes/atmosphere/coloredSmokeOrange/README.md +++ b/palettes/atmosphere/coloredSmokeOrange/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeOrange/package.dist.json b/palettes/atmosphere/coloredSmokeOrange/package.dist.json index 8311ca43fc5..114c5a48297 100644 --- a/palettes/atmosphere/coloredSmokeOrange/package.dist.json +++ b/palettes/atmosphere/coloredSmokeOrange/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-orange", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke orange palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeOrange/package.json b/palettes/atmosphere/coloredSmokeOrange/package.json index e87f442ed7e..cdee34b7d93 100644 --- a/palettes/atmosphere/coloredSmokeOrange/package.json +++ b/palettes/atmosphere/coloredSmokeOrange/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-orange", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke orange palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeOrange/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeOrange/src/index.lazy.ts index 79ee73b0368..003734e111e 100644 --- a/palettes/atmosphere/coloredSmokeOrange/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeOrange/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-orange"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeOrangePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeOrange/src/index.ts b/palettes/atmosphere/coloredSmokeOrange/src/index.ts index 9cda5314684..15523c81d96 100644 --- a/palettes/atmosphere/coloredSmokeOrange/src/index.ts +++ b/palettes/atmosphere/coloredSmokeOrange/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-orange"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeOrangePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokePurple/CHANGELOG.md b/palettes/atmosphere/coloredSmokePurple/CHANGELOG.md index ac0245b969f..b76d8fe8bed 100644 --- a/palettes/atmosphere/coloredSmokePurple/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokePurple/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-purple diff --git a/palettes/atmosphere/coloredSmokePurple/README.md b/palettes/atmosphere/coloredSmokePurple/README.md index 0f1b706024f..f22e000b2ae 100644 --- a/palettes/atmosphere/coloredSmokePurple/README.md +++ b/palettes/atmosphere/coloredSmokePurple/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokePurple/package.dist.json b/palettes/atmosphere/coloredSmokePurple/package.dist.json index 4806671e80c..70a9dcd5b48 100644 --- a/palettes/atmosphere/coloredSmokePurple/package.dist.json +++ b/palettes/atmosphere/coloredSmokePurple/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke purple palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokePurple/package.json b/palettes/atmosphere/coloredSmokePurple/package.json index 5b4675b8568..59dfae528bc 100644 --- a/palettes/atmosphere/coloredSmokePurple/package.json +++ b/palettes/atmosphere/coloredSmokePurple/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke purple palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokePurple/src/index.lazy.ts b/palettes/atmosphere/coloredSmokePurple/src/index.lazy.ts index 37dfbd1067f..e9d22578320 100644 --- a/palettes/atmosphere/coloredSmokePurple/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokePurple/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokePurplePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokePurple/src/index.ts b/palettes/atmosphere/coloredSmokePurple/src/index.ts index ef326e5af53..a12cb0b47e7 100644 --- a/palettes/atmosphere/coloredSmokePurple/src/index.ts +++ b/palettes/atmosphere/coloredSmokePurple/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokePurplePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeRainbow/CHANGELOG.md b/palettes/atmosphere/coloredSmokeRainbow/CHANGELOG.md index e306863a9b6..b749b046128 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeRainbow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-rainbow diff --git a/palettes/atmosphere/coloredSmokeRainbow/README.md b/palettes/atmosphere/coloredSmokeRainbow/README.md index 691881c0abf..99f49b6bbc5 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/README.md +++ b/palettes/atmosphere/coloredSmokeRainbow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeRainbow/package.dist.json b/palettes/atmosphere/coloredSmokeRainbow/package.dist.json index 8540eaef9bc..a8feeb85b70 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/package.dist.json +++ b/palettes/atmosphere/coloredSmokeRainbow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke rainbow palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeRainbow/package.json b/palettes/atmosphere/coloredSmokeRainbow/package.json index 4a126a0b770..069525d5822 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/package.json +++ b/palettes/atmosphere/coloredSmokeRainbow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke rainbow palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeRainbow/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeRainbow/src/index.lazy.ts index b62c35b27ec..da61c99895d 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeRainbow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeRainbow/src/index.ts b/palettes/atmosphere/coloredSmokeRainbow/src/index.ts index 305372f8085..f838e9f9e13 100644 --- a/palettes/atmosphere/coloredSmokeRainbow/src/index.ts +++ b/palettes/atmosphere/coloredSmokeRainbow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeRed/CHANGELOG.md b/palettes/atmosphere/coloredSmokeRed/CHANGELOG.md index b467de86fb6..0fcfc3a3452 100644 --- a/palettes/atmosphere/coloredSmokeRed/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeRed/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-red diff --git a/palettes/atmosphere/coloredSmokeRed/README.md b/palettes/atmosphere/coloredSmokeRed/README.md index 3361da90c1d..6cc25cb3a29 100644 --- a/palettes/atmosphere/coloredSmokeRed/README.md +++ b/palettes/atmosphere/coloredSmokeRed/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeRed/package.dist.json b/palettes/atmosphere/coloredSmokeRed/package.dist.json index 703493ed7fe..e0493528a07 100644 --- a/palettes/atmosphere/coloredSmokeRed/package.dist.json +++ b/palettes/atmosphere/coloredSmokeRed/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke red palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeRed/package.json b/palettes/atmosphere/coloredSmokeRed/package.json index 01c5ef124b6..f8e3ae184e6 100644 --- a/palettes/atmosphere/coloredSmokeRed/package.json +++ b/palettes/atmosphere/coloredSmokeRed/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke red palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeRed/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeRed/src/index.lazy.ts index 12aded83153..92f7a422efa 100644 --- a/palettes/atmosphere/coloredSmokeRed/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeRed/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeRedPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeRed/src/index.ts b/palettes/atmosphere/coloredSmokeRed/src/index.ts index 4f7f3b2657f..1e54d29fd87 100644 --- a/palettes/atmosphere/coloredSmokeRed/src/index.ts +++ b/palettes/atmosphere/coloredSmokeRed/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeRedPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/coloredSmokeTeal/CHANGELOG.md b/palettes/atmosphere/coloredSmokeTeal/CHANGELOG.md index f97ad7ed567..564b87cfb78 100644 --- a/palettes/atmosphere/coloredSmokeTeal/CHANGELOG.md +++ b/palettes/atmosphere/coloredSmokeTeal/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-colored-smoke-teal diff --git a/palettes/atmosphere/coloredSmokeTeal/README.md b/palettes/atmosphere/coloredSmokeTeal/README.md index 754b1ca4bc6..970767b6bd9 100644 --- a/palettes/atmosphere/coloredSmokeTeal/README.md +++ b/palettes/atmosphere/coloredSmokeTeal/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/coloredSmokeTeal/package.dist.json b/palettes/atmosphere/coloredSmokeTeal/package.dist.json index 56ba910386c..1de321b18ba 100644 --- a/palettes/atmosphere/coloredSmokeTeal/package.dist.json +++ b/palettes/atmosphere/coloredSmokeTeal/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-teal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke - teal palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/coloredSmokeTeal/package.json b/palettes/atmosphere/coloredSmokeTeal/package.json index 7a0dfa414b6..a92bf2015bd 100644 --- a/palettes/atmosphere/coloredSmokeTeal/package.json +++ b/palettes/atmosphere/coloredSmokeTeal/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-colored-smoke-teal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles colored smoke - teal palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/coloredSmokeTeal/src/index.lazy.ts b/palettes/atmosphere/coloredSmokeTeal/src/index.lazy.ts index f9785b1448f..7c2be8df103 100644 --- a/palettes/atmosphere/coloredSmokeTeal/src/index.lazy.ts +++ b/palettes/atmosphere/coloredSmokeTeal/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "colored-smoke-teal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeTealPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/coloredSmokeTeal/src/index.ts b/palettes/atmosphere/coloredSmokeTeal/src/index.ts index dbfd993d9f4..fec16ad143d 100644 --- a/palettes/atmosphere/coloredSmokeTeal/src/index.ts +++ b/palettes/atmosphere/coloredSmokeTeal/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "colored-smoke-teal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadColoredSmokeTealPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/dustHaze/CHANGELOG.md b/palettes/atmosphere/dustHaze/CHANGELOG.md index 701b622228e..770725b1eed 100644 --- a/palettes/atmosphere/dustHaze/CHANGELOG.md +++ b/palettes/atmosphere/dustHaze/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-dust-haze diff --git a/palettes/atmosphere/dustHaze/README.md b/palettes/atmosphere/dustHaze/README.md index bb5a423d8b8..80321f36499 100644 --- a/palettes/atmosphere/dustHaze/README.md +++ b/palettes/atmosphere/dustHaze/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/dustHaze/package.dist.json b/palettes/atmosphere/dustHaze/package.dist.json index 5edfe655649..8e410914d0b 100644 --- a/palettes/atmosphere/dustHaze/package.dist.json +++ b/palettes/atmosphere/dustHaze/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dust-haze", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dust haze atmosphere palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/dustHaze/package.json b/palettes/atmosphere/dustHaze/package.json index 0dacf7f4149..c4fdf524be6 100644 --- a/palettes/atmosphere/dustHaze/package.json +++ b/palettes/atmosphere/dustHaze/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dust-haze", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dust haze atmosphere palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/dustHaze/src/index.lazy.ts b/palettes/atmosphere/dustHaze/src/index.lazy.ts index 32845384f40..3504a899aa3 100644 --- a/palettes/atmosphere/dustHaze/src/index.lazy.ts +++ b/palettes/atmosphere/dustHaze/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "dust-haze"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDustHazePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/dustHaze/src/index.ts b/palettes/atmosphere/dustHaze/src/index.ts index 7e7ea16b778..ef65f289376 100644 --- a/palettes/atmosphere/dustHaze/src/index.ts +++ b/palettes/atmosphere/dustHaze/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "dust-haze"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDustHazePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/fogMorning/CHANGELOG.md b/palettes/atmosphere/fogMorning/CHANGELOG.md index 9d1d376da36..229b4c7a24d 100644 --- a/palettes/atmosphere/fogMorning/CHANGELOG.md +++ b/palettes/atmosphere/fogMorning/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fog-morning diff --git a/palettes/atmosphere/fogMorning/README.md b/palettes/atmosphere/fogMorning/README.md index 00fe724d86d..a7b0d825412 100644 --- a/palettes/atmosphere/fogMorning/README.md +++ b/palettes/atmosphere/fogMorning/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/fogMorning/package.dist.json b/palettes/atmosphere/fogMorning/package.dist.json index 559a9ee74e2..01be623af6a 100644 --- a/palettes/atmosphere/fogMorning/package.dist.json +++ b/palettes/atmosphere/fogMorning/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fog-morning", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles morning fog atmosphere palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/fogMorning/package.json b/palettes/atmosphere/fogMorning/package.json index 99449e756b7..60b9c75a551 100644 --- a/palettes/atmosphere/fogMorning/package.json +++ b/palettes/atmosphere/fogMorning/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fog-morning", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles morning fog atmosphere palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/fogMorning/src/index.lazy.ts b/palettes/atmosphere/fogMorning/src/index.lazy.ts index 35e1b131a72..94589b05aad 100644 --- a/palettes/atmosphere/fogMorning/src/index.lazy.ts +++ b/palettes/atmosphere/fogMorning/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fog-morning"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFogMorningPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/fogMorning/src/index.ts b/palettes/atmosphere/fogMorning/src/index.ts index 64447a55904..2671f3ad305 100644 --- a/palettes/atmosphere/fogMorning/src/index.ts +++ b/palettes/atmosphere/fogMorning/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fog-morning"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFogMorningPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmosphere/volcanicAsh/CHANGELOG.md b/palettes/atmosphere/volcanicAsh/CHANGELOG.md index cffeac030cb..7636d8f7834 100644 --- a/palettes/atmosphere/volcanicAsh/CHANGELOG.md +++ b/palettes/atmosphere/volcanicAsh/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-volcanic-ash diff --git a/palettes/atmosphere/volcanicAsh/README.md b/palettes/atmosphere/volcanicAsh/README.md index c74625c47ab..e317dfeb723 100644 --- a/palettes/atmosphere/volcanicAsh/README.md +++ b/palettes/atmosphere/volcanicAsh/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmosphere/volcanicAsh/package.dist.json b/palettes/atmosphere/volcanicAsh/package.dist.json index 67bf52609b6..0ea910680c1 100644 --- a/palettes/atmosphere/volcanicAsh/package.dist.json +++ b/palettes/atmosphere/volcanicAsh/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-volcanic-ash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles volcanic ash atmosphere palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmosphere/volcanicAsh/package.json b/palettes/atmosphere/volcanicAsh/package.json index 2ee92e21623..3d3d866fdad 100644 --- a/palettes/atmosphere/volcanicAsh/package.json +++ b/palettes/atmosphere/volcanicAsh/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-volcanic-ash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles volcanic ash atmosphere palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmosphere/volcanicAsh/src/index.lazy.ts b/palettes/atmosphere/volcanicAsh/src/index.lazy.ts index c046df42d5b..38b8a91f28f 100644 --- a/palettes/atmosphere/volcanicAsh/src/index.lazy.ts +++ b/palettes/atmosphere/volcanicAsh/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "volcanic-ash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVolcanicAshPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmosphere/volcanicAsh/src/index.ts b/palettes/atmosphere/volcanicAsh/src/index.ts index 2719425bb62..87f33560057 100644 --- a/palettes/atmosphere/volcanicAsh/src/index.ts +++ b/palettes/atmosphere/volcanicAsh/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "volcanic-ash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVolcanicAshPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/heatDuality/CHANGELOG.md b/palettes/atmospheric/heatDuality/CHANGELOG.md index 29f94346beb..72dc4a3097d 100644 --- a/palettes/atmospheric/heatDuality/CHANGELOG.md +++ b/palettes/atmospheric/heatDuality/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-heat-duality diff --git a/palettes/atmospheric/heatDuality/README.md b/palettes/atmospheric/heatDuality/README.md index 64122f3d73d..558cf47947f 100644 --- a/palettes/atmospheric/heatDuality/README.md +++ b/palettes/atmospheric/heatDuality/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/heatDuality/package.dist.json b/palettes/atmospheric/heatDuality/package.dist.json index 91b961ea7ba..d4a67b1251a 100644 --- a/palettes/atmospheric/heatDuality/package.dist.json +++ b/palettes/atmospheric/heatDuality/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-heat-duality", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles heat duality palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/heatDuality/package.json b/palettes/atmospheric/heatDuality/package.json index 685a5a709b6..d5b1f54efb8 100644 --- a/palettes/atmospheric/heatDuality/package.json +++ b/palettes/atmospheric/heatDuality/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-heat-duality", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles heat duality palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/heatDuality/src/index.lazy.ts b/palettes/atmospheric/heatDuality/src/index.lazy.ts index be376c1980f..724a4d24b6b 100644 --- a/palettes/atmospheric/heatDuality/src/index.lazy.ts +++ b/palettes/atmospheric/heatDuality/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "heat-duality"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeatDualityPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/heatDuality/src/index.ts b/palettes/atmospheric/heatDuality/src/index.ts index 2aa8be34bf4..c678f0ae3ac 100644 --- a/palettes/atmospheric/heatDuality/src/index.ts +++ b/palettes/atmospheric/heatDuality/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "heat-duality"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeatDualityPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/heatHaze/CHANGELOG.md b/palettes/atmospheric/heatHaze/CHANGELOG.md index 75e031d1408..fcdc381751d 100644 --- a/palettes/atmospheric/heatHaze/CHANGELOG.md +++ b/palettes/atmospheric/heatHaze/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-heat-haze diff --git a/palettes/atmospheric/heatHaze/README.md b/palettes/atmospheric/heatHaze/README.md index a2bdcfe3fc9..a6d6b7f1a8d 100644 --- a/palettes/atmospheric/heatHaze/README.md +++ b/palettes/atmospheric/heatHaze/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/heatHaze/package.dist.json b/palettes/atmospheric/heatHaze/package.dist.json index 1186824e05e..3cf36c6a7b0 100644 --- a/palettes/atmospheric/heatHaze/package.dist.json +++ b/palettes/atmospheric/heatHaze/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-heat-haze", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles heat haze palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/heatHaze/package.json b/palettes/atmospheric/heatHaze/package.json index 88e0bd36f8e..3ff48efa94d 100644 --- a/palettes/atmospheric/heatHaze/package.json +++ b/palettes/atmospheric/heatHaze/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-heat-haze", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles heat haze palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/heatHaze/src/index.lazy.ts b/palettes/atmospheric/heatHaze/src/index.lazy.ts index e76c9d27d1e..a1de7fc5f33 100644 --- a/palettes/atmospheric/heatHaze/src/index.lazy.ts +++ b/palettes/atmospheric/heatHaze/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "heat-haze"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeatHazePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/heatHaze/src/index.ts b/palettes/atmospheric/heatHaze/src/index.ts index 124e818f840..ab2f97a8710 100644 --- a/palettes/atmospheric/heatHaze/src/index.ts +++ b/palettes/atmospheric/heatHaze/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "heat-haze"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeatHazePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/lightning/CHANGELOG.md b/palettes/atmospheric/lightning/CHANGELOG.md index 237aafb407b..20b6ea68054 100644 --- a/palettes/atmospheric/lightning/CHANGELOG.md +++ b/palettes/atmospheric/lightning/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-lightning diff --git a/palettes/atmospheric/lightning/README.md b/palettes/atmospheric/lightning/README.md index 6eda23ef544..5efb8403883 100644 --- a/palettes/atmospheric/lightning/README.md +++ b/palettes/atmospheric/lightning/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/lightning/package.dist.json b/palettes/atmospheric/lightning/package.dist.json index 327c6f376da..c8586c680d9 100644 --- a/palettes/atmospheric/lightning/package.dist.json +++ b/palettes/atmospheric/lightning/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lightning", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lightning palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/lightning/package.json b/palettes/atmospheric/lightning/package.json index 44c70a1611c..c5d851219c1 100644 --- a/palettes/atmospheric/lightning/package.json +++ b/palettes/atmospheric/lightning/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lightning", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lightning palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/lightning/src/index.lazy.ts b/palettes/atmospheric/lightning/src/index.lazy.ts index 80925b5e389..96c67b8dbdc 100644 --- a/palettes/atmospheric/lightning/src/index.lazy.ts +++ b/palettes/atmospheric/lightning/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "lightning"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLightningPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/lightning/src/index.ts b/palettes/atmospheric/lightning/src/index.ts index f15b4a2a85f..88b0904bff6 100644 --- a/palettes/atmospheric/lightning/src/index.ts +++ b/palettes/atmospheric/lightning/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "lightning"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLightningPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/shockwave/CHANGELOG.md b/palettes/atmospheric/shockwave/CHANGELOG.md index 972fa48a419..92930ed01fb 100644 --- a/palettes/atmospheric/shockwave/CHANGELOG.md +++ b/palettes/atmospheric/shockwave/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-shockwave diff --git a/palettes/atmospheric/shockwave/README.md b/palettes/atmospheric/shockwave/README.md index 2a4f2b35a66..b8aa2cbdca7 100644 --- a/palettes/atmospheric/shockwave/README.md +++ b/palettes/atmospheric/shockwave/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/shockwave/package.dist.json b/palettes/atmospheric/shockwave/package.dist.json index 751fe0d88ac..bbf1aa586a1 100644 --- a/palettes/atmospheric/shockwave/package.dist.json +++ b/palettes/atmospheric/shockwave/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-shockwave", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles shockwave palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/shockwave/package.json b/palettes/atmospheric/shockwave/package.json index 0e858bcc9f2..92c5d854f25 100644 --- a/palettes/atmospheric/shockwave/package.json +++ b/palettes/atmospheric/shockwave/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-shockwave", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles shockwave palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/shockwave/src/index.lazy.ts b/palettes/atmospheric/shockwave/src/index.lazy.ts index d6e32f26949..7bbf71bc224 100644 --- a/palettes/atmospheric/shockwave/src/index.lazy.ts +++ b/palettes/atmospheric/shockwave/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "shockwave"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShockwavePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/shockwave/src/index.ts b/palettes/atmospheric/shockwave/src/index.ts index ea8d3449484..afb547e5e72 100644 --- a/palettes/atmospheric/shockwave/src/index.ts +++ b/palettes/atmospheric/shockwave/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "shockwave"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShockwavePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/smokeCold/CHANGELOG.md b/palettes/atmospheric/smokeCold/CHANGELOG.md index 35099cbacaf..d26ba7d85ce 100644 --- a/palettes/atmospheric/smokeCold/CHANGELOG.md +++ b/palettes/atmospheric/smokeCold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-smoke-cold diff --git a/palettes/atmospheric/smokeCold/README.md b/palettes/atmospheric/smokeCold/README.md index 3a4c3915b8e..b199cfd0349 100644 --- a/palettes/atmospheric/smokeCold/README.md +++ b/palettes/atmospheric/smokeCold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/smokeCold/package.dist.json b/palettes/atmospheric/smokeCold/package.dist.json index 6d315d50a17..a0d2d9d60e2 100644 --- a/palettes/atmospheric/smokeCold/package.dist.json +++ b/palettes/atmospheric/smokeCold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-smoke-cold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smoke - cold palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/smokeCold/package.json b/palettes/atmospheric/smokeCold/package.json index 264c6b29f53..ecb77c76a15 100644 --- a/palettes/atmospheric/smokeCold/package.json +++ b/palettes/atmospheric/smokeCold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-smoke-cold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smoke - cold palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/smokeCold/src/index.lazy.ts b/palettes/atmospheric/smokeCold/src/index.lazy.ts index 2125ed90138..bd3bfc4529f 100644 --- a/palettes/atmospheric/smokeCold/src/index.lazy.ts +++ b/palettes/atmospheric/smokeCold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "smoke-cold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSmokeColdPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/smokeCold/src/index.ts b/palettes/atmospheric/smokeCold/src/index.ts index 7055c70ac40..d444071ad7e 100644 --- a/palettes/atmospheric/smokeCold/src/index.ts +++ b/palettes/atmospheric/smokeCold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "smoke-cold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSmokeColdPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/smokeWarm/CHANGELOG.md b/palettes/atmospheric/smokeWarm/CHANGELOG.md index 39111d2b74c..a8bacc75bc9 100644 --- a/palettes/atmospheric/smokeWarm/CHANGELOG.md +++ b/palettes/atmospheric/smokeWarm/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-smoke-warm diff --git a/palettes/atmospheric/smokeWarm/README.md b/palettes/atmospheric/smokeWarm/README.md index a8dcd304354..36719f0bab4 100644 --- a/palettes/atmospheric/smokeWarm/README.md +++ b/palettes/atmospheric/smokeWarm/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/smokeWarm/package.dist.json b/palettes/atmospheric/smokeWarm/package.dist.json index f52e2bf1e40..9758775bcd8 100644 --- a/palettes/atmospheric/smokeWarm/package.dist.json +++ b/palettes/atmospheric/smokeWarm/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-smoke-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smoke - warm palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/smokeWarm/package.json b/palettes/atmospheric/smokeWarm/package.json index 90b9920408c..efd6c37a0cf 100644 --- a/palettes/atmospheric/smokeWarm/package.json +++ b/palettes/atmospheric/smokeWarm/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-smoke-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smoke - warm palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/smokeWarm/src/index.lazy.ts b/palettes/atmospheric/smokeWarm/src/index.lazy.ts index 4b02ad7ac21..0b5e44b14da 100644 --- a/palettes/atmospheric/smokeWarm/src/index.lazy.ts +++ b/palettes/atmospheric/smokeWarm/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "smoke-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSmokeWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/smokeWarm/src/index.ts b/palettes/atmospheric/smokeWarm/src/index.ts index 326f974d1fa..26b73500656 100644 --- a/palettes/atmospheric/smokeWarm/src/index.ts +++ b/palettes/atmospheric/smokeWarm/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "smoke-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSmokeWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/sunriseGold/CHANGELOG.md b/palettes/atmospheric/sunriseGold/CHANGELOG.md index b74c9991bd8..ccd2d174f3d 100644 --- a/palettes/atmospheric/sunriseGold/CHANGELOG.md +++ b/palettes/atmospheric/sunriseGold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-sunrise-gold diff --git a/palettes/atmospheric/sunriseGold/README.md b/palettes/atmospheric/sunriseGold/README.md index c5db7c37b36..47c947a12c5 100644 --- a/palettes/atmospheric/sunriseGold/README.md +++ b/palettes/atmospheric/sunriseGold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/sunriseGold/package.dist.json b/palettes/atmospheric/sunriseGold/package.dist.json index 12d469ecddc..9a376a007d0 100644 --- a/palettes/atmospheric/sunriseGold/package.dist.json +++ b/palettes/atmospheric/sunriseGold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sunrise-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sunrise gold palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/sunriseGold/package.json b/palettes/atmospheric/sunriseGold/package.json index ed8ba1a8efe..374b24e281a 100644 --- a/palettes/atmospheric/sunriseGold/package.json +++ b/palettes/atmospheric/sunriseGold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sunrise-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sunrise gold palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/sunriseGold/src/index.lazy.ts b/palettes/atmospheric/sunriseGold/src/index.lazy.ts index aba68683998..b16bbd21d9e 100644 --- a/palettes/atmospheric/sunriseGold/src/index.lazy.ts +++ b/palettes/atmospheric/sunriseGold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "sunrise-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSunriseGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/sunriseGold/src/index.ts b/palettes/atmospheric/sunriseGold/src/index.ts index 09443369268..d23100b8bf9 100644 --- a/palettes/atmospheric/sunriseGold/src/index.ts +++ b/palettes/atmospheric/sunriseGold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "sunrise-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSunriseGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/sunsetBinary/CHANGELOG.md b/palettes/atmospheric/sunsetBinary/CHANGELOG.md index f9614c4dd43..70c960b243e 100644 --- a/palettes/atmospheric/sunsetBinary/CHANGELOG.md +++ b/palettes/atmospheric/sunsetBinary/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-sunset-binary diff --git a/palettes/atmospheric/sunsetBinary/README.md b/palettes/atmospheric/sunsetBinary/README.md index a9863152310..26cb214eb48 100644 --- a/palettes/atmospheric/sunsetBinary/README.md +++ b/palettes/atmospheric/sunsetBinary/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/sunsetBinary/package.dist.json b/palettes/atmospheric/sunsetBinary/package.dist.json index ea6d2ef9dae..42886439ddd 100644 --- a/palettes/atmospheric/sunsetBinary/package.dist.json +++ b/palettes/atmospheric/sunsetBinary/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sunset-binary", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sunset binary palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/sunsetBinary/package.json b/palettes/atmospheric/sunsetBinary/package.json index 30f71acef90..f4875efd5b7 100644 --- a/palettes/atmospheric/sunsetBinary/package.json +++ b/palettes/atmospheric/sunsetBinary/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sunset-binary", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sunset binary palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/sunsetBinary/src/index.lazy.ts b/palettes/atmospheric/sunsetBinary/src/index.lazy.ts index 0a251ca8d4f..eb4c1b82c81 100644 --- a/palettes/atmospheric/sunsetBinary/src/index.lazy.ts +++ b/palettes/atmospheric/sunsetBinary/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "sunset-binary"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSunsetBinaryPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/sunsetBinary/src/index.ts b/palettes/atmospheric/sunsetBinary/src/index.ts index a432835a449..7976bd25a7d 100644 --- a/palettes/atmospheric/sunsetBinary/src/index.ts +++ b/palettes/atmospheric/sunsetBinary/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "sunset-binary"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSunsetBinaryPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/thermalMap/CHANGELOG.md b/palettes/atmospheric/thermalMap/CHANGELOG.md index 26be4f4519d..4e44c860b1e 100644 --- a/palettes/atmospheric/thermalMap/CHANGELOG.md +++ b/palettes/atmospheric/thermalMap/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-thermal-map diff --git a/palettes/atmospheric/thermalMap/README.md b/palettes/atmospheric/thermalMap/README.md index 2c45805cadc..9f81a4c99af 100644 --- a/palettes/atmospheric/thermalMap/README.md +++ b/palettes/atmospheric/thermalMap/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/thermalMap/package.dist.json b/palettes/atmospheric/thermalMap/package.dist.json index 7f27ff39764..bb0f4ba59a4 100644 --- a/palettes/atmospheric/thermalMap/package.dist.json +++ b/palettes/atmospheric/thermalMap/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-thermal-map", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles thermal map - cold to hot palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/thermalMap/package.json b/palettes/atmospheric/thermalMap/package.json index 3416fbbc9c4..e5f4cdb33b2 100644 --- a/palettes/atmospheric/thermalMap/package.json +++ b/palettes/atmospheric/thermalMap/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-thermal-map", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles thermal map - cold to hot palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/thermalMap/src/index.lazy.ts b/palettes/atmospheric/thermalMap/src/index.lazy.ts index 55108c63136..d966fd6753a 100644 --- a/palettes/atmospheric/thermalMap/src/index.lazy.ts +++ b/palettes/atmospheric/thermalMap/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "thermal-map"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadThermalMapPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/thermalMap/src/index.ts b/palettes/atmospheric/thermalMap/src/index.ts index 5a3acf82ff4..e54530343e1 100644 --- a/palettes/atmospheric/thermalMap/src/index.ts +++ b/palettes/atmospheric/thermalMap/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "thermal-map"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadThermalMapPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/atmospheric/thunderstorm/CHANGELOG.md b/palettes/atmospheric/thunderstorm/CHANGELOG.md index a5af26d1596..58c38a72b3e 100644 --- a/palettes/atmospheric/thunderstorm/CHANGELOG.md +++ b/palettes/atmospheric/thunderstorm/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-thunderstorm diff --git a/palettes/atmospheric/thunderstorm/README.md b/palettes/atmospheric/thunderstorm/README.md index 85df6c159f9..415681d1148 100644 --- a/palettes/atmospheric/thunderstorm/README.md +++ b/palettes/atmospheric/thunderstorm/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/atmospheric/thunderstorm/package.dist.json b/palettes/atmospheric/thunderstorm/package.dist.json index f08d95fd6d4..24ad951cd3f 100644 --- a/palettes/atmospheric/thunderstorm/package.dist.json +++ b/palettes/atmospheric/thunderstorm/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-thunderstorm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles thunderstorm palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/atmospheric/thunderstorm/package.json b/palettes/atmospheric/thunderstorm/package.json index ce3ae606e15..b2f8528313e 100644 --- a/palettes/atmospheric/thunderstorm/package.json +++ b/palettes/atmospheric/thunderstorm/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-thunderstorm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles thunderstorm palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/atmospheric/thunderstorm/src/index.lazy.ts b/palettes/atmospheric/thunderstorm/src/index.lazy.ts index bb3dee835df..9b96901d668 100644 --- a/palettes/atmospheric/thunderstorm/src/index.lazy.ts +++ b/palettes/atmospheric/thunderstorm/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "thunderstorm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadThunderstormPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/atmospheric/thunderstorm/src/index.ts b/palettes/atmospheric/thunderstorm/src/index.ts index 920a14540ca..3b9aba55816 100644 --- a/palettes/atmospheric/thunderstorm/src/index.ts +++ b/palettes/atmospheric/thunderstorm/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "thunderstorm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadThunderstormPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/default/CHANGELOG.md b/palettes/confetti/default/CHANGELOG.md index e7ef36351d3..b62c7cac3a3 100644 --- a/palettes/confetti/default/CHANGELOG.md +++ b/palettes/confetti/default/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti diff --git a/palettes/confetti/default/README.md b/palettes/confetti/default/README.md index 9e65f52602d..28e235eb8cd 100644 --- a/palettes/confetti/default/README.md +++ b/palettes/confetti/default/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/default/package.dist.json b/palettes/confetti/default/package.dist.json index 958665143d2..0ab4a3a5b8c 100644 --- a/palettes/confetti/default/package.dist.json +++ b/palettes/confetti/default/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/default/package.json b/palettes/confetti/default/package.json index 47ed663d572..7897535894f 100644 --- a/palettes/confetti/default/package.json +++ b/palettes/confetti/default/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/default/src/index.lazy.ts b/palettes/confetti/default/src/index.lazy.ts index f4af8124654..d8f9154e6b1 100644 --- a/palettes/confetti/default/src/index.lazy.ts +++ b/palettes/confetti/default/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/default/src/index.ts b/palettes/confetti/default/src/index.ts index 095ca7f43aa..75de1ba36c0 100644 --- a/palettes/confetti/default/src/index.ts +++ b/palettes/confetti/default/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/gold/CHANGELOG.md b/palettes/confetti/gold/CHANGELOG.md index 6cb9490b6da..e513c463e79 100644 --- a/palettes/confetti/gold/CHANGELOG.md +++ b/palettes/confetti/gold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-gold diff --git a/palettes/confetti/gold/README.md b/palettes/confetti/gold/README.md index 6f8efb9d13c..c44ea2454d8 100644 --- a/palettes/confetti/gold/README.md +++ b/palettes/confetti/gold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/gold/package.dist.json b/palettes/confetti/gold/package.dist.json index 7dc359dece8..10a7d3ebb92 100644 --- a/palettes/confetti/gold/package.dist.json +++ b/palettes/confetti/gold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti gold palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/gold/package.json b/palettes/confetti/gold/package.json index 280bc8ef296..8eebf9470c3 100644 --- a/palettes/confetti/gold/package.json +++ b/palettes/confetti/gold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti gold palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/gold/src/index.lazy.ts b/palettes/confetti/gold/src/index.lazy.ts index 58545e741de..33dc3d5956e 100644 --- a/palettes/confetti/gold/src/index.lazy.ts +++ b/palettes/confetti/gold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/gold/src/index.ts b/palettes/confetti/gold/src/index.ts index ed600c179f3..3701008281e 100644 --- a/palettes/confetti/gold/src/index.ts +++ b/palettes/confetti/gold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/monochromeBlue/CHANGELOG.md b/palettes/confetti/monochromeBlue/CHANGELOG.md index dffbfb1f4a7..c074cb45683 100644 --- a/palettes/confetti/monochromeBlue/CHANGELOG.md +++ b/palettes/confetti/monochromeBlue/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-monochrome-blue diff --git a/palettes/confetti/monochromeBlue/README.md b/palettes/confetti/monochromeBlue/README.md index eac90062db6..7132b0917cf 100644 --- a/palettes/confetti/monochromeBlue/README.md +++ b/palettes/confetti/monochromeBlue/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/monochromeBlue/package.dist.json b/palettes/confetti/monochromeBlue/package.dist.json index ea9e0a5e151..22008021a27 100644 --- a/palettes/confetti/monochromeBlue/package.dist.json +++ b/palettes/confetti/monochromeBlue/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome blue palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/monochromeBlue/package.json b/palettes/confetti/monochromeBlue/package.json index 9765302f901..158bde0cc73 100644 --- a/palettes/confetti/monochromeBlue/package.json +++ b/palettes/confetti/monochromeBlue/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome blue palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/monochromeBlue/src/index.lazy.ts b/palettes/confetti/monochromeBlue/src/index.lazy.ts index 3c3d701218e..9717dd8ac78 100644 --- a/palettes/confetti/monochromeBlue/src/index.lazy.ts +++ b/palettes/confetti/monochromeBlue/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "monochrome-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeBluePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/monochromeBlue/src/index.ts b/palettes/confetti/monochromeBlue/src/index.ts index 716b60cdde4..4db5d776739 100644 --- a/palettes/confetti/monochromeBlue/src/index.ts +++ b/palettes/confetti/monochromeBlue/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-monochrome-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromeBluePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/monochromeGreen/CHANGELOG.md b/palettes/confetti/monochromeGreen/CHANGELOG.md index b6b652fc278..153e8f02e92 100644 --- a/palettes/confetti/monochromeGreen/CHANGELOG.md +++ b/palettes/confetti/monochromeGreen/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-monochrome-green diff --git a/palettes/confetti/monochromeGreen/README.md b/palettes/confetti/monochromeGreen/README.md index 58b040d9c9b..bec84435b85 100644 --- a/palettes/confetti/monochromeGreen/README.md +++ b/palettes/confetti/monochromeGreen/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/monochromeGreen/package.dist.json b/palettes/confetti/monochromeGreen/package.dist.json index 443a7ee8d7a..602a8a606dd 100644 --- a/palettes/confetti/monochromeGreen/package.dist.json +++ b/palettes/confetti/monochromeGreen/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome green palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/monochromeGreen/package.json b/palettes/confetti/monochromeGreen/package.json index c455ffbab4e..6a4654389a1 100644 --- a/palettes/confetti/monochromeGreen/package.json +++ b/palettes/confetti/monochromeGreen/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome green palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/monochromeGreen/src/index.lazy.ts b/palettes/confetti/monochromeGreen/src/index.lazy.ts index a4068179c04..97ef6d70ed5 100644 --- a/palettes/confetti/monochromeGreen/src/index.lazy.ts +++ b/palettes/confetti/monochromeGreen/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "monochrome-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/monochromeGreen/src/index.ts b/palettes/confetti/monochromeGreen/src/index.ts index 5e13c45f074..1d6d7843ed6 100644 --- a/palettes/confetti/monochromeGreen/src/index.ts +++ b/palettes/confetti/monochromeGreen/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-monochrome-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromeGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/monochromePink/CHANGELOG.md b/palettes/confetti/monochromePink/CHANGELOG.md index 44c9e3f63b1..d4d30489127 100644 --- a/palettes/confetti/monochromePink/CHANGELOG.md +++ b/palettes/confetti/monochromePink/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-monochrome-pink diff --git a/palettes/confetti/monochromePink/README.md b/palettes/confetti/monochromePink/README.md index ebae95b7a3a..636c160efaa 100644 --- a/palettes/confetti/monochromePink/README.md +++ b/palettes/confetti/monochromePink/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/monochromePink/package.dist.json b/palettes/confetti/monochromePink/package.dist.json index 99af49c1cbe..ee0743133d0 100644 --- a/palettes/confetti/monochromePink/package.dist.json +++ b/palettes/confetti/monochromePink/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-pink", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome pink palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/monochromePink/package.json b/palettes/confetti/monochromePink/package.json index 8d1cd5581ad..f1f791b2218 100644 --- a/palettes/confetti/monochromePink/package.json +++ b/palettes/confetti/monochromePink/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-pink", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome pink palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/monochromePink/src/index.lazy.ts b/palettes/confetti/monochromePink/src/index.lazy.ts index 67238cb259c..8bbc3db3bc0 100644 --- a/palettes/confetti/monochromePink/src/index.lazy.ts +++ b/palettes/confetti/monochromePink/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "monochrome-pink"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromePinkPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/monochromePink/src/index.ts b/palettes/confetti/monochromePink/src/index.ts index 8a6650abcb8..f68bf7584a2 100644 --- a/palettes/confetti/monochromePink/src/index.ts +++ b/palettes/confetti/monochromePink/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-monochrome-pink"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromePinkPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/monochromePurple/CHANGELOG.md b/palettes/confetti/monochromePurple/CHANGELOG.md index 2af42fb3e0f..bc31b0e4d1d 100644 --- a/palettes/confetti/monochromePurple/CHANGELOG.md +++ b/palettes/confetti/monochromePurple/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-monochrome-purple diff --git a/palettes/confetti/monochromePurple/README.md b/palettes/confetti/monochromePurple/README.md index 3eb6357f04f..cbc799652a6 100644 --- a/palettes/confetti/monochromePurple/README.md +++ b/palettes/confetti/monochromePurple/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/monochromePurple/package.dist.json b/palettes/confetti/monochromePurple/package.dist.json index 88fbb70525c..2fa5cea01d8 100644 --- a/palettes/confetti/monochromePurple/package.dist.json +++ b/palettes/confetti/monochromePurple/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome purple palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/monochromePurple/package.json b/palettes/confetti/monochromePurple/package.json index 0e1c56cdbc3..2f0e0176016 100644 --- a/palettes/confetti/monochromePurple/package.json +++ b/palettes/confetti/monochromePurple/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome purple palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/monochromePurple/src/index.lazy.ts b/palettes/confetti/monochromePurple/src/index.lazy.ts index c9e364b74e2..07b4b2ab921 100644 --- a/palettes/confetti/monochromePurple/src/index.lazy.ts +++ b/palettes/confetti/monochromePurple/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-monochrome-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromePurplePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/monochromePurple/src/index.ts b/palettes/confetti/monochromePurple/src/index.ts index 7ff0072d420..e8b2c5014a8 100644 --- a/palettes/confetti/monochromePurple/src/index.ts +++ b/palettes/confetti/monochromePurple/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-monochrome-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromePurplePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/monochromeRed/CHANGELOG.md b/palettes/confetti/monochromeRed/CHANGELOG.md index f66aacbcc98..d378477c9ee 100644 --- a/palettes/confetti/monochromeRed/CHANGELOG.md +++ b/palettes/confetti/monochromeRed/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-monochrome-red diff --git a/palettes/confetti/monochromeRed/README.md b/palettes/confetti/monochromeRed/README.md index f2c4048b34c..10bf889459e 100644 --- a/palettes/confetti/monochromeRed/README.md +++ b/palettes/confetti/monochromeRed/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/monochromeRed/package.dist.json b/palettes/confetti/monochromeRed/package.dist.json index 3eb50b028ae..e1bcd79fdf6 100644 --- a/palettes/confetti/monochromeRed/package.dist.json +++ b/palettes/confetti/monochromeRed/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome red palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/monochromeRed/package.json b/palettes/confetti/monochromeRed/package.json index f15e0037b84..b2006a0ce19 100644 --- a/palettes/confetti/monochromeRed/package.json +++ b/palettes/confetti/monochromeRed/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-monochrome-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti monochrome red palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/monochromeRed/src/index.lazy.ts b/palettes/confetti/monochromeRed/src/index.lazy.ts index 142c3febcf2..605994f8346 100644 --- a/palettes/confetti/monochromeRed/src/index.lazy.ts +++ b/palettes/confetti/monochromeRed/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-monochrome-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromeRedPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/monochromeRed/src/index.ts b/palettes/confetti/monochromeRed/src/index.ts index 71338a4dd4e..16868ae7efd 100644 --- a/palettes/confetti/monochromeRed/src/index.ts +++ b/palettes/confetti/monochromeRed/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-monochrome-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiMonochromeRedPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/neon/CHANGELOG.md b/palettes/confetti/neon/CHANGELOG.md index 1d67e174711..bec367dd879 100644 --- a/palettes/confetti/neon/CHANGELOG.md +++ b/palettes/confetti/neon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-neon diff --git a/palettes/confetti/neon/README.md b/palettes/confetti/neon/README.md index 4b078804ead..31a3ebb0975 100644 --- a/palettes/confetti/neon/README.md +++ b/palettes/confetti/neon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/neon/package.dist.json b/palettes/confetti/neon/package.dist.json index 99c84335309..19d7a891782 100644 --- a/palettes/confetti/neon/package.dist.json +++ b/palettes/confetti/neon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti neon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/neon/package.json b/palettes/confetti/neon/package.json index 4a0bc357b2b..aa2e7232a1f 100644 --- a/palettes/confetti/neon/package.json +++ b/palettes/confetti/neon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti neon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/neon/src/index.lazy.ts b/palettes/confetti/neon/src/index.lazy.ts index 11429e34e2c..2f2274fb9f7 100644 --- a/palettes/confetti/neon/src/index.lazy.ts +++ b/palettes/confetti/neon/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/neon/src/index.ts b/palettes/confetti/neon/src/index.ts index f1d80255137..57dc028b563 100644 --- a/palettes/confetti/neon/src/index.ts +++ b/palettes/confetti/neon/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/pastel/CHANGELOG.md b/palettes/confetti/pastel/CHANGELOG.md index 94cc28db9cf..19dd7441e0e 100644 --- a/palettes/confetti/pastel/CHANGELOG.md +++ b/palettes/confetti/pastel/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-pastel diff --git a/palettes/confetti/pastel/README.md b/palettes/confetti/pastel/README.md index 3272b96a9ab..55f10a075bf 100644 --- a/palettes/confetti/pastel/README.md +++ b/palettes/confetti/pastel/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/pastel/package.dist.json b/palettes/confetti/pastel/package.dist.json index 45e008e9300..9f3df4b1f66 100644 --- a/palettes/confetti/pastel/package.dist.json +++ b/palettes/confetti/pastel/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti pastel palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/pastel/package.json b/palettes/confetti/pastel/package.json index 461a53a9c3b..7d2ca15072d 100644 --- a/palettes/confetti/pastel/package.json +++ b/palettes/confetti/pastel/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti pastel palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/pastel/src/index.lazy.ts b/palettes/confetti/pastel/src/index.lazy.ts index 196c44db8ac..d9ee4120e9e 100644 --- a/palettes/confetti/pastel/src/index.lazy.ts +++ b/palettes/confetti/pastel/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/pastel/src/index.ts b/palettes/confetti/pastel/src/index.ts index d4078e9eea7..ddaf3240264 100644 --- a/palettes/confetti/pastel/src/index.ts +++ b/palettes/confetti/pastel/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/patriotic/CHANGELOG.md b/palettes/confetti/patriotic/CHANGELOG.md index bbc4028f67f..3be884c9947 100644 --- a/palettes/confetti/patriotic/CHANGELOG.md +++ b/palettes/confetti/patriotic/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-patriotic diff --git a/palettes/confetti/patriotic/README.md b/palettes/confetti/patriotic/README.md index 26e83b8b675..86e7ad38df8 100644 --- a/palettes/confetti/patriotic/README.md +++ b/palettes/confetti/patriotic/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/patriotic/package.dist.json b/palettes/confetti/patriotic/package.dist.json index bcdb2c74509..25a0adc94eb 100644 --- a/palettes/confetti/patriotic/package.dist.json +++ b/palettes/confetti/patriotic/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-patriotic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti patriotic palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/patriotic/package.json b/palettes/confetti/patriotic/package.json index 20bbb1669c6..4810ffcde3d 100644 --- a/palettes/confetti/patriotic/package.json +++ b/palettes/confetti/patriotic/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-patriotic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti patriotic palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/patriotic/src/index.lazy.ts b/palettes/confetti/patriotic/src/index.lazy.ts index cd1f3841062..f504da4e972 100644 --- a/palettes/confetti/patriotic/src/index.lazy.ts +++ b/palettes/confetti/patriotic/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-patriotic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPatrioticPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/patriotic/src/index.ts b/palettes/confetti/patriotic/src/index.ts index 2b2673e7e50..4c23908f94c 100644 --- a/palettes/confetti/patriotic/src/index.ts +++ b/palettes/confetti/patriotic/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-patriotic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPatrioticPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/rainbow/CHANGELOG.md b/palettes/confetti/rainbow/CHANGELOG.md index f27f7815470..db810658ae0 100644 --- a/palettes/confetti/rainbow/CHANGELOG.md +++ b/palettes/confetti/rainbow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-rainbow diff --git a/palettes/confetti/rainbow/README.md b/palettes/confetti/rainbow/README.md index 1e8da64f5c9..3cdea8f77c8 100644 --- a/palettes/confetti/rainbow/README.md +++ b/palettes/confetti/rainbow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/rainbow/package.dist.json b/palettes/confetti/rainbow/package.dist.json index 7a7394c628c..998b04c8e23 100644 --- a/palettes/confetti/rainbow/package.dist.json +++ b/palettes/confetti/rainbow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti rainbow palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/rainbow/package.json b/palettes/confetti/rainbow/package.json index 2f3634d1b77..f76b0739493 100644 --- a/palettes/confetti/rainbow/package.json +++ b/palettes/confetti/rainbow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti rainbow palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/rainbow/src/index.lazy.ts b/palettes/confetti/rainbow/src/index.lazy.ts index 8febb6d3f27..87da3a4bcea 100644 --- a/palettes/confetti/rainbow/src/index.lazy.ts +++ b/palettes/confetti/rainbow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/rainbow/src/index.ts b/palettes/confetti/rainbow/src/index.ts index f012a7cc490..6abb35f2bea 100644 --- a/palettes/confetti/rainbow/src/index.ts +++ b/palettes/confetti/rainbow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/confetti/winter/CHANGELOG.md b/palettes/confetti/winter/CHANGELOG.md index b184c285d5b..e351000da93 100644 --- a/palettes/confetti/winter/CHANGELOG.md +++ b/palettes/confetti/winter/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-confetti-winter diff --git a/palettes/confetti/winter/README.md b/palettes/confetti/winter/README.md index f2b47ba6d18..53cf1be1665 100644 --- a/palettes/confetti/winter/README.md +++ b/palettes/confetti/winter/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/confetti/winter/package.dist.json b/palettes/confetti/winter/package.dist.json index c90ecb611b1..a55aa88c1a8 100644 --- a/palettes/confetti/winter/package.dist.json +++ b/palettes/confetti/winter/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-winter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti winter palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/confetti/winter/package.json b/palettes/confetti/winter/package.json index 8a72f513998..c6117d21b63 100644 --- a/palettes/confetti/winter/package.json +++ b/palettes/confetti/winter/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-confetti-winter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti winter palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/confetti/winter/src/index.lazy.ts b/palettes/confetti/winter/src/index.lazy.ts index a14690880ad..024415fe8c3 100644 --- a/palettes/confetti/winter/src/index.lazy.ts +++ b/palettes/confetti/winter/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "confetti-winter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiWinterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/confetti/winter/src/index.ts b/palettes/confetti/winter/src/index.ts index 4044f01e7f8..6c09774ac65 100644 --- a/palettes/confetti/winter/src/index.ts +++ b/palettes/confetti/winter/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "confetti-winter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiWinterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/caustics/CHANGELOG.md b/palettes/earth/caustics/CHANGELOG.md index f636fb5b307..34a19702a70 100644 --- a/palettes/earth/caustics/CHANGELOG.md +++ b/palettes/earth/caustics/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-caustics diff --git a/palettes/earth/caustics/README.md b/palettes/earth/caustics/README.md index 96af227c36c..7494e5aba8b 100644 --- a/palettes/earth/caustics/README.md +++ b/palettes/earth/caustics/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/caustics/package.dist.json b/palettes/earth/caustics/package.dist.json index aecfeac04f7..17eda525221 100644 --- a/palettes/earth/caustics/package.dist.json +++ b/palettes/earth/caustics/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-caustics", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles caustics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/caustics/package.json b/palettes/earth/caustics/package.json index f1b79ed0a16..efa8c6c0b22 100644 --- a/palettes/earth/caustics/package.json +++ b/palettes/earth/caustics/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-caustics", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles caustics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/caustics/src/index.lazy.ts b/palettes/earth/caustics/src/index.lazy.ts index 873ba284c8b..4dca61c18b3 100644 --- a/palettes/earth/caustics/src/index.lazy.ts +++ b/palettes/earth/caustics/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "caustics"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCausticsPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/caustics/src/index.ts b/palettes/earth/caustics/src/index.ts index d71ee24a6f6..6a81abcbae9 100644 --- a/palettes/earth/caustics/src/index.ts +++ b/palettes/earth/caustics/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "caustics"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCausticsPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/desertSand/CHANGELOG.md b/palettes/earth/desertSand/CHANGELOG.md index bccd4ff1f89..7a755da897d 100644 --- a/palettes/earth/desertSand/CHANGELOG.md +++ b/palettes/earth/desertSand/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-desert-sand diff --git a/palettes/earth/desertSand/README.md b/palettes/earth/desertSand/README.md index a01456525a0..9dbe187a767 100644 --- a/palettes/earth/desertSand/README.md +++ b/palettes/earth/desertSand/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/desertSand/package.dist.json b/palettes/earth/desertSand/package.dist.json index 92117c085bc..b3507ad4cdc 100644 --- a/palettes/earth/desertSand/package.dist.json +++ b/palettes/earth/desertSand/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-desert-sand", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles desert sand palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/desertSand/package.json b/palettes/earth/desertSand/package.json index c3c083bc30f..4e6098eb351 100644 --- a/palettes/earth/desertSand/package.json +++ b/palettes/earth/desertSand/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-desert-sand", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles desert sand palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/desertSand/src/index.lazy.ts b/palettes/earth/desertSand/src/index.lazy.ts index 36adf2165df..0980917dc9f 100644 --- a/palettes/earth/desertSand/src/index.lazy.ts +++ b/palettes/earth/desertSand/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "desert-sand"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDesertSandPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/desertSand/src/index.ts b/palettes/earth/desertSand/src/index.ts index d0b80990b8f..24d56f72989 100644 --- a/palettes/earth/desertSand/src/index.ts +++ b/palettes/earth/desertSand/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "desert-sand"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDesertSandPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/mudAndDirt/CHANGELOG.md b/palettes/earth/mudAndDirt/CHANGELOG.md index bb5af6e7eaf..b1ee7f4015f 100644 --- a/palettes/earth/mudAndDirt/CHANGELOG.md +++ b/palettes/earth/mudAndDirt/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-mud-and-dirt diff --git a/palettes/earth/mudAndDirt/README.md b/palettes/earth/mudAndDirt/README.md index c176e2f02a1..819843d2a6b 100644 --- a/palettes/earth/mudAndDirt/README.md +++ b/palettes/earth/mudAndDirt/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/mudAndDirt/package.dist.json b/palettes/earth/mudAndDirt/package.dist.json index 0521c2d9b8e..04a8d61b307 100644 --- a/palettes/earth/mudAndDirt/package.dist.json +++ b/palettes/earth/mudAndDirt/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-mud-and-dirt", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles mud & dirt palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/mudAndDirt/package.json b/palettes/earth/mudAndDirt/package.json index 797945751ef..4b033a1476c 100644 --- a/palettes/earth/mudAndDirt/package.json +++ b/palettes/earth/mudAndDirt/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-mud-and-dirt", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles mud & dirt palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/mudAndDirt/src/index.lazy.ts b/palettes/earth/mudAndDirt/src/index.lazy.ts index c194395a5fb..464a51af6d8 100644 --- a/palettes/earth/mudAndDirt/src/index.lazy.ts +++ b/palettes/earth/mudAndDirt/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "mud-and-dirt"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMudAndDirtPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/mudAndDirt/src/index.ts b/palettes/earth/mudAndDirt/src/index.ts index 9c27829b861..12b245be985 100644 --- a/palettes/earth/mudAndDirt/src/index.ts +++ b/palettes/earth/mudAndDirt/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "mud-and-dirt"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMudAndDirtPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/oilSlick/CHANGELOG.md b/palettes/earth/oilSlick/CHANGELOG.md index eeb63c19673..a9cf558b828 100644 --- a/palettes/earth/oilSlick/CHANGELOG.md +++ b/palettes/earth/oilSlick/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-oil-slick diff --git a/palettes/earth/oilSlick/README.md b/palettes/earth/oilSlick/README.md index 47af5d5f34b..d2cc985557e 100644 --- a/palettes/earth/oilSlick/README.md +++ b/palettes/earth/oilSlick/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/oilSlick/package.dist.json b/palettes/earth/oilSlick/package.dist.json index 991e2eec27a..5342d6304b8 100644 --- a/palettes/earth/oilSlick/package.dist.json +++ b/palettes/earth/oilSlick/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-oil-slick", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles oil slick palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/oilSlick/package.json b/palettes/earth/oilSlick/package.json index e51c286098f..e52751d5f6a 100644 --- a/palettes/earth/oilSlick/package.json +++ b/palettes/earth/oilSlick/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-oil-slick", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles oil slick palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/oilSlick/src/index.lazy.ts b/palettes/earth/oilSlick/src/index.lazy.ts index 62ddd084719..dc4efa67677 100644 --- a/palettes/earth/oilSlick/src/index.lazy.ts +++ b/palettes/earth/oilSlick/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "oil-slick"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOilSlickPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/oilSlick/src/index.ts b/palettes/earth/oilSlick/src/index.ts index 23b42beccdd..e58d35849b4 100644 --- a/palettes/earth/oilSlick/src/index.ts +++ b/palettes/earth/oilSlick/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "oil-slick"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOilSlickPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/rockAndGravel/CHANGELOG.md b/palettes/earth/rockAndGravel/CHANGELOG.md index e12703ee4e8..52fa0b4f378 100644 --- a/palettes/earth/rockAndGravel/CHANGELOG.md +++ b/palettes/earth/rockAndGravel/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rock-and-gravel diff --git a/palettes/earth/rockAndGravel/README.md b/palettes/earth/rockAndGravel/README.md index db3d3bed998..a1359a2d418 100644 --- a/palettes/earth/rockAndGravel/README.md +++ b/palettes/earth/rockAndGravel/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/rockAndGravel/package.dist.json b/palettes/earth/rockAndGravel/package.dist.json index 30bdc97337e..63455ab7c0a 100644 --- a/palettes/earth/rockAndGravel/package.dist.json +++ b/palettes/earth/rockAndGravel/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rock-and-gravel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rock & gravel palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/rockAndGravel/package.json b/palettes/earth/rockAndGravel/package.json index 5805fd6022c..190a09c3907 100644 --- a/palettes/earth/rockAndGravel/package.json +++ b/palettes/earth/rockAndGravel/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rock-and-gravel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rock & gravel palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/rockAndGravel/src/index.lazy.ts b/palettes/earth/rockAndGravel/src/index.lazy.ts index 28872e8d27a..11121da90f5 100644 --- a/palettes/earth/rockAndGravel/src/index.lazy.ts +++ b/palettes/earth/rockAndGravel/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "rock-and-gravel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRockAndGravelPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/rockAndGravel/src/index.ts b/palettes/earth/rockAndGravel/src/index.ts index a76f32a1623..393ea0caa35 100644 --- a/palettes/earth/rockAndGravel/src/index.ts +++ b/palettes/earth/rockAndGravel/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rock-and-gravel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRockAndGravelPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/rustAndCorrosion/CHANGELOG.md b/palettes/earth/rustAndCorrosion/CHANGELOG.md index 7561da8b599..500a7de9c75 100644 --- a/palettes/earth/rustAndCorrosion/CHANGELOG.md +++ b/palettes/earth/rustAndCorrosion/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rust-and-corrosion diff --git a/palettes/earth/rustAndCorrosion/README.md b/palettes/earth/rustAndCorrosion/README.md index d38fa0b8521..ba1d5f38335 100644 --- a/palettes/earth/rustAndCorrosion/README.md +++ b/palettes/earth/rustAndCorrosion/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/rustAndCorrosion/package.dist.json b/palettes/earth/rustAndCorrosion/package.dist.json index ab86a5ffe07..fbd64fd05a9 100644 --- a/palettes/earth/rustAndCorrosion/package.dist.json +++ b/palettes/earth/rustAndCorrosion/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rust-and-corrosion", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rust & corrosion palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/rustAndCorrosion/package.json b/palettes/earth/rustAndCorrosion/package.json index dd4a0b5ae7e..48b3481f10d 100644 --- a/palettes/earth/rustAndCorrosion/package.json +++ b/palettes/earth/rustAndCorrosion/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rust-and-corrosion", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rust & corrosion palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/rustAndCorrosion/src/index.lazy.ts b/palettes/earth/rustAndCorrosion/src/index.lazy.ts index 0af69184d46..9ff4060540e 100644 --- a/palettes/earth/rustAndCorrosion/src/index.lazy.ts +++ b/palettes/earth/rustAndCorrosion/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "rust-and-corrosion"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRustAndCorrosionPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/rustAndCorrosion/src/index.ts b/palettes/earth/rustAndCorrosion/src/index.ts index 77cc57d64f9..134f1001e5a 100644 --- a/palettes/earth/rustAndCorrosion/src/index.ts +++ b/palettes/earth/rustAndCorrosion/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rust-and-corrosion"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRustAndCorrosionPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/earth/skinAndOrganic/CHANGELOG.md b/palettes/earth/skinAndOrganic/CHANGELOG.md index cac6de7d78b..0a5535e8251 100644 --- a/palettes/earth/skinAndOrganic/CHANGELOG.md +++ b/palettes/earth/skinAndOrganic/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-skin-and-organic diff --git a/palettes/earth/skinAndOrganic/README.md b/palettes/earth/skinAndOrganic/README.md index ba0aa3b39fd..e4a4a469902 100644 --- a/palettes/earth/skinAndOrganic/README.md +++ b/palettes/earth/skinAndOrganic/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/earth/skinAndOrganic/package.dist.json b/palettes/earth/skinAndOrganic/package.dist.json index 758bb5061b8..5e231bfe642 100644 --- a/palettes/earth/skinAndOrganic/package.dist.json +++ b/palettes/earth/skinAndOrganic/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-skin-and-organic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles skin & organic palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/earth/skinAndOrganic/package.json b/palettes/earth/skinAndOrganic/package.json index 95998f6ff91..c31e02a5a85 100644 --- a/palettes/earth/skinAndOrganic/package.json +++ b/palettes/earth/skinAndOrganic/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-skin-and-organic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles skin & organic palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/earth/skinAndOrganic/src/index.lazy.ts b/palettes/earth/skinAndOrganic/src/index.lazy.ts index d5d2746aa59..66bb7be7f65 100644 --- a/palettes/earth/skinAndOrganic/src/index.lazy.ts +++ b/palettes/earth/skinAndOrganic/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "skin-and-organic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSkinAndOrganicPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/earth/skinAndOrganic/src/index.ts b/palettes/earth/skinAndOrganic/src/index.ts index 9fdbd8fd2e6..e6fe4224bc4 100644 --- a/palettes/earth/skinAndOrganic/src/index.ts +++ b/palettes/earth/skinAndOrganic/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "skin-and-organic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSkinAndOrganicPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/bioluminescence/CHANGELOG.md b/palettes/fantasy/bioluminescence/CHANGELOG.md index 8c1a911775c..6d12984c3ca 100644 --- a/palettes/fantasy/bioluminescence/CHANGELOG.md +++ b/palettes/fantasy/bioluminescence/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bioluminescence diff --git a/palettes/fantasy/bioluminescence/README.md b/palettes/fantasy/bioluminescence/README.md index 6102abaceaf..377f2914080 100644 --- a/palettes/fantasy/bioluminescence/README.md +++ b/palettes/fantasy/bioluminescence/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/bioluminescence/package.dist.json b/palettes/fantasy/bioluminescence/package.dist.json index c693e302ccb..e16c9251af0 100644 --- a/palettes/fantasy/bioluminescence/package.dist.json +++ b/palettes/fantasy/bioluminescence/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bioluminescence", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bioluminescence palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/bioluminescence/package.json b/palettes/fantasy/bioluminescence/package.json index 4899fb5d869..50fc40b1b76 100644 --- a/palettes/fantasy/bioluminescence/package.json +++ b/palettes/fantasy/bioluminescence/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bioluminescence", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bioluminescence palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/bioluminescence/src/index.lazy.ts b/palettes/fantasy/bioluminescence/src/index.lazy.ts index 299b5637c4e..c68ac24a26d 100644 --- a/palettes/fantasy/bioluminescence/src/index.lazy.ts +++ b/palettes/fantasy/bioluminescence/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "bioluminescence"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBioluminescencePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/bioluminescence/src/index.ts b/palettes/fantasy/bioluminescence/src/index.ts index 1ce2ce81521..caca36445e8 100644 --- a/palettes/fantasy/bioluminescence/src/index.ts +++ b/palettes/fantasy/bioluminescence/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "bioluminescence"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBioluminescencePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/bloodAndGore/CHANGELOG.md b/palettes/fantasy/bloodAndGore/CHANGELOG.md index 68927e65d1f..dfa07f44646 100644 --- a/palettes/fantasy/bloodAndGore/CHANGELOG.md +++ b/palettes/fantasy/bloodAndGore/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-blood-and-gore diff --git a/palettes/fantasy/bloodAndGore/README.md b/palettes/fantasy/bloodAndGore/README.md index ca9c94a2136..3022a0c3177 100644 --- a/palettes/fantasy/bloodAndGore/README.md +++ b/palettes/fantasy/bloodAndGore/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/bloodAndGore/package.dist.json b/palettes/fantasy/bloodAndGore/package.dist.json index a5baeb2c9f8..fb29343ce57 100644 --- a/palettes/fantasy/bloodAndGore/package.dist.json +++ b/palettes/fantasy/bloodAndGore/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-blood-and-gore", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles blood & gore palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/bloodAndGore/package.json b/palettes/fantasy/bloodAndGore/package.json index f5e6367e565..83031ebf8e3 100644 --- a/palettes/fantasy/bloodAndGore/package.json +++ b/palettes/fantasy/bloodAndGore/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-blood-and-gore", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles blood & gore palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/bloodAndGore/src/index.lazy.ts b/palettes/fantasy/bloodAndGore/src/index.lazy.ts index 4e00d2cc820..88fffe8d4ca 100644 --- a/palettes/fantasy/bloodAndGore/src/index.lazy.ts +++ b/palettes/fantasy/bloodAndGore/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "blood-and-gore"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBloodAndGorePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/bloodAndGore/src/index.ts b/palettes/fantasy/bloodAndGore/src/index.ts index c8823e7d6d5..bafd9153461 100644 --- a/palettes/fantasy/bloodAndGore/src/index.ts +++ b/palettes/fantasy/bloodAndGore/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "blood-and-gore"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBloodAndGorePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/fairyDust/CHANGELOG.md b/palettes/fantasy/fairyDust/CHANGELOG.md index 5f68a9f6e54..bbbbb732a81 100644 --- a/palettes/fantasy/fairyDust/CHANGELOG.md +++ b/palettes/fantasy/fairyDust/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fairy-dust diff --git a/palettes/fantasy/fairyDust/README.md b/palettes/fantasy/fairyDust/README.md index d3e89deb9e0..e4cc713f9a8 100644 --- a/palettes/fantasy/fairyDust/README.md +++ b/palettes/fantasy/fairyDust/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/fairyDust/package.dist.json b/palettes/fantasy/fairyDust/package.dist.json index fe78fa7ffcb..fd2a94b1e37 100644 --- a/palettes/fantasy/fairyDust/package.dist.json +++ b/palettes/fantasy/fairyDust/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fairy-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fairy dust palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/fairyDust/package.json b/palettes/fantasy/fairyDust/package.json index e77b7141ebd..d1fd78065ae 100644 --- a/palettes/fantasy/fairyDust/package.json +++ b/palettes/fantasy/fairyDust/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fairy-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fairy dust palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/fairyDust/src/index.lazy.ts b/palettes/fantasy/fairyDust/src/index.lazy.ts index 405bd5d1822..097cefdfa98 100644 --- a/palettes/fantasy/fairyDust/src/index.lazy.ts +++ b/palettes/fantasy/fairyDust/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fairy-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFairyDustPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/fairyDust/src/index.ts b/palettes/fantasy/fairyDust/src/index.ts index 9b332808c62..cc5c44485fa 100644 --- a/palettes/fantasy/fairyDust/src/index.ts +++ b/palettes/fantasy/fairyDust/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fairy-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFairyDustPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/holyLight/CHANGELOG.md b/palettes/fantasy/holyLight/CHANGELOG.md index a6683204e61..df609eabd0f 100644 --- a/palettes/fantasy/holyLight/CHANGELOG.md +++ b/palettes/fantasy/holyLight/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-holy-light diff --git a/palettes/fantasy/holyLight/README.md b/palettes/fantasy/holyLight/README.md index 250fdd5c89b..9a077e22885 100644 --- a/palettes/fantasy/holyLight/README.md +++ b/palettes/fantasy/holyLight/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/holyLight/package.dist.json b/palettes/fantasy/holyLight/package.dist.json index d77bc9fbf8a..b75ecbc2047 100644 --- a/palettes/fantasy/holyLight/package.dist.json +++ b/palettes/fantasy/holyLight/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-holy-light", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles holy light palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/holyLight/package.json b/palettes/fantasy/holyLight/package.json index df6f51e5697..4ae7fa6377d 100644 --- a/palettes/fantasy/holyLight/package.json +++ b/palettes/fantasy/holyLight/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-holy-light", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles holy light palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/holyLight/src/index.lazy.ts b/palettes/fantasy/holyLight/src/index.lazy.ts index 1047f065f1d..771acb4c968 100644 --- a/palettes/fantasy/holyLight/src/index.lazy.ts +++ b/palettes/fantasy/holyLight/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "holy-light"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHolyLightPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/holyLight/src/index.ts b/palettes/fantasy/holyLight/src/index.ts index 9242c4aca8f..56d00f5511c 100644 --- a/palettes/fantasy/holyLight/src/index.ts +++ b/palettes/fantasy/holyLight/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "holy-light"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHolyLightPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/iceMagic/CHANGELOG.md b/palettes/fantasy/iceMagic/CHANGELOG.md index 40db648349b..b554cb62a2c 100644 --- a/palettes/fantasy/iceMagic/CHANGELOG.md +++ b/palettes/fantasy/iceMagic/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-ice-magic diff --git a/palettes/fantasy/iceMagic/README.md b/palettes/fantasy/iceMagic/README.md index 1c5ae19db67..94e798664d2 100644 --- a/palettes/fantasy/iceMagic/README.md +++ b/palettes/fantasy/iceMagic/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/iceMagic/package.dist.json b/palettes/fantasy/iceMagic/package.dist.json index 9c433b70878..8f10ef71d85 100644 --- a/palettes/fantasy/iceMagic/package.dist.json +++ b/palettes/fantasy/iceMagic/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ice-magic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ice magic palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/iceMagic/package.json b/palettes/fantasy/iceMagic/package.json index d1a4b03a694..2698befc425 100644 --- a/palettes/fantasy/iceMagic/package.json +++ b/palettes/fantasy/iceMagic/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ice-magic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ice magic palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/iceMagic/src/index.lazy.ts b/palettes/fantasy/iceMagic/src/index.lazy.ts index cd22efa6159..eee2a4ab35b 100644 --- a/palettes/fantasy/iceMagic/src/index.lazy.ts +++ b/palettes/fantasy/iceMagic/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "ice-magic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadIceMagicPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/iceMagic/src/index.ts b/palettes/fantasy/iceMagic/src/index.ts index e0e8b5b1194..3cb2a515a4b 100644 --- a/palettes/fantasy/iceMagic/src/index.ts +++ b/palettes/fantasy/iceMagic/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "ice-magic"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadIceMagicPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/iceTriad/CHANGELOG.md b/palettes/fantasy/iceTriad/CHANGELOG.md index d1413d2d9e7..1e341002b41 100644 --- a/palettes/fantasy/iceTriad/CHANGELOG.md +++ b/palettes/fantasy/iceTriad/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-ice-triad diff --git a/palettes/fantasy/iceTriad/README.md b/palettes/fantasy/iceTriad/README.md index 6399d4db3ee..40ac40d6db0 100644 --- a/palettes/fantasy/iceTriad/README.md +++ b/palettes/fantasy/iceTriad/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/iceTriad/package.dist.json b/palettes/fantasy/iceTriad/package.dist.json index 1e945e91915..00def719819 100644 --- a/palettes/fantasy/iceTriad/package.dist.json +++ b/palettes/fantasy/iceTriad/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ice-triad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ice triad palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/iceTriad/package.json b/palettes/fantasy/iceTriad/package.json index 1c12b8d59dd..7ff7b71246d 100644 --- a/palettes/fantasy/iceTriad/package.json +++ b/palettes/fantasy/iceTriad/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ice-triad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ice triad palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/iceTriad/src/index.lazy.ts b/palettes/fantasy/iceTriad/src/index.lazy.ts index 53d43d6d1b5..2c84af47a1b 100644 --- a/palettes/fantasy/iceTriad/src/index.lazy.ts +++ b/palettes/fantasy/iceTriad/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "ice-triad"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadIceTriadPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/iceTriad/src/index.ts b/palettes/fantasy/iceTriad/src/index.ts index ba9c9ee8957..149444ce4a9 100644 --- a/palettes/fantasy/iceTriad/src/index.ts +++ b/palettes/fantasy/iceTriad/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "ice-triad"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadIceTriadPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/iris/CHANGELOG.md b/palettes/fantasy/iris/CHANGELOG.md index a8c019bfc6f..039e367c6f8 100644 --- a/palettes/fantasy/iris/CHANGELOG.md +++ b/palettes/fantasy/iris/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-iris diff --git a/palettes/fantasy/iris/README.md b/palettes/fantasy/iris/README.md index 1b38787c167..f51a13a6317 100644 --- a/palettes/fantasy/iris/README.md +++ b/palettes/fantasy/iris/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/iris/package.dist.json b/palettes/fantasy/iris/package.dist.json index c14e346f174..1eed3796746 100644 --- a/palettes/fantasy/iris/package.dist.json +++ b/palettes/fantasy/iris/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-iris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles iris palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/iris/package.json b/palettes/fantasy/iris/package.json index 193b90ad46d..45cb05d7099 100644 --- a/palettes/fantasy/iris/package.json +++ b/palettes/fantasy/iris/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-iris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles iris palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/iris/src/index.lazy.ts b/palettes/fantasy/iris/src/index.lazy.ts index 35773b1a5f9..39e058fe5cd 100644 --- a/palettes/fantasy/iris/src/index.lazy.ts +++ b/palettes/fantasy/iris/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "iris"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadIrisPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/iris/src/index.ts b/palettes/fantasy/iris/src/index.ts index ec46fe4937c..e668c5d6827 100644 --- a/palettes/fantasy/iris/src/index.ts +++ b/palettes/fantasy/iris/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "iris"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadIrisPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/jellyfishGlow/CHANGELOG.md b/palettes/fantasy/jellyfishGlow/CHANGELOG.md index 15705ce950f..30b78bbd0a8 100644 --- a/palettes/fantasy/jellyfishGlow/CHANGELOG.md +++ b/palettes/fantasy/jellyfishGlow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-jellyfish-glow diff --git a/palettes/fantasy/jellyfishGlow/README.md b/palettes/fantasy/jellyfishGlow/README.md index 99a29106775..78ad5171f70 100644 --- a/palettes/fantasy/jellyfishGlow/README.md +++ b/palettes/fantasy/jellyfishGlow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/jellyfishGlow/package.dist.json b/palettes/fantasy/jellyfishGlow/package.dist.json index a164dc2d813..958714201fc 100644 --- a/palettes/fantasy/jellyfishGlow/package.dist.json +++ b/palettes/fantasy/jellyfishGlow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-jellyfish-glow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles jellyfish glow palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/jellyfishGlow/package.json b/palettes/fantasy/jellyfishGlow/package.json index 5477204e4a9..bc4ee904e3b 100644 --- a/palettes/fantasy/jellyfishGlow/package.json +++ b/palettes/fantasy/jellyfishGlow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-jellyfish-glow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles jellyfish glow palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/jellyfishGlow/src/index.lazy.ts b/palettes/fantasy/jellyfishGlow/src/index.lazy.ts index 3506f35627e..56a6f27d5a5 100644 --- a/palettes/fantasy/jellyfishGlow/src/index.lazy.ts +++ b/palettes/fantasy/jellyfishGlow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "jellyfish-glow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadJellyfishGlowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/jellyfishGlow/src/index.ts b/palettes/fantasy/jellyfishGlow/src/index.ts index 06bcea7448a..24a33062b85 100644 --- a/palettes/fantasy/jellyfishGlow/src/index.ts +++ b/palettes/fantasy/jellyfishGlow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "jellyfish-glow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadJellyfishGlowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/mermaid/CHANGELOG.md b/palettes/fantasy/mermaid/CHANGELOG.md index 0ae3ac4243d..2d5ed00b5cd 100644 --- a/palettes/fantasy/mermaid/CHANGELOG.md +++ b/palettes/fantasy/mermaid/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-mermaid diff --git a/palettes/fantasy/mermaid/README.md b/palettes/fantasy/mermaid/README.md index d3e09cc079b..65db17c62d1 100644 --- a/palettes/fantasy/mermaid/README.md +++ b/palettes/fantasy/mermaid/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/mermaid/package.dist.json b/palettes/fantasy/mermaid/package.dist.json index 1296d9f899f..8da7912aefe 100644 --- a/palettes/fantasy/mermaid/package.dist.json +++ b/palettes/fantasy/mermaid/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-mermaid", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles mermaid palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/mermaid/package.json b/palettes/fantasy/mermaid/package.json index a79901a55c5..6901860dabb 100644 --- a/palettes/fantasy/mermaid/package.json +++ b/palettes/fantasy/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-mermaid", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles mermaid palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/mermaid/src/index.lazy.ts b/palettes/fantasy/mermaid/src/index.lazy.ts index cfc2ab3dcae..7fe11b2639d 100644 --- a/palettes/fantasy/mermaid/src/index.lazy.ts +++ b/palettes/fantasy/mermaid/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "mermaid"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMermaidPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/mermaid/src/index.ts b/palettes/fantasy/mermaid/src/index.ts index 43a38bfd184..d8acff7bc0d 100644 --- a/palettes/fantasy/mermaid/src/index.ts +++ b/palettes/fantasy/mermaid/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "mermaid"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMermaidPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/poisonAndVenom/CHANGELOG.md b/palettes/fantasy/poisonAndVenom/CHANGELOG.md index 8912c376f4d..841e992093b 100644 --- a/palettes/fantasy/poisonAndVenom/CHANGELOG.md +++ b/palettes/fantasy/poisonAndVenom/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-poison-and-venom diff --git a/palettes/fantasy/poisonAndVenom/README.md b/palettes/fantasy/poisonAndVenom/README.md index 15070b07777..2d76b337612 100644 --- a/palettes/fantasy/poisonAndVenom/README.md +++ b/palettes/fantasy/poisonAndVenom/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/poisonAndVenom/package.dist.json b/palettes/fantasy/poisonAndVenom/package.dist.json index 440b634a975..b76c9fb3ad5 100644 --- a/palettes/fantasy/poisonAndVenom/package.dist.json +++ b/palettes/fantasy/poisonAndVenom/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-poison-and-venom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles poison & venom palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/poisonAndVenom/package.json b/palettes/fantasy/poisonAndVenom/package.json index 8eadc51898e..1128ba1b944 100644 --- a/palettes/fantasy/poisonAndVenom/package.json +++ b/palettes/fantasy/poisonAndVenom/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-poison-and-venom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles poison & venom palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/poisonAndVenom/src/index.lazy.ts b/palettes/fantasy/poisonAndVenom/src/index.lazy.ts index 10374337c6c..6123f34e19f 100644 --- a/palettes/fantasy/poisonAndVenom/src/index.lazy.ts +++ b/palettes/fantasy/poisonAndVenom/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "poison-and-venom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPoisonAndVenomPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/poisonAndVenom/src/index.ts b/palettes/fantasy/poisonAndVenom/src/index.ts index 671b46ceae6..03694164940 100644 --- a/palettes/fantasy/poisonAndVenom/src/index.ts +++ b/palettes/fantasy/poisonAndVenom/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "poison-and-venom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPoisonAndVenomPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fantasy/unicorn/CHANGELOG.md b/palettes/fantasy/unicorn/CHANGELOG.md index 34d6c2df91e..04b64bcd780 100644 --- a/palettes/fantasy/unicorn/CHANGELOG.md +++ b/palettes/fantasy/unicorn/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-unicorn diff --git a/palettes/fantasy/unicorn/README.md b/palettes/fantasy/unicorn/README.md index d256a1f0aad..cd739bc2cc3 100644 --- a/palettes/fantasy/unicorn/README.md +++ b/palettes/fantasy/unicorn/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fantasy/unicorn/package.dist.json b/palettes/fantasy/unicorn/package.dist.json index a2276c53599..8efce366750 100644 --- a/palettes/fantasy/unicorn/package.dist.json +++ b/palettes/fantasy/unicorn/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-unicorn", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles unicorn palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fantasy/unicorn/package.json b/palettes/fantasy/unicorn/package.json index 8d10720ec19..42d945d68df 100644 --- a/palettes/fantasy/unicorn/package.json +++ b/palettes/fantasy/unicorn/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-unicorn", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles unicorn palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fantasy/unicorn/src/index.lazy.ts b/palettes/fantasy/unicorn/src/index.lazy.ts index 44ac1ae7039..02fba3aedba 100644 --- a/palettes/fantasy/unicorn/src/index.lazy.ts +++ b/palettes/fantasy/unicorn/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "unicorn"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadUnicornPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fantasy/unicorn/src/index.ts b/palettes/fantasy/unicorn/src/index.ts index 93d462405cc..7b5d5f08d50 100644 --- a/palettes/fantasy/unicorn/src/index.ts +++ b/palettes/fantasy/unicorn/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "unicorn"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadUnicornPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/candlelight/CHANGELOG.md b/palettes/fire/candlelight/CHANGELOG.md index f0f8fe9885d..801bcc40ac9 100644 --- a/palettes/fire/candlelight/CHANGELOG.md +++ b/palettes/fire/candlelight/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-candlelight diff --git a/palettes/fire/candlelight/README.md b/palettes/fire/candlelight/README.md index 1e0d2a7c40b..10724fe1c77 100644 --- a/palettes/fire/candlelight/README.md +++ b/palettes/fire/candlelight/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/candlelight/package.dist.json b/palettes/fire/candlelight/package.dist.json index 3b6569f967c..0a6ca1d1ad5 100644 --- a/palettes/fire/candlelight/package.dist.json +++ b/palettes/fire/candlelight/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-candlelight", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles candlelight palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/candlelight/package.json b/palettes/fire/candlelight/package.json index 456e9160416..0608fac67e3 100644 --- a/palettes/fire/candlelight/package.json +++ b/palettes/fire/candlelight/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-candlelight", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles candlelight palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/candlelight/src/index.lazy.ts b/palettes/fire/candlelight/src/index.lazy.ts index 9964835eca3..1fc5744f857 100644 --- a/palettes/fire/candlelight/src/index.lazy.ts +++ b/palettes/fire/candlelight/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "candlelight"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCandlelightPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/candlelight/src/index.ts b/palettes/fire/candlelight/src/index.ts index 134318303f7..ee9adc5dc94 100644 --- a/palettes/fire/candlelight/src/index.ts +++ b/palettes/fire/candlelight/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "candlelight"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCandlelightPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/default/CHANGELOG.md b/palettes/fire/default/CHANGELOG.md index 581afd88515..3277364bd1a 100644 --- a/palettes/fire/default/CHANGELOG.md +++ b/palettes/fire/default/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fire diff --git a/palettes/fire/default/README.md b/palettes/fire/default/README.md index 1b7154b5fef..9eaaa4335f1 100644 --- a/palettes/fire/default/README.md +++ b/palettes/fire/default/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/default/package.dist.json b/palettes/fire/default/package.dist.json index f9147243ffe..f5bc42dca2a 100644 --- a/palettes/fire/default/package.dist.json +++ b/palettes/fire/default/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fire", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fire - full palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/default/package.json b/palettes/fire/default/package.json index d7f997f5b53..b368fa1f97f 100644 --- a/palettes/fire/default/package.json +++ b/palettes/fire/default/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fire", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fire - full palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/default/src/index.lazy.ts b/palettes/fire/default/src/index.lazy.ts index 7086464daf8..5628e7499cb 100644 --- a/palettes/fire/default/src/index.lazy.ts +++ b/palettes/fire/default/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fire"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/default/src/index.ts b/palettes/fire/default/src/index.ts index 174e08ea1f4..7e287532f53 100644 --- a/palettes/fire/default/src/index.ts +++ b/palettes/fire/default/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fire"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/embersAndAsh/CHANGELOG.md b/palettes/fire/embersAndAsh/CHANGELOG.md index 4800648ca32..37a52c1423a 100644 --- a/palettes/fire/embersAndAsh/CHANGELOG.md +++ b/palettes/fire/embersAndAsh/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-embers-and-ash diff --git a/palettes/fire/embersAndAsh/README.md b/palettes/fire/embersAndAsh/README.md index 6ec7cb2c51d..16828ab2ad1 100644 --- a/palettes/fire/embersAndAsh/README.md +++ b/palettes/fire/embersAndAsh/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/embersAndAsh/package.dist.json b/palettes/fire/embersAndAsh/package.dist.json index 54233674ff6..1dcf3b1248b 100644 --- a/palettes/fire/embersAndAsh/package.dist.json +++ b/palettes/fire/embersAndAsh/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-embers-and-ash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles embers & ash palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/embersAndAsh/package.json b/palettes/fire/embersAndAsh/package.json index 36bcdfb2956..340d9589fa3 100644 --- a/palettes/fire/embersAndAsh/package.json +++ b/palettes/fire/embersAndAsh/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-embers-and-ash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles embers & ash palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/embersAndAsh/src/index.lazy.ts b/palettes/fire/embersAndAsh/src/index.lazy.ts index a85193fdecf..9fcd1ce4a81 100644 --- a/palettes/fire/embersAndAsh/src/index.lazy.ts +++ b/palettes/fire/embersAndAsh/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "embers-and-ash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmbersAndAshPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/embersAndAsh/src/index.ts b/palettes/fire/embersAndAsh/src/index.ts index 816e8e891ef..6f37cfc0115 100644 --- a/palettes/fire/embersAndAsh/src/index.ts +++ b/palettes/fire/embersAndAsh/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "embers-and-ash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmbersAndAshPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/fullFireGradient/CHANGELOG.md b/palettes/fire/fullFireGradient/CHANGELOG.md index 1a966540ef2..c65bc30daa2 100644 --- a/palettes/fire/fullFireGradient/CHANGELOG.md +++ b/palettes/fire/fullFireGradient/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-full-fire-gradient diff --git a/palettes/fire/fullFireGradient/README.md b/palettes/fire/fullFireGradient/README.md index 37860a90534..325920aee60 100644 --- a/palettes/fire/fullFireGradient/README.md +++ b/palettes/fire/fullFireGradient/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/fullFireGradient/package.dist.json b/palettes/fire/fullFireGradient/package.dist.json index 3cfddefbbb3..2ab341d470b 100644 --- a/palettes/fire/fullFireGradient/package.dist.json +++ b/palettes/fire/fullFireGradient/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-full-fire-gradient", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles full fire gradient palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/fullFireGradient/package.json b/palettes/fire/fullFireGradient/package.json index fda7e202935..83b6aa32228 100644 --- a/palettes/fire/fullFireGradient/package.json +++ b/palettes/fire/fullFireGradient/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-full-fire-gradient", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles full fire gradient palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/fullFireGradient/src/index.lazy.ts b/palettes/fire/fullFireGradient/src/index.lazy.ts index 6475c2cd1a1..c69af899e77 100644 --- a/palettes/fire/fullFireGradient/src/index.lazy.ts +++ b/palettes/fire/fullFireGradient/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "full-fire-gradient"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullFireGradientPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/fullFireGradient/src/index.ts b/palettes/fire/fullFireGradient/src/index.ts index 450492020c4..f012b795458 100644 --- a/palettes/fire/fullFireGradient/src/index.ts +++ b/palettes/fire/fullFireGradient/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "full-fire-gradient"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullFireGradientPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/lavaLamp/CHANGELOG.md b/palettes/fire/lavaLamp/CHANGELOG.md index 9aafc0cf711..e64dc5f3a9a 100644 --- a/palettes/fire/lavaLamp/CHANGELOG.md +++ b/palettes/fire/lavaLamp/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-lava-lamp diff --git a/palettes/fire/lavaLamp/README.md b/palettes/fire/lavaLamp/README.md index 305a7f56cd8..556ff414cb1 100644 --- a/palettes/fire/lavaLamp/README.md +++ b/palettes/fire/lavaLamp/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/lavaLamp/package.dist.json b/palettes/fire/lavaLamp/package.dist.json index 17a10d10bde..38a500be72b 100644 --- a/palettes/fire/lavaLamp/package.dist.json +++ b/palettes/fire/lavaLamp/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lava-lamp", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lava lamp palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/lavaLamp/package.json b/palettes/fire/lavaLamp/package.json index 046dc7efad2..19c7c569d16 100644 --- a/palettes/fire/lavaLamp/package.json +++ b/palettes/fire/lavaLamp/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lava-lamp", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lava lamp palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/lavaLamp/src/index.lazy.ts b/palettes/fire/lavaLamp/src/index.lazy.ts index 0a97c2f2806..b1ff9ad6868 100644 --- a/palettes/fire/lavaLamp/src/index.lazy.ts +++ b/palettes/fire/lavaLamp/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "lava-lamp"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLavaLampPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/lavaLamp/src/index.ts b/palettes/fire/lavaLamp/src/index.ts index 457470ffe01..b31d90cdc8c 100644 --- a/palettes/fire/lavaLamp/src/index.ts +++ b/palettes/fire/lavaLamp/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "lava-lamp"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLavaLampPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/metalSparks/CHANGELOG.md b/palettes/fire/metalSparks/CHANGELOG.md index f465beb7457..7812e4cc8f3 100644 --- a/palettes/fire/metalSparks/CHANGELOG.md +++ b/palettes/fire/metalSparks/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-metal-sparks diff --git a/palettes/fire/metalSparks/README.md b/palettes/fire/metalSparks/README.md index 7af019e7086..e9e9ea5038d 100644 --- a/palettes/fire/metalSparks/README.md +++ b/palettes/fire/metalSparks/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/metalSparks/package.dist.json b/palettes/fire/metalSparks/package.dist.json index f5600943b96..a7007f8ad51 100644 --- a/palettes/fire/metalSparks/package.dist.json +++ b/palettes/fire/metalSparks/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-metal-sparks", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles metal sparks palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/metalSparks/package.json b/palettes/fire/metalSparks/package.json index e9fa4185aa6..8c57b521b07 100644 --- a/palettes/fire/metalSparks/package.json +++ b/palettes/fire/metalSparks/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-metal-sparks", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles metal sparks palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/metalSparks/src/index.lazy.ts b/palettes/fire/metalSparks/src/index.lazy.ts index 40eb4e7b179..57af2f7f45e 100644 --- a/palettes/fire/metalSparks/src/index.lazy.ts +++ b/palettes/fire/metalSparks/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "metal-sparks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMetalSparksPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/metalSparks/src/index.ts b/palettes/fire/metalSparks/src/index.ts index aef5eb3a5fe..b97e91c7f38 100644 --- a/palettes/fire/metalSparks/src/index.ts +++ b/palettes/fire/metalSparks/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "metal-sparks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMetalSparksPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/moltenMetal/CHANGELOG.md b/palettes/fire/moltenMetal/CHANGELOG.md index c8d162d3a4b..f720d730e77 100644 --- a/palettes/fire/moltenMetal/CHANGELOG.md +++ b/palettes/fire/moltenMetal/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-molten-metal diff --git a/palettes/fire/moltenMetal/README.md b/palettes/fire/moltenMetal/README.md index d3eaa745da4..8a2dc68cc56 100644 --- a/palettes/fire/moltenMetal/README.md +++ b/palettes/fire/moltenMetal/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/moltenMetal/package.dist.json b/palettes/fire/moltenMetal/package.dist.json index 08bc7e14984..806221ee819 100644 --- a/palettes/fire/moltenMetal/package.dist.json +++ b/palettes/fire/moltenMetal/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-molten-metal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles molten metal palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/moltenMetal/package.json b/palettes/fire/moltenMetal/package.json index 35a59302e9c..228dbd1e16e 100644 --- a/palettes/fire/moltenMetal/package.json +++ b/palettes/fire/moltenMetal/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-molten-metal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles molten metal palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/moltenMetal/src/index.lazy.ts b/palettes/fire/moltenMetal/src/index.lazy.ts index daed48a56fd..6db2656f4f4 100644 --- a/palettes/fire/moltenMetal/src/index.lazy.ts +++ b/palettes/fire/moltenMetal/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "molten-metal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMoltenMetalPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/moltenMetal/src/index.ts b/palettes/fire/moltenMetal/src/index.ts index c6dff4b2fc0..c1241f1f0d8 100644 --- a/palettes/fire/moltenMetal/src/index.ts +++ b/palettes/fire/moltenMetal/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "molten-metal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMoltenMetalPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fire/seed/CHANGELOG.md b/palettes/fire/seed/CHANGELOG.md index 95f25a0a1c2..d30ed83b2a3 100644 --- a/palettes/fire/seed/CHANGELOG.md +++ b/palettes/fire/seed/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fire-seed diff --git a/palettes/fire/seed/README.md b/palettes/fire/seed/README.md index 0d30d3772bd..a3bd165600d 100644 --- a/palettes/fire/seed/README.md +++ b/palettes/fire/seed/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fire/seed/package.dist.json b/palettes/fire/seed/package.dist.json index 178b3db7de7..ea34364b0a5 100644 --- a/palettes/fire/seed/package.dist.json +++ b/palettes/fire/seed/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fire-seed", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fire seed palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fire/seed/package.json b/palettes/fire/seed/package.json index 366bc0a9f6b..d966ed7f186 100644 --- a/palettes/fire/seed/package.json +++ b/palettes/fire/seed/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fire-seed", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fire seed palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fire/seed/src/index.lazy.ts b/palettes/fire/seed/src/index.lazy.ts index 9ac70e06cdc..d6cc00ec37b 100644 --- a/palettes/fire/seed/src/index.lazy.ts +++ b/palettes/fire/seed/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "seed"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSeedPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fire/seed/src/index.ts b/palettes/fire/seed/src/index.ts index a3bd9a16ff7..2db400ed147 100644 --- a/palettes/fire/seed/src/index.ts +++ b/palettes/fire/seed/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fire-seed"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireSeedPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/blue/CHANGELOG.md b/palettes/fireworks/blue/CHANGELOG.md index 5332451c7ae..8d8a90b9068 100644 --- a/palettes/fireworks/blue/CHANGELOG.md +++ b/palettes/fireworks/blue/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-blue diff --git a/palettes/fireworks/blue/README.md b/palettes/fireworks/blue/README.md index 93059526183..f00b0737026 100644 --- a/palettes/fireworks/blue/README.md +++ b/palettes/fireworks/blue/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/blue/package.dist.json b/palettes/fireworks/blue/package.dist.json index fe38e9e4f63..3b677d298d4 100644 --- a/palettes/fireworks/blue/package.dist.json +++ b/palettes/fireworks/blue/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks blue palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/blue/package.json b/palettes/fireworks/blue/package.json index e64cd00c68c..d5f5253da38 100644 --- a/palettes/fireworks/blue/package.json +++ b/palettes/fireworks/blue/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-blue", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks blue palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/blue/src/index.lazy.ts b/palettes/fireworks/blue/src/index.lazy.ts index e6056feebd3..9afdd6c6d5c 100644 --- a/palettes/fireworks/blue/src/index.lazy.ts +++ b/palettes/fireworks/blue/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksBluePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/blue/src/index.ts b/palettes/fireworks/blue/src/index.ts index d82d4a47b6c..06c6191fb48 100644 --- a/palettes/fireworks/blue/src/index.ts +++ b/palettes/fireworks/blue/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-blue"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksBluePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/blueStroke/CHANGELOG.md b/palettes/fireworks/blueStroke/CHANGELOG.md index e5ecd8101af..f10bdec8d5a 100644 --- a/palettes/fireworks/blueStroke/CHANGELOG.md +++ b/palettes/fireworks/blueStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-blue-stroke diff --git a/palettes/fireworks/blueStroke/README.md b/palettes/fireworks/blueStroke/README.md index 4279bc70c2e..ed33c9dc3ce 100644 --- a/palettes/fireworks/blueStroke/README.md +++ b/palettes/fireworks/blueStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/blueStroke/package.dist.json b/palettes/fireworks/blueStroke/package.dist.json index 974bdcf155f..c027f411ca7 100644 --- a/palettes/fireworks/blueStroke/package.dist.json +++ b/palettes/fireworks/blueStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-blue-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks blue stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/blueStroke/package.json b/palettes/fireworks/blueStroke/package.json index e4a3715d9e7..23fe763d966 100644 --- a/palettes/fireworks/blueStroke/package.json +++ b/palettes/fireworks/blueStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-blue-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks blue stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/blueStroke/src/index.lazy.ts b/palettes/fireworks/blueStroke/src/index.lazy.ts index 2321c571c20..23192919881 100644 --- a/palettes/fireworks/blueStroke/src/index.lazy.ts +++ b/palettes/fireworks/blueStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-blue-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksBlueStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/blueStroke/src/index.ts b/palettes/fireworks/blueStroke/src/index.ts index a8569087122..221fdb078f2 100644 --- a/palettes/fireworks/blueStroke/src/index.ts +++ b/palettes/fireworks/blueStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-blue-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksBlueStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/copper/CHANGELOG.md b/palettes/fireworks/copper/CHANGELOG.md index a2e501982be..62c66116567 100644 --- a/palettes/fireworks/copper/CHANGELOG.md +++ b/palettes/fireworks/copper/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-copper diff --git a/palettes/fireworks/copper/README.md b/palettes/fireworks/copper/README.md index d99605a7ed5..18428274983 100644 --- a/palettes/fireworks/copper/README.md +++ b/palettes/fireworks/copper/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/copper/package.dist.json b/palettes/fireworks/copper/package.dist.json index 9e41763d983..48c00296bd3 100644 --- a/palettes/fireworks/copper/package.dist.json +++ b/palettes/fireworks/copper/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-copper", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks copper palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/copper/package.json b/palettes/fireworks/copper/package.json index 8c747c7d5f7..387dee22dfd 100644 --- a/palettes/fireworks/copper/package.json +++ b/palettes/fireworks/copper/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-copper", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks copper palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/copper/src/index.lazy.ts b/palettes/fireworks/copper/src/index.lazy.ts index 9bd992f5898..6301f120472 100644 --- a/palettes/fireworks/copper/src/index.lazy.ts +++ b/palettes/fireworks/copper/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-copper"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksCopperPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/copper/src/index.ts b/palettes/fireworks/copper/src/index.ts index 188ad56ffb9..92672d8e216 100644 --- a/palettes/fireworks/copper/src/index.ts +++ b/palettes/fireworks/copper/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-copper"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksCopperPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/copperStroke/CHANGELOG.md b/palettes/fireworks/copperStroke/CHANGELOG.md index 82074642fb0..c1a76150c5f 100644 --- a/palettes/fireworks/copperStroke/CHANGELOG.md +++ b/palettes/fireworks/copperStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-copper-stroke diff --git a/palettes/fireworks/copperStroke/README.md b/palettes/fireworks/copperStroke/README.md index 76040583635..f7642a89a9b 100644 --- a/palettes/fireworks/copperStroke/README.md +++ b/palettes/fireworks/copperStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/copperStroke/package.dist.json b/palettes/fireworks/copperStroke/package.dist.json index f68aec4e9da..6a595f3ab96 100644 --- a/palettes/fireworks/copperStroke/package.dist.json +++ b/palettes/fireworks/copperStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-copper-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks copper stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/copperStroke/package.json b/palettes/fireworks/copperStroke/package.json index 3b6131b7f6a..1853d9abab0 100644 --- a/palettes/fireworks/copperStroke/package.json +++ b/palettes/fireworks/copperStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-copper-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks copper stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/copperStroke/src/index.lazy.ts b/palettes/fireworks/copperStroke/src/index.lazy.ts index 585ddd42cef..0de3431be7d 100644 --- a/palettes/fireworks/copperStroke/src/index.lazy.ts +++ b/palettes/fireworks/copperStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-copper-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksCopperStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/copperStroke/src/index.ts b/palettes/fireworks/copperStroke/src/index.ts index 99eea68b232..a6bb71b26aa 100644 --- a/palettes/fireworks/copperStroke/src/index.ts +++ b/palettes/fireworks/copperStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-copper-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksCopperStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/gold/CHANGELOG.md b/palettes/fireworks/gold/CHANGELOG.md index e3e82160723..8a7916de3cf 100644 --- a/palettes/fireworks/gold/CHANGELOG.md +++ b/palettes/fireworks/gold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-gold diff --git a/palettes/fireworks/gold/README.md b/palettes/fireworks/gold/README.md index 8f13eba9690..c0c04281000 100644 --- a/palettes/fireworks/gold/README.md +++ b/palettes/fireworks/gold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/gold/package.dist.json b/palettes/fireworks/gold/package.dist.json index 8d67390e1e3..7c9336214e1 100644 --- a/palettes/fireworks/gold/package.dist.json +++ b/palettes/fireworks/gold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - gold palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/gold/package.json b/palettes/fireworks/gold/package.json index 3ae0c3d9766..38946bb14e8 100644 --- a/palettes/fireworks/gold/package.json +++ b/palettes/fireworks/gold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - gold palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/gold/src/index.lazy.ts b/palettes/fireworks/gold/src/index.lazy.ts index 47ed82be47d..d61f01cb3e1 100644 --- a/palettes/fireworks/gold/src/index.lazy.ts +++ b/palettes/fireworks/gold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/gold/src/index.ts b/palettes/fireworks/gold/src/index.ts index 8b6682dbb87..9616f16ef18 100644 --- a/palettes/fireworks/gold/src/index.ts +++ b/palettes/fireworks/gold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/goldStroke/CHANGELOG.md b/palettes/fireworks/goldStroke/CHANGELOG.md index 09e0636f5b6..63364a2be93 100644 --- a/palettes/fireworks/goldStroke/CHANGELOG.md +++ b/palettes/fireworks/goldStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-gold-stroke diff --git a/palettes/fireworks/goldStroke/README.md b/palettes/fireworks/goldStroke/README.md index 0ab85a19a8c..8599a9ffa26 100644 --- a/palettes/fireworks/goldStroke/README.md +++ b/palettes/fireworks/goldStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/goldStroke/package.dist.json b/palettes/fireworks/goldStroke/package.dist.json index 54038edb35d..fe53f1121c0 100644 --- a/palettes/fireworks/goldStroke/package.dist.json +++ b/palettes/fireworks/goldStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-gold-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - gold stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/goldStroke/package.json b/palettes/fireworks/goldStroke/package.json index fa18c5cdaf0..4608317314c 100644 --- a/palettes/fireworks/goldStroke/package.json +++ b/palettes/fireworks/goldStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-gold-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - gold stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/goldStroke/src/index.lazy.ts b/palettes/fireworks/goldStroke/src/index.lazy.ts index 47dae0612b2..f7d6e2f5421 100644 --- a/palettes/fireworks/goldStroke/src/index.lazy.ts +++ b/palettes/fireworks/goldStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-gold-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGoldStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/goldStroke/src/index.ts b/palettes/fireworks/goldStroke/src/index.ts index 3e85adb53e5..6453dad51ac 100644 --- a/palettes/fireworks/goldStroke/src/index.ts +++ b/palettes/fireworks/goldStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-gold-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGoldStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/green/CHANGELOG.md b/palettes/fireworks/green/CHANGELOG.md index 9b2c1a81f75..0e2dfca89a8 100644 --- a/palettes/fireworks/green/CHANGELOG.md +++ b/palettes/fireworks/green/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-green diff --git a/palettes/fireworks/green/README.md b/palettes/fireworks/green/README.md index 15117291ae5..4ca50b8ebfb 100644 --- a/palettes/fireworks/green/README.md +++ b/palettes/fireworks/green/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/green/package.dist.json b/palettes/fireworks/green/package.dist.json index 2064a925262..65f54755623 100644 --- a/palettes/fireworks/green/package.dist.json +++ b/palettes/fireworks/green/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks green palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/green/package.json b/palettes/fireworks/green/package.json index f1a67e5365e..57c92bb4305 100644 --- a/palettes/fireworks/green/package.json +++ b/palettes/fireworks/green/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks green palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/green/src/index.lazy.ts b/palettes/fireworks/green/src/index.lazy.ts index f18fdad90fe..36e9dbb1296 100644 --- a/palettes/fireworks/green/src/index.lazy.ts +++ b/palettes/fireworks/green/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/green/src/index.ts b/palettes/fireworks/green/src/index.ts index 4a311085235..cce19e2caf8 100644 --- a/palettes/fireworks/green/src/index.ts +++ b/palettes/fireworks/green/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/greenStroke/CHANGELOG.md b/palettes/fireworks/greenStroke/CHANGELOG.md index 7d20896e997..3140f043ef6 100644 --- a/palettes/fireworks/greenStroke/CHANGELOG.md +++ b/palettes/fireworks/greenStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-green-stroke diff --git a/palettes/fireworks/greenStroke/README.md b/palettes/fireworks/greenStroke/README.md index 92e556608f6..cda8189f12f 100644 --- a/palettes/fireworks/greenStroke/README.md +++ b/palettes/fireworks/greenStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/greenStroke/package.dist.json b/palettes/fireworks/greenStroke/package.dist.json index 09762c5106b..b475c2b3701 100644 --- a/palettes/fireworks/greenStroke/package.dist.json +++ b/palettes/fireworks/greenStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-green-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks green stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/greenStroke/package.json b/palettes/fireworks/greenStroke/package.json index dc70bffb266..51e32ea8564 100644 --- a/palettes/fireworks/greenStroke/package.json +++ b/palettes/fireworks/greenStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-green-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks green stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/greenStroke/src/index.lazy.ts b/palettes/fireworks/greenStroke/src/index.lazy.ts index 14771493a20..4b2c96d60c0 100644 --- a/palettes/fireworks/greenStroke/src/index.lazy.ts +++ b/palettes/fireworks/greenStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-green-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGreenStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/greenStroke/src/index.ts b/palettes/fireworks/greenStroke/src/index.ts index 8ff9fd8eb6a..5deb0c9e640 100644 --- a/palettes/fireworks/greenStroke/src/index.ts +++ b/palettes/fireworks/greenStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-green-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksGreenStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/ice/CHANGELOG.md b/palettes/fireworks/ice/CHANGELOG.md index 741c004f53c..c3684b16168 100644 --- a/palettes/fireworks/ice/CHANGELOG.md +++ b/palettes/fireworks/ice/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-ice diff --git a/palettes/fireworks/ice/README.md b/palettes/fireworks/ice/README.md index d706610ae5a..03f8c1ccb8c 100644 --- a/palettes/fireworks/ice/README.md +++ b/palettes/fireworks/ice/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/ice/package.dist.json b/palettes/fireworks/ice/package.dist.json index c77a4e041ac..23b23bb2445 100644 --- a/palettes/fireworks/ice/package.dist.json +++ b/palettes/fireworks/ice/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-ice", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks ice palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/ice/package.json b/palettes/fireworks/ice/package.json index ea91a68f05b..ca7b27e2732 100644 --- a/palettes/fireworks/ice/package.json +++ b/palettes/fireworks/ice/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-ice", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks ice palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/ice/src/index.lazy.ts b/palettes/fireworks/ice/src/index.lazy.ts index bed60fc0107..76375437ef2 100644 --- a/palettes/fireworks/ice/src/index.lazy.ts +++ b/palettes/fireworks/ice/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-ice"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksIcePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/ice/src/index.ts b/palettes/fireworks/ice/src/index.ts index 15a5637e88b..12834576600 100644 --- a/palettes/fireworks/ice/src/index.ts +++ b/palettes/fireworks/ice/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-ice"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksIcePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/iceStroke/CHANGELOG.md b/palettes/fireworks/iceStroke/CHANGELOG.md index 04ef3789daf..43a06d4478b 100644 --- a/palettes/fireworks/iceStroke/CHANGELOG.md +++ b/palettes/fireworks/iceStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-ice-stroke diff --git a/palettes/fireworks/iceStroke/README.md b/palettes/fireworks/iceStroke/README.md index 5ab0fccdf8c..0e6a7e9d44b 100644 --- a/palettes/fireworks/iceStroke/README.md +++ b/palettes/fireworks/iceStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/iceStroke/package.dist.json b/palettes/fireworks/iceStroke/package.dist.json index 63dba76b33f..2a80362bc92 100644 --- a/palettes/fireworks/iceStroke/package.dist.json +++ b/palettes/fireworks/iceStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-ice-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks ice stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/iceStroke/package.json b/palettes/fireworks/iceStroke/package.json index 97a8690d424..6c1c88b1c24 100644 --- a/palettes/fireworks/iceStroke/package.json +++ b/palettes/fireworks/iceStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-ice-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks ice stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/iceStroke/src/index.lazy.ts b/palettes/fireworks/iceStroke/src/index.lazy.ts index 862025e444b..39a20e1662f 100644 --- a/palettes/fireworks/iceStroke/src/index.lazy.ts +++ b/palettes/fireworks/iceStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-ice-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksIceStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/iceStroke/src/index.ts b/palettes/fireworks/iceStroke/src/index.ts index 89296400a2c..48771f2958b 100644 --- a/palettes/fireworks/iceStroke/src/index.ts +++ b/palettes/fireworks/iceStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-ice-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksIceStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/multicolor/CHANGELOG.md b/palettes/fireworks/multicolor/CHANGELOG.md index c1d6f75c762..b39030e04b9 100644 --- a/palettes/fireworks/multicolor/CHANGELOG.md +++ b/palettes/fireworks/multicolor/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-multicolor diff --git a/palettes/fireworks/multicolor/README.md b/palettes/fireworks/multicolor/README.md index 514afb47aae..6bf10763d61 100644 --- a/palettes/fireworks/multicolor/README.md +++ b/palettes/fireworks/multicolor/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/multicolor/package.dist.json b/palettes/fireworks/multicolor/package.dist.json index ab1bdd1e987..5e4e6ef569d 100644 --- a/palettes/fireworks/multicolor/package.dist.json +++ b/palettes/fireworks/multicolor/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-multicolor", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - multicolor palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/multicolor/package.json b/palettes/fireworks/multicolor/package.json index 6e6e1a58fd4..052609c6dcf 100644 --- a/palettes/fireworks/multicolor/package.json +++ b/palettes/fireworks/multicolor/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-multicolor", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - multicolor palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/multicolor/src/index.lazy.ts b/palettes/fireworks/multicolor/src/index.lazy.ts index 32aec9a16f9..3ac137599ed 100644 --- a/palettes/fireworks/multicolor/src/index.lazy.ts +++ b/palettes/fireworks/multicolor/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-multicolor"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksMulticolorPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/multicolor/src/index.ts b/palettes/fireworks/multicolor/src/index.ts index b15b3fe395d..11bcad29fd7 100644 --- a/palettes/fireworks/multicolor/src/index.ts +++ b/palettes/fireworks/multicolor/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-multicolor"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksMulticolorPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/multicolorStroke/CHANGELOG.md b/palettes/fireworks/multicolorStroke/CHANGELOG.md index b34f96e7458..1da3ba4c4ff 100644 --- a/palettes/fireworks/multicolorStroke/CHANGELOG.md +++ b/palettes/fireworks/multicolorStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-multicolor-stroke diff --git a/palettes/fireworks/multicolorStroke/README.md b/palettes/fireworks/multicolorStroke/README.md index 61cc16209ce..ff5cab42c8a 100644 --- a/palettes/fireworks/multicolorStroke/README.md +++ b/palettes/fireworks/multicolorStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/multicolorStroke/package.dist.json b/palettes/fireworks/multicolorStroke/package.dist.json index 495d7e1debf..5257179fe8f 100644 --- a/palettes/fireworks/multicolorStroke/package.dist.json +++ b/palettes/fireworks/multicolorStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-multicolor-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - multicolor stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/multicolorStroke/package.json b/palettes/fireworks/multicolorStroke/package.json index 48fe0943ced..1d393f5dee6 100644 --- a/palettes/fireworks/multicolorStroke/package.json +++ b/palettes/fireworks/multicolorStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-multicolor-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks - multicolor stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/multicolorStroke/src/index.lazy.ts b/palettes/fireworks/multicolorStroke/src/index.lazy.ts index fae616e0051..8beacb5810d 100644 --- a/palettes/fireworks/multicolorStroke/src/index.lazy.ts +++ b/palettes/fireworks/multicolorStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-multicolor-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksMulticolorStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/multicolorStroke/src/index.ts b/palettes/fireworks/multicolorStroke/src/index.ts index 72a38b2715a..a835cadda9c 100644 --- a/palettes/fireworks/multicolorStroke/src/index.ts +++ b/palettes/fireworks/multicolorStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-multicolor-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksMulticolorStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/neon/CHANGELOG.md b/palettes/fireworks/neon/CHANGELOG.md index f30dcc2bdd2..c1a17e17919 100644 --- a/palettes/fireworks/neon/CHANGELOG.md +++ b/palettes/fireworks/neon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-neon diff --git a/palettes/fireworks/neon/README.md b/palettes/fireworks/neon/README.md index 13ebf9ee31d..43bd1159138 100644 --- a/palettes/fireworks/neon/README.md +++ b/palettes/fireworks/neon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/neon/package.dist.json b/palettes/fireworks/neon/package.dist.json index 0891d8518ad..091f43c4ad3 100644 --- a/palettes/fireworks/neon/package.dist.json +++ b/palettes/fireworks/neon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks neon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/neon/package.json b/palettes/fireworks/neon/package.json index f5d379e0364..e4deae75c7f 100644 --- a/palettes/fireworks/neon/package.json +++ b/palettes/fireworks/neon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks neon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/neon/src/index.lazy.ts b/palettes/fireworks/neon/src/index.lazy.ts index bd9c36ac982..813d1dea143 100644 --- a/palettes/fireworks/neon/src/index.lazy.ts +++ b/palettes/fireworks/neon/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/neon/src/index.ts b/palettes/fireworks/neon/src/index.ts index 8e5a9705761..aaf351b5860 100644 --- a/palettes/fireworks/neon/src/index.ts +++ b/palettes/fireworks/neon/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/neonStroke/CHANGELOG.md b/palettes/fireworks/neonStroke/CHANGELOG.md index ef7ec6f46c5..bf1cb23a63d 100644 --- a/palettes/fireworks/neonStroke/CHANGELOG.md +++ b/palettes/fireworks/neonStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-neon-stroke diff --git a/palettes/fireworks/neonStroke/README.md b/palettes/fireworks/neonStroke/README.md index 68c0ca98ec8..888478457fd 100644 --- a/palettes/fireworks/neonStroke/README.md +++ b/palettes/fireworks/neonStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/neonStroke/package.dist.json b/palettes/fireworks/neonStroke/package.dist.json index 408327f0ffb..02595296b31 100644 --- a/palettes/fireworks/neonStroke/package.dist.json +++ b/palettes/fireworks/neonStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-neon-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks neon stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/neonStroke/package.json b/palettes/fireworks/neonStroke/package.json index ce2d6f8275d..49323086f4c 100644 --- a/palettes/fireworks/neonStroke/package.json +++ b/palettes/fireworks/neonStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-neon-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks neon stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/neonStroke/src/index.lazy.ts b/palettes/fireworks/neonStroke/src/index.lazy.ts index 3ea1878fea5..0b8e09d3c52 100644 --- a/palettes/fireworks/neonStroke/src/index.lazy.ts +++ b/palettes/fireworks/neonStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-neon-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksNeonStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/neonStroke/src/index.ts b/palettes/fireworks/neonStroke/src/index.ts index d52bc1ffa34..5df89fadc1c 100644 --- a/palettes/fireworks/neonStroke/src/index.ts +++ b/palettes/fireworks/neonStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-neon-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksNeonStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/pastel/CHANGELOG.md b/palettes/fireworks/pastel/CHANGELOG.md index da45a884c73..abb3c691357 100644 --- a/palettes/fireworks/pastel/CHANGELOG.md +++ b/palettes/fireworks/pastel/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-pastel diff --git a/palettes/fireworks/pastel/README.md b/palettes/fireworks/pastel/README.md index ffe02faf0ba..905f1dc9951 100644 --- a/palettes/fireworks/pastel/README.md +++ b/palettes/fireworks/pastel/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/pastel/package.dist.json b/palettes/fireworks/pastel/package.dist.json index a8198fb4053..83de0c84dd5 100644 --- a/palettes/fireworks/pastel/package.dist.json +++ b/palettes/fireworks/pastel/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks pastel palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/pastel/package.json b/palettes/fireworks/pastel/package.json index c4593752f4f..e9e4b619a8a 100644 --- a/palettes/fireworks/pastel/package.json +++ b/palettes/fireworks/pastel/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks pastel palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/pastel/src/index.lazy.ts b/palettes/fireworks/pastel/src/index.lazy.ts index b045f341865..65cfa6c797a 100644 --- a/palettes/fireworks/pastel/src/index.lazy.ts +++ b/palettes/fireworks/pastel/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/pastel/src/index.ts b/palettes/fireworks/pastel/src/index.ts index 2a3f2b813e3..ab95f26b9ae 100644 --- a/palettes/fireworks/pastel/src/index.ts +++ b/palettes/fireworks/pastel/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/pastelStroke/CHANGELOG.md b/palettes/fireworks/pastelStroke/CHANGELOG.md index f434301981f..e79ce9cd14e 100644 --- a/palettes/fireworks/pastelStroke/CHANGELOG.md +++ b/palettes/fireworks/pastelStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-pastel-stroke diff --git a/palettes/fireworks/pastelStroke/README.md b/palettes/fireworks/pastelStroke/README.md index cfb0f911fac..64763aae932 100644 --- a/palettes/fireworks/pastelStroke/README.md +++ b/palettes/fireworks/pastelStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/pastelStroke/package.dist.json b/palettes/fireworks/pastelStroke/package.dist.json index 6b29f10e251..4755437190d 100644 --- a/palettes/fireworks/pastelStroke/package.dist.json +++ b/palettes/fireworks/pastelStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-pastel-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks pastel stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/pastelStroke/package.json b/palettes/fireworks/pastelStroke/package.json index 86995abb227..f3d3219b619 100644 --- a/palettes/fireworks/pastelStroke/package.json +++ b/palettes/fireworks/pastelStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-pastel-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks pastel stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/pastelStroke/src/index.lazy.ts b/palettes/fireworks/pastelStroke/src/index.lazy.ts index 0c71624ab3e..e69d13b51df 100644 --- a/palettes/fireworks/pastelStroke/src/index.lazy.ts +++ b/palettes/fireworks/pastelStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-pastel-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPastelStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/pastelStroke/src/index.ts b/palettes/fireworks/pastelStroke/src/index.ts index 82bd1a16343..0d0a985e81c 100644 --- a/palettes/fireworks/pastelStroke/src/index.ts +++ b/palettes/fireworks/pastelStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-pastel-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPastelStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/purple/CHANGELOG.md b/palettes/fireworks/purple/CHANGELOG.md index 5773abf709a..beaaad82c45 100644 --- a/palettes/fireworks/purple/CHANGELOG.md +++ b/palettes/fireworks/purple/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-purple diff --git a/palettes/fireworks/purple/README.md b/palettes/fireworks/purple/README.md index 2397aaf303c..fc8399d7940 100644 --- a/palettes/fireworks/purple/README.md +++ b/palettes/fireworks/purple/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/purple/package.dist.json b/palettes/fireworks/purple/package.dist.json index eabae8743dc..5603243061c 100644 --- a/palettes/fireworks/purple/package.dist.json +++ b/palettes/fireworks/purple/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks purple palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/purple/package.json b/palettes/fireworks/purple/package.json index 16d6344eeb8..fbb13c4497d 100644 --- a/palettes/fireworks/purple/package.json +++ b/palettes/fireworks/purple/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-purple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks purple palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/purple/src/index.lazy.ts b/palettes/fireworks/purple/src/index.lazy.ts index 7be4973ce30..da9816cc101 100644 --- a/palettes/fireworks/purple/src/index.lazy.ts +++ b/palettes/fireworks/purple/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPurplePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/purple/src/index.ts b/palettes/fireworks/purple/src/index.ts index 03c4e816b90..ed5a4c93b56 100644 --- a/palettes/fireworks/purple/src/index.ts +++ b/palettes/fireworks/purple/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-purple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPurplePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/purpleStroke/CHANGELOG.md b/palettes/fireworks/purpleStroke/CHANGELOG.md index ef19c39859a..68532cc05ed 100644 --- a/palettes/fireworks/purpleStroke/CHANGELOG.md +++ b/palettes/fireworks/purpleStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-purple-stroke diff --git a/palettes/fireworks/purpleStroke/README.md b/palettes/fireworks/purpleStroke/README.md index d867f226534..37d479ddb05 100644 --- a/palettes/fireworks/purpleStroke/README.md +++ b/palettes/fireworks/purpleStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/purpleStroke/package.dist.json b/palettes/fireworks/purpleStroke/package.dist.json index 0f31a82e6c6..d1612afa4b6 100644 --- a/palettes/fireworks/purpleStroke/package.dist.json +++ b/palettes/fireworks/purpleStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-purple-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks purple stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/purpleStroke/package.json b/palettes/fireworks/purpleStroke/package.json index d191ba72b51..1e0d366ecf9 100644 --- a/palettes/fireworks/purpleStroke/package.json +++ b/palettes/fireworks/purpleStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-purple-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks purple stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/purpleStroke/src/index.lazy.ts b/palettes/fireworks/purpleStroke/src/index.lazy.ts index 073d228e9e1..fa94bcbf39c 100644 --- a/palettes/fireworks/purpleStroke/src/index.lazy.ts +++ b/palettes/fireworks/purpleStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-purple-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPurpleStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/purpleStroke/src/index.ts b/palettes/fireworks/purpleStroke/src/index.ts index 26e6b4eea1c..6fdae76941a 100644 --- a/palettes/fireworks/purpleStroke/src/index.ts +++ b/palettes/fireworks/purpleStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-purple-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPurpleStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/rainbow/CHANGELOG.md b/palettes/fireworks/rainbow/CHANGELOG.md index 8d4f8ed875f..224a9335932 100644 --- a/palettes/fireworks/rainbow/CHANGELOG.md +++ b/palettes/fireworks/rainbow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-rainbow diff --git a/palettes/fireworks/rainbow/README.md b/palettes/fireworks/rainbow/README.md index 4e57cab6638..7a78fbc797a 100644 --- a/palettes/fireworks/rainbow/README.md +++ b/palettes/fireworks/rainbow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/rainbow/package.dist.json b/palettes/fireworks/rainbow/package.dist.json index c98634107e8..428028d5a0e 100644 --- a/palettes/fireworks/rainbow/package.dist.json +++ b/palettes/fireworks/rainbow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks rainbow palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/rainbow/package.json b/palettes/fireworks/rainbow/package.json index 3256e05203f..26f1b5d83a2 100644 --- a/palettes/fireworks/rainbow/package.json +++ b/palettes/fireworks/rainbow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks rainbow palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/rainbow/src/index.lazy.ts b/palettes/fireworks/rainbow/src/index.lazy.ts index 2865d945e9e..71b2dcbad4c 100644 --- a/palettes/fireworks/rainbow/src/index.lazy.ts +++ b/palettes/fireworks/rainbow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/rainbow/src/index.ts b/palettes/fireworks/rainbow/src/index.ts index 50584916f94..e17c9f58d32 100644 --- a/palettes/fireworks/rainbow/src/index.ts +++ b/palettes/fireworks/rainbow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/rainbowStroke/CHANGELOG.md b/palettes/fireworks/rainbowStroke/CHANGELOG.md index f2ec4c19f10..cee86c92759 100644 --- a/palettes/fireworks/rainbowStroke/CHANGELOG.md +++ b/palettes/fireworks/rainbowStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-rainbow-stroke diff --git a/palettes/fireworks/rainbowStroke/README.md b/palettes/fireworks/rainbowStroke/README.md index d8f48e85389..263c2b784f8 100644 --- a/palettes/fireworks/rainbowStroke/README.md +++ b/palettes/fireworks/rainbowStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/rainbowStroke/package.dist.json b/palettes/fireworks/rainbowStroke/package.dist.json index 40ef35a38fa..70867e61a35 100644 --- a/palettes/fireworks/rainbowStroke/package.dist.json +++ b/palettes/fireworks/rainbowStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-rainbow-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks rainbow stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/rainbowStroke/package.json b/palettes/fireworks/rainbowStroke/package.json index 345451a4bd8..b6ab42dbfff 100644 --- a/palettes/fireworks/rainbowStroke/package.json +++ b/palettes/fireworks/rainbowStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-rainbow-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks rainbow stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/rainbowStroke/src/index.lazy.ts b/palettes/fireworks/rainbowStroke/src/index.lazy.ts index bface8499cb..c72f68fe9d4 100644 --- a/palettes/fireworks/rainbowStroke/src/index.lazy.ts +++ b/palettes/fireworks/rainbowStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-rainbow-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRainbowStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/rainbowStroke/src/index.ts b/palettes/fireworks/rainbowStroke/src/index.ts index 339cca75edd..e3dca11fd89 100644 --- a/palettes/fireworks/rainbowStroke/src/index.ts +++ b/palettes/fireworks/rainbowStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-rainbow-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRainbowStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/red/CHANGELOG.md b/palettes/fireworks/red/CHANGELOG.md index ebfb325650b..f539a98193a 100644 --- a/palettes/fireworks/red/CHANGELOG.md +++ b/palettes/fireworks/red/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-red diff --git a/palettes/fireworks/red/README.md b/palettes/fireworks/red/README.md index 8fac0c51c83..a5e51cb4e9a 100644 --- a/palettes/fireworks/red/README.md +++ b/palettes/fireworks/red/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/red/package.dist.json b/palettes/fireworks/red/package.dist.json index f7d11bd308e..588fa0c8010 100644 --- a/palettes/fireworks/red/package.dist.json +++ b/palettes/fireworks/red/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks red palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/red/package.json b/palettes/fireworks/red/package.json index 573dc91612a..2b5ecdf9cd7 100644 --- a/palettes/fireworks/red/package.json +++ b/palettes/fireworks/red/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks red palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/red/src/index.lazy.ts b/palettes/fireworks/red/src/index.lazy.ts index 79fe8f56e06..8f336c4dc2c 100644 --- a/palettes/fireworks/red/src/index.lazy.ts +++ b/palettes/fireworks/red/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRedPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/red/src/index.ts b/palettes/fireworks/red/src/index.ts index 6e1fdb1b1d7..f7c062c6710 100644 --- a/palettes/fireworks/red/src/index.ts +++ b/palettes/fireworks/red/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRedPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/redStroke/CHANGELOG.md b/palettes/fireworks/redStroke/CHANGELOG.md index 086217342ba..44ec797ec1f 100644 --- a/palettes/fireworks/redStroke/CHANGELOG.md +++ b/palettes/fireworks/redStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-red-stroke diff --git a/palettes/fireworks/redStroke/README.md b/palettes/fireworks/redStroke/README.md index 133c15e9145..0cd597e6b06 100644 --- a/palettes/fireworks/redStroke/README.md +++ b/palettes/fireworks/redStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/redStroke/package.dist.json b/palettes/fireworks/redStroke/package.dist.json index 32a150919de..3949def00c2 100644 --- a/palettes/fireworks/redStroke/package.dist.json +++ b/palettes/fireworks/redStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-red-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks red stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/redStroke/package.json b/palettes/fireworks/redStroke/package.json index 6e05df1e139..869e82a7efb 100644 --- a/palettes/fireworks/redStroke/package.json +++ b/palettes/fireworks/redStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-red-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks red stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/redStroke/src/index.lazy.ts b/palettes/fireworks/redStroke/src/index.lazy.ts index ec4f314eb23..a88a9113db0 100644 --- a/palettes/fireworks/redStroke/src/index.lazy.ts +++ b/palettes/fireworks/redStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-red-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRedStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/redStroke/src/index.ts b/palettes/fireworks/redStroke/src/index.ts index f5be2c32560..0013a45a482 100644 --- a/palettes/fireworks/redStroke/src/index.ts +++ b/palettes/fireworks/redStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-red-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksRedStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/silver/CHANGELOG.md b/palettes/fireworks/silver/CHANGELOG.md index b373ce4c3e6..e98acac47ad 100644 --- a/palettes/fireworks/silver/CHANGELOG.md +++ b/palettes/fireworks/silver/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-silver diff --git a/palettes/fireworks/silver/README.md b/palettes/fireworks/silver/README.md index 71a8cc3b952..cc4ca7db917 100644 --- a/palettes/fireworks/silver/README.md +++ b/palettes/fireworks/silver/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/silver/package.dist.json b/palettes/fireworks/silver/package.dist.json index 4550af4c67e..edb8c61a54e 100644 --- a/palettes/fireworks/silver/package.dist.json +++ b/palettes/fireworks/silver/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-silver", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks silver palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/silver/package.json b/palettes/fireworks/silver/package.json index d1968c37f8d..c17c87cda20 100644 --- a/palettes/fireworks/silver/package.json +++ b/palettes/fireworks/silver/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-silver", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks silver palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/silver/src/index.lazy.ts b/palettes/fireworks/silver/src/index.lazy.ts index f51b6338706..9079dc26685 100644 --- a/palettes/fireworks/silver/src/index.lazy.ts +++ b/palettes/fireworks/silver/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-silver"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksSilverPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/silver/src/index.ts b/palettes/fireworks/silver/src/index.ts index 5a93ca874fa..03ff8294f5c 100644 --- a/palettes/fireworks/silver/src/index.ts +++ b/palettes/fireworks/silver/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-silver"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksSilverPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/fireworks/silverStroke/CHANGELOG.md b/palettes/fireworks/silverStroke/CHANGELOG.md index bf2d3c4de28..2b6dee5ab5e 100644 --- a/palettes/fireworks/silverStroke/CHANGELOG.md +++ b/palettes/fireworks/silverStroke/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireworks-silver-stroke diff --git a/palettes/fireworks/silverStroke/README.md b/palettes/fireworks/silverStroke/README.md index 247f0fd3784..6eacab8e06b 100644 --- a/palettes/fireworks/silverStroke/README.md +++ b/palettes/fireworks/silverStroke/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/fireworks/silverStroke/package.dist.json b/palettes/fireworks/silverStroke/package.dist.json index c395352421d..800117b6d2a 100644 --- a/palettes/fireworks/silverStroke/package.dist.json +++ b/palettes/fireworks/silverStroke/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-silver-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks silver stroke palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/fireworks/silverStroke/package.json b/palettes/fireworks/silverStroke/package.json index 8ce80478c71..66aa9eccca1 100644 --- a/palettes/fireworks/silverStroke/package.json +++ b/palettes/fireworks/silverStroke/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireworks-silver-stroke", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks silver stroke palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/fireworks/silverStroke/src/index.lazy.ts b/palettes/fireworks/silverStroke/src/index.lazy.ts index 92f1e01908e..bd0e26c6f08 100644 --- a/palettes/fireworks/silverStroke/src/index.lazy.ts +++ b/palettes/fireworks/silverStroke/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireworks-silver-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksSilverStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/fireworks/silverStroke/src/index.ts b/palettes/fireworks/silverStroke/src/index.ts index 1c097748418..2d11c624e7c 100644 --- a/palettes/fireworks/silverStroke/src/index.ts +++ b/palettes/fireworks/silverStroke/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireworks-silver-stroke"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksSilverStrokePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/apple-green/CHANGELOG.md b/palettes/food/apple-green/CHANGELOG.md index 6128d31b761..5edf5d02ca4 100644 --- a/palettes/food/apple-green/CHANGELOG.md +++ b/palettes/food/apple-green/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-apple-green diff --git a/palettes/food/apple-green/README.md b/palettes/food/apple-green/README.md index 0dc46ca9c52..780e260ec22 100644 --- a/palettes/food/apple-green/README.md +++ b/palettes/food/apple-green/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/apple-green/package.dist.json b/palettes/food/apple-green/package.dist.json index 6ad4bde7a13..98dc0596949 100644 --- a/palettes/food/apple-green/package.dist.json +++ b/palettes/food/apple-green/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple green palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/apple-green/package.json b/palettes/food/apple-green/package.json index 80acd3c3814..c363b274da6 100644 --- a/palettes/food/apple-green/package.json +++ b/palettes/food/apple-green/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple-green", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple green palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/apple-green/src/index.lazy.ts b/palettes/food/apple-green/src/index.lazy.ts index 438c5666a3b..412875e466d 100644 --- a/palettes/food/apple-green/src/index.lazy.ts +++ b/palettes/food/apple-green/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "apple-green"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAppleGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/apple-green/src/index.ts b/palettes/food/apple-green/src/index.ts index 834087d3dbf..d54cd8dd903 100644 --- a/palettes/food/apple-green/src/index.ts +++ b/palettes/food/apple-green/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "apple-green"; /** * Register the apple-green palette - * @param engine + * @param engine - The engine to load the shape in */ export async function loadAppleGreenPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/apple-red/CHANGELOG.md b/palettes/food/apple-red/CHANGELOG.md index 6fb59ad17d5..5e6022aadc4 100644 --- a/palettes/food/apple-red/CHANGELOG.md +++ b/palettes/food/apple-red/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-apple-red diff --git a/palettes/food/apple-red/README.md b/palettes/food/apple-red/README.md index b69380310e7..3dc1db520c5 100644 --- a/palettes/food/apple-red/README.md +++ b/palettes/food/apple-red/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/apple-red/package.dist.json b/palettes/food/apple-red/package.dist.json index 772a553163b..3743699429e 100644 --- a/palettes/food/apple-red/package.dist.json +++ b/palettes/food/apple-red/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple red palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/apple-red/package.json b/palettes/food/apple-red/package.json index 5d09aae6305..e1f8203c548 100644 --- a/palettes/food/apple-red/package.json +++ b/palettes/food/apple-red/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple-red", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple red palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/apple-red/src/index.lazy.ts b/palettes/food/apple-red/src/index.lazy.ts index d04cc4f4ba0..bb3a11ca431 100644 --- a/palettes/food/apple-red/src/index.lazy.ts +++ b/palettes/food/apple-red/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "apple-red"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAppleRedPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/apple-red/src/index.ts b/palettes/food/apple-red/src/index.ts index 409ba80a7da..3763e357908 100644 --- a/palettes/food/apple-red/src/index.ts +++ b/palettes/food/apple-red/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "apple-red"; /** * Register the apple-red palette - * @param engine + * @param engine - The engine to load the shape in */ export async function loadAppleRedPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/apple/CHANGELOG.md b/palettes/food/apple/CHANGELOG.md index a762c71989f..968f20ea1fc 100644 --- a/palettes/food/apple/CHANGELOG.md +++ b/palettes/food/apple/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-apple diff --git a/palettes/food/apple/README.md b/palettes/food/apple/README.md index 679a452dd19..4ae64a2d75e 100644 --- a/palettes/food/apple/README.md +++ b/palettes/food/apple/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/apple/package.dist.json b/palettes/food/apple/package.dist.json index b550b98d4b3..aa7eb9a614b 100644 --- a/palettes/food/apple/package.dist.json +++ b/palettes/food/apple/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/apple/package.json b/palettes/food/apple/package.json index 0b617fddd59..d4a4bd7804b 100644 --- a/palettes/food/apple/package.json +++ b/palettes/food/apple/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-apple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles apple palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/apple/src/index.lazy.ts b/palettes/food/apple/src/index.lazy.ts index 12d9b30835f..6def788b296 100644 --- a/palettes/food/apple/src/index.lazy.ts +++ b/palettes/food/apple/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "apple"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadApplePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/apple/src/index.ts b/palettes/food/apple/src/index.ts index 51337f8e328..cba52516ccf 100644 --- a/palettes/food/apple/src/index.ts +++ b/palettes/food/apple/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "apple"; /** * Register the apple palette only. Red/Green variants live in their own packages. - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadApplePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/avocado/CHANGELOG.md b/palettes/food/avocado/CHANGELOG.md index 01c496fdc0f..8f8c5f702a8 100644 --- a/palettes/food/avocado/CHANGELOG.md +++ b/palettes/food/avocado/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-avocado diff --git a/palettes/food/avocado/README.md b/palettes/food/avocado/README.md index 8641e0007fb..e693c3c4887 100644 --- a/palettes/food/avocado/README.md +++ b/palettes/food/avocado/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/avocado/package.dist.json b/palettes/food/avocado/package.dist.json index 9217fac2516..aaf651457b2 100644 --- a/palettes/food/avocado/package.dist.json +++ b/palettes/food/avocado/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-avocado", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles avocado palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/avocado/package.json b/palettes/food/avocado/package.json index 658bb22a3f4..ab17d687573 100644 --- a/palettes/food/avocado/package.json +++ b/palettes/food/avocado/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-avocado", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles avocado palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/avocado/src/index.lazy.ts b/palettes/food/avocado/src/index.lazy.ts index 9f291e8ef4a..788c04b95b7 100644 --- a/palettes/food/avocado/src/index.lazy.ts +++ b/palettes/food/avocado/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "avocado"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadAvocadoPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/avocado/src/index.ts b/palettes/food/avocado/src/index.ts index ace8fef6ca5..d96f60d9606 100644 --- a/palettes/food/avocado/src/index.ts +++ b/palettes/food/avocado/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "avocado"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadAvocadoPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/bell-peppers/CHANGELOG.md b/palettes/food/bell-peppers/CHANGELOG.md index 889cd3d41cd..373fc709c3e 100644 --- a/palettes/food/bell-peppers/CHANGELOG.md +++ b/palettes/food/bell-peppers/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bell-peppers diff --git a/palettes/food/bell-peppers/README.md b/palettes/food/bell-peppers/README.md index b6e9f4b38b3..854cea6817a 100644 --- a/palettes/food/bell-peppers/README.md +++ b/palettes/food/bell-peppers/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/bell-peppers/package.dist.json b/palettes/food/bell-peppers/package.dist.json index 7a349591f66..588b0ab4bb6 100644 --- a/palettes/food/bell-peppers/package.dist.json +++ b/palettes/food/bell-peppers/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bell-peppers", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bell peppers palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/bell-peppers/package.json b/palettes/food/bell-peppers/package.json index 834ca2626aa..84ffdcaad5b 100644 --- a/palettes/food/bell-peppers/package.json +++ b/palettes/food/bell-peppers/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bell-peppers", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bell peppers palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/bell-peppers/src/index.lazy.ts b/palettes/food/bell-peppers/src/index.lazy.ts index d744aaadfd2..0f83a76b309 100644 --- a/palettes/food/bell-peppers/src/index.lazy.ts +++ b/palettes/food/bell-peppers/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "bell-peppers"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadBellPeppersPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/bell-peppers/src/index.ts b/palettes/food/bell-peppers/src/index.ts index ef7ba973a02..1a2ee4865c0 100644 --- a/palettes/food/bell-peppers/src/index.ts +++ b/palettes/food/bell-peppers/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "bell-peppers"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadBellPeppersPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/berries/CHANGELOG.md b/palettes/food/berries/CHANGELOG.md index 34a0598b234..b274fbc1864 100644 --- a/palettes/food/berries/CHANGELOG.md +++ b/palettes/food/berries/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-berries diff --git a/palettes/food/berries/README.md b/palettes/food/berries/README.md index 91e1c9f9d41..212c3b7584a 100644 --- a/palettes/food/berries/README.md +++ b/palettes/food/berries/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/berries/package.dist.json b/palettes/food/berries/package.dist.json index 4d379ede140..c383621ba73 100644 --- a/palettes/food/berries/package.dist.json +++ b/palettes/food/berries/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-berries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles berries palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/berries/package.json b/palettes/food/berries/package.json index 14333c5c8a5..540a8ad3b85 100644 --- a/palettes/food/berries/package.json +++ b/palettes/food/berries/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-berries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles berries palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/berries/src/index.lazy.ts b/palettes/food/berries/src/index.lazy.ts index 83d08a8f7a8..377bd8677db 100644 --- a/palettes/food/berries/src/index.lazy.ts +++ b/palettes/food/berries/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "berries"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadBerriesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/berries/src/index.ts b/palettes/food/berries/src/index.ts index 174dad90e31..d7525c3bae9 100644 --- a/palettes/food/berries/src/index.ts +++ b/palettes/food/berries/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "berries"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadBerriesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/cherry/CHANGELOG.md b/palettes/food/cherry/CHANGELOG.md index 309a344b34f..638d15304f6 100644 --- a/palettes/food/cherry/CHANGELOG.md +++ b/palettes/food/cherry/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-cherry diff --git a/palettes/food/cherry/README.md b/palettes/food/cherry/README.md index a3315f24ac3..61c310f986e 100644 --- a/palettes/food/cherry/README.md +++ b/palettes/food/cherry/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/cherry/package.dist.json b/palettes/food/cherry/package.dist.json index 78e68f39310..f3a7865201f 100644 --- a/palettes/food/cherry/package.dist.json +++ b/palettes/food/cherry/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cherry", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cherry palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/cherry/package.json b/palettes/food/cherry/package.json index 4b73561acc2..909a83632df 100644 --- a/palettes/food/cherry/package.json +++ b/palettes/food/cherry/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cherry", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cherry palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/cherry/src/index.lazy.ts b/palettes/food/cherry/src/index.lazy.ts index bd6ef3f086a..c592e42f203 100644 --- a/palettes/food/cherry/src/index.lazy.ts +++ b/palettes/food/cherry/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "cherry"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadCherryPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/cherry/src/index.ts b/palettes/food/cherry/src/index.ts index 6cc16d90cb6..3f436cc6bce 100644 --- a/palettes/food/cherry/src/index.ts +++ b/palettes/food/cherry/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "cherry"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadCherryPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/citrus-twist/CHANGELOG.md b/palettes/food/citrus-twist/CHANGELOG.md index bb09007a882..5e16ec42728 100644 --- a/palettes/food/citrus-twist/CHANGELOG.md +++ b/palettes/food/citrus-twist/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-citrus-twist diff --git a/palettes/food/citrus-twist/README.md b/palettes/food/citrus-twist/README.md index 7fb5a339edc..82b52ae46be 100644 --- a/palettes/food/citrus-twist/README.md +++ b/palettes/food/citrus-twist/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/citrus-twist/package.dist.json b/palettes/food/citrus-twist/package.dist.json index 9ae51949a38..dd3095244e8 100644 --- a/palettes/food/citrus-twist/package.dist.json +++ b/palettes/food/citrus-twist/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-citrus-twist", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles citrus twist palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/citrus-twist/package.json b/palettes/food/citrus-twist/package.json index b0f1dea3ed2..4ca7b6d5d02 100644 --- a/palettes/food/citrus-twist/package.json +++ b/palettes/food/citrus-twist/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-citrus-twist", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles citrus twist palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/citrus-twist/src/index.lazy.ts b/palettes/food/citrus-twist/src/index.lazy.ts index 8c485741132..40168d5ee00 100644 --- a/palettes/food/citrus-twist/src/index.lazy.ts +++ b/palettes/food/citrus-twist/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "citrus-twist"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadCitrusTwistPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/citrus-twist/src/index.ts b/palettes/food/citrus-twist/src/index.ts index 5324a53d42b..696a03919db 100644 --- a/palettes/food/citrus-twist/src/index.ts +++ b/palettes/food/citrus-twist/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "citrus-twist"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadCitrusTwistPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/gingerbread-house/CHANGELOG.md b/palettes/food/gingerbread-house/CHANGELOG.md index c9cd1903fc7..8d711ea424a 100644 --- a/palettes/food/gingerbread-house/CHANGELOG.md +++ b/palettes/food/gingerbread-house/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-gingerbread-house diff --git a/palettes/food/gingerbread-house/README.md b/palettes/food/gingerbread-house/README.md index f4d51ef2501..9c42ebd344c 100644 --- a/palettes/food/gingerbread-house/README.md +++ b/palettes/food/gingerbread-house/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/gingerbread-house/package.dist.json b/palettes/food/gingerbread-house/package.dist.json index ca50909333f..656e39e1569 100644 --- a/palettes/food/gingerbread-house/package.dist.json +++ b/palettes/food/gingerbread-house/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-gingerbread-house", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles gingerbread house palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/gingerbread-house/package.json b/palettes/food/gingerbread-house/package.json index 29b488a64f8..e6de3571b76 100644 --- a/palettes/food/gingerbread-house/package.json +++ b/palettes/food/gingerbread-house/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-gingerbread-house", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles gingerbread house palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/gingerbread-house/src/index.lazy.ts b/palettes/food/gingerbread-house/src/index.lazy.ts index dce90f36ea4..4bfaa06deb5 100644 --- a/palettes/food/gingerbread-house/src/index.lazy.ts +++ b/palettes/food/gingerbread-house/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "gingerbread-house"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadGingerbreadHousePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/gingerbread-house/src/index.ts b/palettes/food/gingerbread-house/src/index.ts index fdaff525fe1..1d0859e93fa 100644 --- a/palettes/food/gingerbread-house/src/index.ts +++ b/palettes/food/gingerbread-house/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "gingerbread-house"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadGingerbreadHousePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/grapes/CHANGELOG.md b/palettes/food/grapes/CHANGELOG.md index 90b2499dce4..6d16cd16307 100644 --- a/palettes/food/grapes/CHANGELOG.md +++ b/palettes/food/grapes/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-grapes diff --git a/palettes/food/grapes/README.md b/palettes/food/grapes/README.md index 9fc6c27ebdc..0d6ef5f3652 100644 --- a/palettes/food/grapes/README.md +++ b/palettes/food/grapes/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/grapes/package.dist.json b/palettes/food/grapes/package.dist.json index 955e70c5749..e3e12c8e5ca 100644 --- a/palettes/food/grapes/package.dist.json +++ b/palettes/food/grapes/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-grapes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles grapes palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/grapes/package.json b/palettes/food/grapes/package.json index b9b79fb819d..bba9c344945 100644 --- a/palettes/food/grapes/package.json +++ b/palettes/food/grapes/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-grapes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles grapes palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/grapes/src/index.lazy.ts b/palettes/food/grapes/src/index.lazy.ts index 1c09b0be1cf..aef71f7a05e 100644 --- a/palettes/food/grapes/src/index.lazy.ts +++ b/palettes/food/grapes/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "grapes"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadGrapesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/grapes/src/index.ts b/palettes/food/grapes/src/index.ts index a348a300bff..28fa849a0b9 100644 --- a/palettes/food/grapes/src/index.ts +++ b/palettes/food/grapes/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "grapes"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadGrapesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/macaron/CHANGELOG.md b/palettes/food/macaron/CHANGELOG.md index 072062ca7d7..5bd85f82d23 100644 --- a/palettes/food/macaron/CHANGELOG.md +++ b/palettes/food/macaron/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-macaron diff --git a/palettes/food/macaron/README.md b/palettes/food/macaron/README.md index b0707d47653..26ac8f150c6 100644 --- a/palettes/food/macaron/README.md +++ b/palettes/food/macaron/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/macaron/package.dist.json b/palettes/food/macaron/package.dist.json index c41d4c0182c..710dd6d5901 100644 --- a/palettes/food/macaron/package.dist.json +++ b/palettes/food/macaron/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-macaron", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles macaron palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/macaron/package.json b/palettes/food/macaron/package.json index 6648adc8ab0..75eb80b5dba 100644 --- a/palettes/food/macaron/package.json +++ b/palettes/food/macaron/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-macaron", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles macaron palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/macaron/src/index.lazy.ts b/palettes/food/macaron/src/index.lazy.ts index 011f617230d..a742a5b64ff 100644 --- a/palettes/food/macaron/src/index.lazy.ts +++ b/palettes/food/macaron/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "macaron"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMacaronPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/macaron/src/index.ts b/palettes/food/macaron/src/index.ts index af6c1aaa935..ddb4ce4dc3c 100644 --- a/palettes/food/macaron/src/index.ts +++ b/palettes/food/macaron/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "macaron"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMacaronPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/melon/CHANGELOG.md b/palettes/food/melon/CHANGELOG.md index 51efe9924cf..c03099d5ad7 100644 --- a/palettes/food/melon/CHANGELOG.md +++ b/palettes/food/melon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-melon diff --git a/palettes/food/melon/README.md b/palettes/food/melon/README.md index 27b3e51924e..412d64fb742 100644 --- a/palettes/food/melon/README.md +++ b/palettes/food/melon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/melon/package.dist.json b/palettes/food/melon/package.dist.json index ccfd557e08e..dbc1fc365f2 100644 --- a/palettes/food/melon/package.dist.json +++ b/palettes/food/melon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-melon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles melon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/melon/package.json b/palettes/food/melon/package.json index bacc401cc82..c66a086fb4c 100644 --- a/palettes/food/melon/package.json +++ b/palettes/food/melon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-melon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles melon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/melon/src/index.lazy.ts b/palettes/food/melon/src/index.lazy.ts index 23bc11da8a0..0fb63c6660e 100644 --- a/palettes/food/melon/src/index.lazy.ts +++ b/palettes/food/melon/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "melon"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMelonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/melon/src/index.ts b/palettes/food/melon/src/index.ts index 9062b21d202..b1425a118a7 100644 --- a/palettes/food/melon/src/index.ts +++ b/palettes/food/melon/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "melon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMelonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/pineapple/CHANGELOG.md b/palettes/food/pineapple/CHANGELOG.md index a53b82ffac4..88e320cc474 100644 --- a/palettes/food/pineapple/CHANGELOG.md +++ b/palettes/food/pineapple/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pineapple diff --git a/palettes/food/pineapple/README.md b/palettes/food/pineapple/README.md index 1f7e2c2b8b6..aae33817e63 100644 --- a/palettes/food/pineapple/README.md +++ b/palettes/food/pineapple/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/pineapple/package.dist.json b/palettes/food/pineapple/package.dist.json index 30d3a3f4900..23852add717 100644 --- a/palettes/food/pineapple/package.dist.json +++ b/palettes/food/pineapple/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pineapple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pineapple palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/pineapple/package.json b/palettes/food/pineapple/package.json index d927d3be598..129f98c97ac 100644 --- a/palettes/food/pineapple/package.json +++ b/palettes/food/pineapple/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pineapple", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pineapple palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/pineapple/src/index.lazy.ts b/palettes/food/pineapple/src/index.lazy.ts index 3abb043cda2..e2fab47f7c2 100644 --- a/palettes/food/pineapple/src/index.lazy.ts +++ b/palettes/food/pineapple/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "pineapple"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPineapplePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/pineapple/src/index.ts b/palettes/food/pineapple/src/index.ts index 8799acafc44..c9c123d1698 100644 --- a/palettes/food/pineapple/src/index.ts +++ b/palettes/food/pineapple/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "pineapple"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPineapplePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/pizza/CHANGELOG.md b/palettes/food/pizza/CHANGELOG.md index a44d212aa59..d485b305478 100644 --- a/palettes/food/pizza/CHANGELOG.md +++ b/palettes/food/pizza/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pizza diff --git a/palettes/food/pizza/README.md b/palettes/food/pizza/README.md index ff6bb3b7d3e..db0356974c6 100644 --- a/palettes/food/pizza/README.md +++ b/palettes/food/pizza/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/pizza/package.dist.json b/palettes/food/pizza/package.dist.json index 97fd55c951a..c4740369887 100644 --- a/palettes/food/pizza/package.dist.json +++ b/palettes/food/pizza/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pizza", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pizza palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/pizza/package.json b/palettes/food/pizza/package.json index c432d8d1b1d..3f7644a474d 100644 --- a/palettes/food/pizza/package.json +++ b/palettes/food/pizza/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pizza", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pizza palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/pizza/src/index.lazy.ts b/palettes/food/pizza/src/index.lazy.ts index 66c095e550a..70c2edca840 100644 --- a/palettes/food/pizza/src/index.lazy.ts +++ b/palettes/food/pizza/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "pizza"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPizzaPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/pizza/src/index.ts b/palettes/food/pizza/src/index.ts index f49128fffc3..d39286a0be9 100644 --- a/palettes/food/pizza/src/index.ts +++ b/palettes/food/pizza/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "pizza"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPizzaPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/sakura/CHANGELOG.md b/palettes/food/sakura/CHANGELOG.md index 8a5eb3453cb..50c0716600c 100644 --- a/palettes/food/sakura/CHANGELOG.md +++ b/palettes/food/sakura/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-sakura diff --git a/palettes/food/sakura/README.md b/palettes/food/sakura/README.md index bc79c3e13b0..7ce00554479 100644 --- a/palettes/food/sakura/README.md +++ b/palettes/food/sakura/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/sakura/package.dist.json b/palettes/food/sakura/package.dist.json index 2e71b021fdd..0de2cba9319 100644 --- a/palettes/food/sakura/package.dist.json +++ b/palettes/food/sakura/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sakura", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sakura palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/sakura/package.json b/palettes/food/sakura/package.json index ac46a145a9a..73de5f633bc 100644 --- a/palettes/food/sakura/package.json +++ b/palettes/food/sakura/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sakura", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sakura palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/sakura/src/index.lazy.ts b/palettes/food/sakura/src/index.lazy.ts index 55d24750c7e..fb63d1d9f12 100644 --- a/palettes/food/sakura/src/index.lazy.ts +++ b/palettes/food/sakura/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "sakura"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSakuraPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/sakura/src/index.ts b/palettes/food/sakura/src/index.ts index 510806f1d3f..85ce2084f72 100644 --- a/palettes/food/sakura/src/index.ts +++ b/palettes/food/sakura/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "sakura"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSakuraPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/salad/CHANGELOG.md b/palettes/food/salad/CHANGELOG.md index a175fb90e2c..3ab6d0776ac 100644 --- a/palettes/food/salad/CHANGELOG.md +++ b/palettes/food/salad/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-salad diff --git a/palettes/food/salad/README.md b/palettes/food/salad/README.md index 303b142ef43..0fb8fcb6562 100644 --- a/palettes/food/salad/README.md +++ b/palettes/food/salad/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/salad/package.dist.json b/palettes/food/salad/package.dist.json index a6848f06c58..5e42c1aeabe 100644 --- a/palettes/food/salad/package.dist.json +++ b/palettes/food/salad/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-salad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles salad palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/salad/package.json b/palettes/food/salad/package.json index 60f096b42fc..4b444450109 100644 --- a/palettes/food/salad/package.json +++ b/palettes/food/salad/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-salad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles salad palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/salad/src/index.lazy.ts b/palettes/food/salad/src/index.lazy.ts index 3b5a59d2edb..93d4618e77a 100644 --- a/palettes/food/salad/src/index.lazy.ts +++ b/palettes/food/salad/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "salad"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSaladPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/salad/src/index.ts b/palettes/food/salad/src/index.ts index a1e8413d414..9dba1b0df0d 100644 --- a/palettes/food/salad/src/index.ts +++ b/palettes/food/salad/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "salad"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSaladPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/spice-rack/CHANGELOG.md b/palettes/food/spice-rack/CHANGELOG.md index 89cfb10fe2a..998189b67d2 100644 --- a/palettes/food/spice-rack/CHANGELOG.md +++ b/palettes/food/spice-rack/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-spice-rack diff --git a/palettes/food/spice-rack/README.md b/palettes/food/spice-rack/README.md index 1088f3b6b17..66958a0385d 100644 --- a/palettes/food/spice-rack/README.md +++ b/palettes/food/spice-rack/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/spice-rack/package.dist.json b/palettes/food/spice-rack/package.dist.json index e804f4cab28..55bba9b96ca 100644 --- a/palettes/food/spice-rack/package.dist.json +++ b/palettes/food/spice-rack/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-spice-rack", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spice rack palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/spice-rack/package.json b/palettes/food/spice-rack/package.json index d7140b055e9..ee6ba766eb0 100644 --- a/palettes/food/spice-rack/package.json +++ b/palettes/food/spice-rack/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-spice-rack", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spice rack palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/spice-rack/src/index.lazy.ts b/palettes/food/spice-rack/src/index.lazy.ts index e6e4bc3a640..a8fbec6f8dd 100644 --- a/palettes/food/spice-rack/src/index.lazy.ts +++ b/palettes/food/spice-rack/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "spice-rack"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSpiceRackPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/spice-rack/src/index.ts b/palettes/food/spice-rack/src/index.ts index 5538bdbae4e..3601bbca1db 100644 --- a/palettes/food/spice-rack/src/index.ts +++ b/palettes/food/spice-rack/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "spice-rack"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSpiceRackPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/steak/CHANGELOG.md b/palettes/food/steak/CHANGELOG.md index 59081c89a51..d06edacf491 100644 --- a/palettes/food/steak/CHANGELOG.md +++ b/palettes/food/steak/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-steak diff --git a/palettes/food/steak/README.md b/palettes/food/steak/README.md index daf957170e6..d81852bc438 100644 --- a/palettes/food/steak/README.md +++ b/palettes/food/steak/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/steak/package.dist.json b/palettes/food/steak/package.dist.json index 9b29faaa1ae..1237b206201 100644 --- a/palettes/food/steak/package.dist.json +++ b/palettes/food/steak/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-steak", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles steak palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/steak/package.json b/palettes/food/steak/package.json index e3ac34e136d..ad2abe0f89e 100644 --- a/palettes/food/steak/package.json +++ b/palettes/food/steak/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-steak", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles steak palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/steak/src/index.lazy.ts b/palettes/food/steak/src/index.lazy.ts index b019e900a1e..8384a304496 100644 --- a/palettes/food/steak/src/index.lazy.ts +++ b/palettes/food/steak/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "steak"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSteakPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/steak/src/index.ts b/palettes/food/steak/src/index.ts index a689c823ef6..d6b13654c41 100644 --- a/palettes/food/steak/src/index.ts +++ b/palettes/food/steak/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "steak"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSteakPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/sushi/CHANGELOG.md b/palettes/food/sushi/CHANGELOG.md index 2efe52290d9..fddcba2527b 100644 --- a/palettes/food/sushi/CHANGELOG.md +++ b/palettes/food/sushi/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-sushi diff --git a/palettes/food/sushi/README.md b/palettes/food/sushi/README.md index 3a6e22c18f0..79936a1d8a0 100644 --- a/palettes/food/sushi/README.md +++ b/palettes/food/sushi/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/sushi/package.dist.json b/palettes/food/sushi/package.dist.json index 0b937775e4b..ec49616e941 100644 --- a/palettes/food/sushi/package.dist.json +++ b/palettes/food/sushi/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sushi", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sushi palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/sushi/package.json b/palettes/food/sushi/package.json index 951d36665aa..fac7b44e077 100644 --- a/palettes/food/sushi/package.json +++ b/palettes/food/sushi/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-sushi", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sushi palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/sushi/src/index.lazy.ts b/palettes/food/sushi/src/index.lazy.ts index 419b76b9db5..709bb11029c 100644 --- a/palettes/food/sushi/src/index.lazy.ts +++ b/palettes/food/sushi/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "sushi"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSushiPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/sushi/src/index.ts b/palettes/food/sushi/src/index.ts index 63394bc9df6..1bf55e39d64 100644 --- a/palettes/food/sushi/src/index.ts +++ b/palettes/food/sushi/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "sushi"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSushiPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/tropical-fruits/CHANGELOG.md b/palettes/food/tropical-fruits/CHANGELOG.md index f9ceb95a87a..46c383f316c 100644 --- a/palettes/food/tropical-fruits/CHANGELOG.md +++ b/palettes/food/tropical-fruits/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-tropical-fruits diff --git a/palettes/food/tropical-fruits/README.md b/palettes/food/tropical-fruits/README.md index 36b2392ce4d..4ea3a7a4fd4 100644 --- a/palettes/food/tropical-fruits/README.md +++ b/palettes/food/tropical-fruits/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/tropical-fruits/package.dist.json b/palettes/food/tropical-fruits/package.dist.json index d53fecdce9d..9781f2a7dd5 100644 --- a/palettes/food/tropical-fruits/package.dist.json +++ b/palettes/food/tropical-fruits/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-tropical-fruits", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles tropical fruits palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/tropical-fruits/package.json b/palettes/food/tropical-fruits/package.json index 5c85cd8d914..b3a0fd1ad72 100644 --- a/palettes/food/tropical-fruits/package.json +++ b/palettes/food/tropical-fruits/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-tropical-fruits", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles tropical fruits palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/tropical-fruits/src/index.lazy.ts b/palettes/food/tropical-fruits/src/index.lazy.ts index 500ee181f7f..e61fb3e5b2b 100644 --- a/palettes/food/tropical-fruits/src/index.lazy.ts +++ b/palettes/food/tropical-fruits/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "tropical-fruits"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadTropicalFruitsPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/tropical-fruits/src/index.ts b/palettes/food/tropical-fruits/src/index.ts index d6b53c5b8a7..f25396ee13b 100644 --- a/palettes/food/tropical-fruits/src/index.ts +++ b/palettes/food/tropical-fruits/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "tropical-fruits"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadTropicalFruitsPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/food/watermelon/CHANGELOG.md b/palettes/food/watermelon/CHANGELOG.md index a6b51291af9..a6033aadaa9 100644 --- a/palettes/food/watermelon/CHANGELOG.md +++ b/palettes/food/watermelon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-watermelon diff --git a/palettes/food/watermelon/README.md b/palettes/food/watermelon/README.md index 68ef45a5d28..a08f9adad49 100644 --- a/palettes/food/watermelon/README.md +++ b/palettes/food/watermelon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/food/watermelon/package.dist.json b/palettes/food/watermelon/package.dist.json index 3325bc3fd26..d24d50b05cd 100644 --- a/palettes/food/watermelon/package.dist.json +++ b/palettes/food/watermelon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-watermelon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles watermelon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/food/watermelon/package.json b/palettes/food/watermelon/package.json index 68bca321dea..8d045a2b50c 100644 --- a/palettes/food/watermelon/package.json +++ b/palettes/food/watermelon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-watermelon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles watermelon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/food/watermelon/src/index.lazy.ts b/palettes/food/watermelon/src/index.lazy.ts index 37090a8a4e6..dcf18c8276f 100644 --- a/palettes/food/watermelon/src/index.lazy.ts +++ b/palettes/food/watermelon/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "watermelon"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadWatermelonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/food/watermelon/src/index.ts b/palettes/food/watermelon/src/index.ts index 8df8c92d139..ca8465999fd 100644 --- a/palettes/food/watermelon/src/index.ts +++ b/palettes/food/watermelon/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "watermelon"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadWatermelonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/gaming/minecraft/CHANGELOG.md b/palettes/gaming/minecraft/CHANGELOG.md index 00b5cbb80b1..15967e62ea2 100644 --- a/palettes/gaming/minecraft/CHANGELOG.md +++ b/palettes/gaming/minecraft/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-minecraft diff --git a/palettes/gaming/minecraft/README.md b/palettes/gaming/minecraft/README.md index ad6a5d857ff..df6b3f99e1a 100644 --- a/palettes/gaming/minecraft/README.md +++ b/palettes/gaming/minecraft/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/gaming/minecraft/package.dist.json b/palettes/gaming/minecraft/package.dist.json index 17a955e8ac9..5dcb62b99bf 100644 --- a/palettes/gaming/minecraft/package.dist.json +++ b/palettes/gaming/minecraft/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-minecraft", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles minecraft palette", "homepage": "https://particles.js.org", "repository": { @@ -108,7 +108,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-palette-minecraft.min.js", diff --git a/palettes/gaming/minecraft/package.json b/palettes/gaming/minecraft/package.json index f9c4fb9fed9..7676925a8a8 100644 --- a/palettes/gaming/minecraft/package.json +++ b/palettes/gaming/minecraft/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-minecraft", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles minecraft palette", "homepage": "https://particles.js.org", "scripts": { @@ -124,7 +124,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/gaming/minecraft/src/index.lazy.ts b/palettes/gaming/minecraft/src/index.lazy.ts index d3e01cb47bd..e87f286fb0c 100644 --- a/palettes/gaming/minecraft/src/index.lazy.ts +++ b/palettes/gaming/minecraft/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "minecraft"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMinecraftPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/gaming/minecraft/src/index.ts b/palettes/gaming/minecraft/src/index.ts index a5237e51746..d0d20b6611d 100644 --- a/palettes/gaming/minecraft/src/index.ts +++ b/palettes/gaming/minecraft/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "minecraft"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadMinecraftPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/gaming/pacman/CHANGELOG.md b/palettes/gaming/pacman/CHANGELOG.md index ce6319cb188..70f9db66dbd 100644 --- a/palettes/gaming/pacman/CHANGELOG.md +++ b/palettes/gaming/pacman/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pacman diff --git a/palettes/gaming/pacman/README.md b/palettes/gaming/pacman/README.md index dd69a536a86..853a8c860e0 100644 --- a/palettes/gaming/pacman/README.md +++ b/palettes/gaming/pacman/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/gaming/pacman/package.dist.json b/palettes/gaming/pacman/package.dist.json index 597b22a74d1..e03c08708c0 100644 --- a/palettes/gaming/pacman/package.dist.json +++ b/palettes/gaming/pacman/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pacman", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pacman palette", "homepage": "https://particles.js.org", "repository": { @@ -108,7 +108,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-palette-pacman.min.js", diff --git a/palettes/gaming/pacman/package.json b/palettes/gaming/pacman/package.json index a2b0ddba577..8467ef277b0 100644 --- a/palettes/gaming/pacman/package.json +++ b/palettes/gaming/pacman/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pacman", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pacman palette", "homepage": "https://particles.js.org", "scripts": { @@ -124,7 +124,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/gaming/pacman/src/index.lazy.ts b/palettes/gaming/pacman/src/index.lazy.ts index 814e16efe7a..e4ad1c92bdb 100644 --- a/palettes/gaming/pacman/src/index.lazy.ts +++ b/palettes/gaming/pacman/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "pacman"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPacmanPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/gaming/pacman/src/index.ts b/palettes/gaming/pacman/src/index.ts index 6bd438f946f..1e467621c0b 100644 --- a/palettes/gaming/pacman/src/index.ts +++ b/palettes/gaming/pacman/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "pacman"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadPacmanPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/gaming/superMarioBros/CHANGELOG.md b/palettes/gaming/superMarioBros/CHANGELOG.md index f0fa6cfe140..134ede01de6 100644 --- a/palettes/gaming/superMarioBros/CHANGELOG.md +++ b/palettes/gaming/superMarioBros/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-super-mario-bros diff --git a/palettes/gaming/superMarioBros/README.md b/palettes/gaming/superMarioBros/README.md index 6ed17a8dd35..71cd7072a84 100644 --- a/palettes/gaming/superMarioBros/README.md +++ b/palettes/gaming/superMarioBros/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/gaming/superMarioBros/package.dist.json b/palettes/gaming/superMarioBros/package.dist.json index cb6decfaac1..1679e9c6bc5 100644 --- a/palettes/gaming/superMarioBros/package.dist.json +++ b/palettes/gaming/superMarioBros/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-super-mario-bros", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles super mario bros palette", "homepage": "https://particles.js.org", "repository": { @@ -108,7 +108,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-palette-super-mario-bros.min.js", diff --git a/palettes/gaming/superMarioBros/package.json b/palettes/gaming/superMarioBros/package.json index 3d83222c1e2..6e612cbed5a 100644 --- a/palettes/gaming/superMarioBros/package.json +++ b/palettes/gaming/superMarioBros/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-super-mario-bros", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles super mario bros palette", "homepage": "https://particles.js.org", "scripts": { @@ -124,7 +124,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/gaming/superMarioBros/src/index.lazy.ts b/palettes/gaming/superMarioBros/src/index.lazy.ts index 912e1539efd..c9f3dee5303 100644 --- a/palettes/gaming/superMarioBros/src/index.lazy.ts +++ b/palettes/gaming/superMarioBros/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "super-mario-bros"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSuperMarioBrosPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/gaming/superMarioBros/src/index.ts b/palettes/gaming/superMarioBros/src/index.ts index ce921c3c542..1e28fee7962 100644 --- a/palettes/gaming/superMarioBros/src/index.ts +++ b/palettes/gaming/superMarioBros/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "super-mario-bros"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadSuperMarioBrosPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/gaming/tetris/CHANGELOG.md b/palettes/gaming/tetris/CHANGELOG.md index 0d5426a185c..6afa9854c85 100644 --- a/palettes/gaming/tetris/CHANGELOG.md +++ b/palettes/gaming/tetris/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-tetris diff --git a/palettes/gaming/tetris/package.dist.json b/palettes/gaming/tetris/package.dist.json index 4ffbdb39aa2..1c07d058add 100644 --- a/palettes/gaming/tetris/package.dist.json +++ b/palettes/gaming/tetris/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-tetris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles tetris palette", "homepage": "https://particles.js.org", "repository": { @@ -108,7 +108,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-palette-tetris.min.js", diff --git a/palettes/gaming/tetris/package.json b/palettes/gaming/tetris/package.json index 5c7179682c4..928716e30c0 100644 --- a/palettes/gaming/tetris/package.json +++ b/palettes/gaming/tetris/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-tetris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles tetris palette", "homepage": "https://particles.js.org", "scripts": { @@ -124,7 +124,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/gaming/tetris/src/index.lazy.ts b/palettes/gaming/tetris/src/index.lazy.ts index ebfa70bb9c6..ada259005d6 100644 --- a/palettes/gaming/tetris/src/index.lazy.ts +++ b/palettes/gaming/tetris/src/index.lazy.ts @@ -4,7 +4,7 @@ const paletteName = "tetris"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadTetrisPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/gaming/tetris/src/index.ts b/palettes/gaming/tetris/src/index.ts index 98ce329dec5..ed4dcbca4fb 100644 --- a/palettes/gaming/tetris/src/index.ts +++ b/palettes/gaming/tetris/src/index.ts @@ -5,7 +5,7 @@ const paletteName = "tetris"; /** * - * @param engine + * @param engine - The engine to load the shape in */ export async function loadTetrisPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/bulletHit/CHANGELOG.md b/palettes/impact/bulletHit/CHANGELOG.md index 64919a8e3c2..3d002aba6bb 100644 --- a/palettes/impact/bulletHit/CHANGELOG.md +++ b/palettes/impact/bulletHit/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bullet-hit diff --git a/palettes/impact/bulletHit/README.md b/palettes/impact/bulletHit/README.md index eaef3ac3132..0c0f4ff8994 100644 --- a/palettes/impact/bulletHit/README.md +++ b/palettes/impact/bulletHit/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/bulletHit/package.dist.json b/palettes/impact/bulletHit/package.dist.json index b0d786e1e81..2423ae29ece 100644 --- a/palettes/impact/bulletHit/package.dist.json +++ b/palettes/impact/bulletHit/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bullet-hit", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bullet hit impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/bulletHit/package.json b/palettes/impact/bulletHit/package.json index 032a12567a1..7adb9bd2394 100644 --- a/palettes/impact/bulletHit/package.json +++ b/palettes/impact/bulletHit/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bullet-hit", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bullet hit impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/bulletHit/src/index.lazy.ts b/palettes/impact/bulletHit/src/index.lazy.ts index c8e428c28fa..d2ff900e135 100644 --- a/palettes/impact/bulletHit/src/index.lazy.ts +++ b/palettes/impact/bulletHit/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "bullet-hit"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBulletHitPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/bulletHit/src/index.ts b/palettes/impact/bulletHit/src/index.ts index b52238502b1..9dc0dc7a980 100644 --- a/palettes/impact/bulletHit/src/index.ts +++ b/palettes/impact/bulletHit/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "bullet-hit"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBulletHitPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/explosionDebris/CHANGELOG.md b/palettes/impact/explosionDebris/CHANGELOG.md index bb57c66b5c3..a8de86fa974 100644 --- a/palettes/impact/explosionDebris/CHANGELOG.md +++ b/palettes/impact/explosionDebris/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-explosion-debris diff --git a/palettes/impact/explosionDebris/README.md b/palettes/impact/explosionDebris/README.md index f870b179ff4..1f29ac1bbb2 100644 --- a/palettes/impact/explosionDebris/README.md +++ b/palettes/impact/explosionDebris/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/explosionDebris/package.dist.json b/palettes/impact/explosionDebris/package.dist.json index db7a745fbf1..6378449785d 100644 --- a/palettes/impact/explosionDebris/package.dist.json +++ b/palettes/impact/explosionDebris/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-explosion-debris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles explosion - debris palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/explosionDebris/package.json b/palettes/impact/explosionDebris/package.json index 1f53218a63a..abdec41aa13 100644 --- a/palettes/impact/explosionDebris/package.json +++ b/palettes/impact/explosionDebris/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-explosion-debris", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles explosion - debris palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/explosionDebris/src/index.lazy.ts b/palettes/impact/explosionDebris/src/index.lazy.ts index 2df205f905a..112ed8feb48 100644 --- a/palettes/impact/explosionDebris/src/index.lazy.ts +++ b/palettes/impact/explosionDebris/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "explosion-debris"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExplosionDebrisPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/explosionDebris/src/index.ts b/palettes/impact/explosionDebris/src/index.ts index 51273f9136b..b89167ccaf7 100644 --- a/palettes/impact/explosionDebris/src/index.ts +++ b/palettes/impact/explosionDebris/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "explosion-debris"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExplosionDebrisPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/glassBurst/CHANGELOG.md b/palettes/impact/glassBurst/CHANGELOG.md index 46f78f457f5..df3b391d8bc 100644 --- a/palettes/impact/glassBurst/CHANGELOG.md +++ b/palettes/impact/glassBurst/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-glass-burst diff --git a/palettes/impact/glassBurst/README.md b/palettes/impact/glassBurst/README.md index b6f9256d47f..cfe72b8370a 100644 --- a/palettes/impact/glassBurst/README.md +++ b/palettes/impact/glassBurst/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/glassBurst/package.dist.json b/palettes/impact/glassBurst/package.dist.json index 57a4098bc93..27c8b7aa904 100644 --- a/palettes/impact/glassBurst/package.dist.json +++ b/palettes/impact/glassBurst/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-glass-burst", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles glass burst impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/glassBurst/package.json b/palettes/impact/glassBurst/package.json index ae46fe014b4..295e08c940b 100644 --- a/palettes/impact/glassBurst/package.json +++ b/palettes/impact/glassBurst/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-glass-burst", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles glass burst impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/glassBurst/src/index.lazy.ts b/palettes/impact/glassBurst/src/index.lazy.ts index 1c934d2888f..a1f4030e40d 100644 --- a/palettes/impact/glassBurst/src/index.lazy.ts +++ b/palettes/impact/glassBurst/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "glass-burst"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGlassBurstPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/glassBurst/src/index.ts b/palettes/impact/glassBurst/src/index.ts index ec988e86ef9..9511ff5ce85 100644 --- a/palettes/impact/glassBurst/src/index.ts +++ b/palettes/impact/glassBurst/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "glass-burst"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGlassBurstPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/meteorImpact/CHANGELOG.md b/palettes/impact/meteorImpact/CHANGELOG.md index 8b1a60fce4d..db38d20c714 100644 --- a/palettes/impact/meteorImpact/CHANGELOG.md +++ b/palettes/impact/meteorImpact/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-meteor-impact diff --git a/palettes/impact/meteorImpact/README.md b/palettes/impact/meteorImpact/README.md index 97afb580b16..ef7bc8fa516 100644 --- a/palettes/impact/meteorImpact/README.md +++ b/palettes/impact/meteorImpact/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/meteorImpact/package.dist.json b/palettes/impact/meteorImpact/package.dist.json index e108e88bc48..57f7bdb47b1 100644 --- a/palettes/impact/meteorImpact/package.dist.json +++ b/palettes/impact/meteorImpact/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-meteor-impact", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles meteor impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/meteorImpact/package.json b/palettes/impact/meteorImpact/package.json index 43b28d3bd24..0c64dd9554b 100644 --- a/palettes/impact/meteorImpact/package.json +++ b/palettes/impact/meteorImpact/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-meteor-impact", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles meteor impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/meteorImpact/src/index.lazy.ts b/palettes/impact/meteorImpact/src/index.lazy.ts index f7b5544114d..60643d930db 100644 --- a/palettes/impact/meteorImpact/src/index.lazy.ts +++ b/palettes/impact/meteorImpact/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "meteor-impact"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMeteorImpactPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/meteorImpact/src/index.ts b/palettes/impact/meteorImpact/src/index.ts index ba0f279e695..5058aaa73db 100644 --- a/palettes/impact/meteorImpact/src/index.ts +++ b/palettes/impact/meteorImpact/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "meteor-impact"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMeteorImpactPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/nuclearGlow/CHANGELOG.md b/palettes/impact/nuclearGlow/CHANGELOG.md index 3f2fb00374d..5e3d3a2b8ab 100644 --- a/palettes/impact/nuclearGlow/CHANGELOG.md +++ b/palettes/impact/nuclearGlow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-nuclear-glow diff --git a/palettes/impact/nuclearGlow/README.md b/palettes/impact/nuclearGlow/README.md index 828931af836..0be365439e2 100644 --- a/palettes/impact/nuclearGlow/README.md +++ b/palettes/impact/nuclearGlow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/nuclearGlow/package.dist.json b/palettes/impact/nuclearGlow/package.dist.json index 719fd1fa15c..bce459b5ca3 100644 --- a/palettes/impact/nuclearGlow/package.dist.json +++ b/palettes/impact/nuclearGlow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-nuclear-glow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles nuclear glow impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/nuclearGlow/package.json b/palettes/impact/nuclearGlow/package.json index 12f30d84c2f..6d9ff77b7c1 100644 --- a/palettes/impact/nuclearGlow/package.json +++ b/palettes/impact/nuclearGlow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-nuclear-glow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles nuclear glow impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/nuclearGlow/src/index.lazy.ts b/palettes/impact/nuclearGlow/src/index.lazy.ts index 52c2b81551f..f72ef177737 100644 --- a/palettes/impact/nuclearGlow/src/index.lazy.ts +++ b/palettes/impact/nuclearGlow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "nuclear-glow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNuclearGlowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/nuclearGlow/src/index.ts b/palettes/impact/nuclearGlow/src/index.ts index b688294cc1e..4228d42f652 100644 --- a/palettes/impact/nuclearGlow/src/index.ts +++ b/palettes/impact/nuclearGlow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "nuclear-glow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNuclearGlowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/shockwaveBlast/CHANGELOG.md b/palettes/impact/shockwaveBlast/CHANGELOG.md index 6a928ffd414..b0f4ba7b38a 100644 --- a/palettes/impact/shockwaveBlast/CHANGELOG.md +++ b/palettes/impact/shockwaveBlast/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-shockwave-blast diff --git a/palettes/impact/shockwaveBlast/README.md b/palettes/impact/shockwaveBlast/README.md index 3c1089bce3d..030d766b937 100644 --- a/palettes/impact/shockwaveBlast/README.md +++ b/palettes/impact/shockwaveBlast/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/shockwaveBlast/package.dist.json b/palettes/impact/shockwaveBlast/package.dist.json index 94de1e216bb..07b043d6926 100644 --- a/palettes/impact/shockwaveBlast/package.dist.json +++ b/palettes/impact/shockwaveBlast/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-shockwave-blast", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles shockwave blast impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/shockwaveBlast/package.json b/palettes/impact/shockwaveBlast/package.json index 910a0cd472b..8d12b29d3dc 100644 --- a/palettes/impact/shockwaveBlast/package.json +++ b/palettes/impact/shockwaveBlast/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-shockwave-blast", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles shockwave blast impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/shockwaveBlast/src/index.lazy.ts b/palettes/impact/shockwaveBlast/src/index.lazy.ts index e71477eeaf5..20d98cc95ba 100644 --- a/palettes/impact/shockwaveBlast/src/index.lazy.ts +++ b/palettes/impact/shockwaveBlast/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "shockwave-blast"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShockwaveBlastPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/shockwaveBlast/src/index.ts b/palettes/impact/shockwaveBlast/src/index.ts index 0bb70cc8826..31e3d9f44d7 100644 --- a/palettes/impact/shockwaveBlast/src/index.ts +++ b/palettes/impact/shockwaveBlast/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "shockwave-blast"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadShockwaveBlastPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/impact/splatterDark/CHANGELOG.md b/palettes/impact/splatterDark/CHANGELOG.md index a6d7ceddb6a..10a402e3800 100644 --- a/palettes/impact/splatterDark/CHANGELOG.md +++ b/palettes/impact/splatterDark/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-splatter-dark diff --git a/palettes/impact/splatterDark/README.md b/palettes/impact/splatterDark/README.md index 21058d232ac..64d402bccf9 100644 --- a/palettes/impact/splatterDark/README.md +++ b/palettes/impact/splatterDark/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/impact/splatterDark/package.dist.json b/palettes/impact/splatterDark/package.dist.json index 11c9664804c..4ffb2c4eea3 100644 --- a/palettes/impact/splatterDark/package.dist.json +++ b/palettes/impact/splatterDark/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-splatter-dark", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dark splatter impact palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/impact/splatterDark/package.json b/palettes/impact/splatterDark/package.json index 722dac3a2f3..a9c46f10fd1 100644 --- a/palettes/impact/splatterDark/package.json +++ b/palettes/impact/splatterDark/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-splatter-dark", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dark splatter impact palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/impact/splatterDark/src/index.lazy.ts b/palettes/impact/splatterDark/src/index.lazy.ts index e3947d2d51f..945cb47aa24 100644 --- a/palettes/impact/splatterDark/src/index.lazy.ts +++ b/palettes/impact/splatterDark/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "splatter-dark"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSplatterDarkPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/impact/splatterDark/src/index.ts b/palettes/impact/splatterDark/src/index.ts index 40436e727f2..8b7b779cf13 100644 --- a/palettes/impact/splatterDark/src/index.ts +++ b/palettes/impact/splatterDark/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "splatter-dark"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSplatterDarkPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/blues/CHANGELOG.md b/palettes/monochromatic/blues/CHANGELOG.md index 053811fe6e0..7d3a16cee5a 100644 --- a/palettes/monochromatic/blues/CHANGELOG.md +++ b/palettes/monochromatic/blues/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-blues diff --git a/palettes/monochromatic/blues/README.md b/palettes/monochromatic/blues/README.md index 05c711b572a..d96109d7f0f 100644 --- a/palettes/monochromatic/blues/README.md +++ b/palettes/monochromatic/blues/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/blues/package.dist.json b/palettes/monochromatic/blues/package.dist.json index 5528ba3b495..a103b700be1 100644 --- a/palettes/monochromatic/blues/package.dist.json +++ b/palettes/monochromatic/blues/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-blues", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome blues palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/blues/package.json b/palettes/monochromatic/blues/package.json index 0c7592d1e42..48f36627673 100644 --- a/palettes/monochromatic/blues/package.json +++ b/palettes/monochromatic/blues/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-blues", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome blues palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/blues/src/index.lazy.ts b/palettes/monochromatic/blues/src/index.lazy.ts index 4e2d1fe92bb..1443b0e500a 100644 --- a/palettes/monochromatic/blues/src/index.lazy.ts +++ b/palettes/monochromatic/blues/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "blues"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBluesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/blues/src/index.ts b/palettes/monochromatic/blues/src/index.ts index 3eed8a9c4e5..31dbd7937b8 100644 --- a/palettes/monochromatic/blues/src/index.ts +++ b/palettes/monochromatic/blues/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "monochrome-blues"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeBluesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/brown/CHANGELOG.md b/palettes/monochromatic/brown/CHANGELOG.md index e6235aab327..f317ac41117 100644 --- a/palettes/monochromatic/brown/CHANGELOG.md +++ b/palettes/monochromatic/brown/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-brown diff --git a/palettes/monochromatic/brown/README.md b/palettes/monochromatic/brown/README.md index 45b8bbe039e..c13e242e23b 100644 --- a/palettes/monochromatic/brown/README.md +++ b/palettes/monochromatic/brown/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/brown/package.dist.json b/palettes/monochromatic/brown/package.dist.json index 0712a86cb56..0f946074657 100644 --- a/palettes/monochromatic/brown/package.dist.json +++ b/palettes/monochromatic/brown/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-brown", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome brown palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/brown/package.json b/palettes/monochromatic/brown/package.json index 269bd725995..3b1bf457621 100644 --- a/palettes/monochromatic/brown/package.json +++ b/palettes/monochromatic/brown/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-brown", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome brown palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/brown/src/index.lazy.ts b/palettes/monochromatic/brown/src/index.lazy.ts index 16f2bc467d9..77ee4f70b7e 100644 --- a/palettes/monochromatic/brown/src/index.lazy.ts +++ b/palettes/monochromatic/brown/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "brown"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBrownPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/brown/src/index.ts b/palettes/monochromatic/brown/src/index.ts index ec8fd1ebf94..0b658cb7c0b 100644 --- a/palettes/monochromatic/brown/src/index.ts +++ b/palettes/monochromatic/brown/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-brown"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeBrownPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/cyan/CHANGELOG.md b/palettes/monochromatic/cyan/CHANGELOG.md index e2af50f5a11..48e5d0c27f0 100644 --- a/palettes/monochromatic/cyan/CHANGELOG.md +++ b/palettes/monochromatic/cyan/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-cyan diff --git a/palettes/monochromatic/cyan/README.md b/palettes/monochromatic/cyan/README.md index 5a95ffa3f40..19bb425f16c 100644 --- a/palettes/monochromatic/cyan/README.md +++ b/palettes/monochromatic/cyan/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/cyan/package.dist.json b/palettes/monochromatic/cyan/package.dist.json index 6276b64d8c2..f12f765a0cb 100644 --- a/palettes/monochromatic/cyan/package.dist.json +++ b/palettes/monochromatic/cyan/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-cyan", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome cyan palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/cyan/package.json b/palettes/monochromatic/cyan/package.json index 51a379f3bfe..14ba8ff4e96 100644 --- a/palettes/monochromatic/cyan/package.json +++ b/palettes/monochromatic/cyan/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-cyan", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome cyan palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/cyan/src/index.lazy.ts b/palettes/monochromatic/cyan/src/index.lazy.ts index e10f9e954d9..a54bc0cd34a 100644 --- a/palettes/monochromatic/cyan/src/index.lazy.ts +++ b/palettes/monochromatic/cyan/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "cyan"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCyanPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/cyan/src/index.ts b/palettes/monochromatic/cyan/src/index.ts index fc220cf3680..e0c0d08b570 100644 --- a/palettes/monochromatic/cyan/src/index.ts +++ b/palettes/monochromatic/cyan/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-cyan"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeCyanPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/gold/CHANGELOG.md b/palettes/monochromatic/gold/CHANGELOG.md index efad8631fef..e5b758d35fc 100644 --- a/palettes/monochromatic/gold/CHANGELOG.md +++ b/palettes/monochromatic/gold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-gold diff --git a/palettes/monochromatic/gold/README.md b/palettes/monochromatic/gold/README.md index 8680b2f2c56..6f9773e6656 100644 --- a/palettes/monochromatic/gold/README.md +++ b/palettes/monochromatic/gold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/gold/package.dist.json b/palettes/monochromatic/gold/package.dist.json index 757d85f5b38..d1af3262187 100644 --- a/palettes/monochromatic/gold/package.dist.json +++ b/palettes/monochromatic/gold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome gold palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/gold/package.json b/palettes/monochromatic/gold/package.json index 549f63967f5..083694ebd68 100644 --- a/palettes/monochromatic/gold/package.json +++ b/palettes/monochromatic/gold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome gold palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/gold/src/index.lazy.ts b/palettes/monochromatic/gold/src/index.lazy.ts index 04ff30871c1..f831b803cc3 100644 --- a/palettes/monochromatic/gold/src/index.lazy.ts +++ b/palettes/monochromatic/gold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/gold/src/index.ts b/palettes/monochromatic/gold/src/index.ts index a3ead09a884..96ee8764306 100644 --- a/palettes/monochromatic/gold/src/index.ts +++ b/palettes/monochromatic/gold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/greens/CHANGELOG.md b/palettes/monochromatic/greens/CHANGELOG.md index 0f1ae181354..8df34dfbc9c 100644 --- a/palettes/monochromatic/greens/CHANGELOG.md +++ b/palettes/monochromatic/greens/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-greens diff --git a/palettes/monochromatic/greens/README.md b/palettes/monochromatic/greens/README.md index 0e6290db565..2ceb78ab934 100644 --- a/palettes/monochromatic/greens/README.md +++ b/palettes/monochromatic/greens/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/greens/package.dist.json b/palettes/monochromatic/greens/package.dist.json index 0336871cda8..2a1e04ba742 100644 --- a/palettes/monochromatic/greens/package.dist.json +++ b/palettes/monochromatic/greens/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-greens", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome greens palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/greens/package.json b/palettes/monochromatic/greens/package.json index ee79238e5b4..f1c3f858894 100644 --- a/palettes/monochromatic/greens/package.json +++ b/palettes/monochromatic/greens/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-greens", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome greens palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/greens/src/index.lazy.ts b/palettes/monochromatic/greens/src/index.lazy.ts index 98218b19bcc..314bcbb3e40 100644 --- a/palettes/monochromatic/greens/src/index.lazy.ts +++ b/palettes/monochromatic/greens/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "greens"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGreensPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/greens/src/index.ts b/palettes/monochromatic/greens/src/index.ts index 2e051ef0cfa..b8f81c827dc 100644 --- a/palettes/monochromatic/greens/src/index.ts +++ b/palettes/monochromatic/greens/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "monochrome-greens"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeGreensPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/noir/CHANGELOG.md b/palettes/monochromatic/noir/CHANGELOG.md index 931b5faf919..65f9e447fc8 100644 --- a/palettes/monochromatic/noir/CHANGELOG.md +++ b/palettes/monochromatic/noir/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-noir diff --git a/palettes/monochromatic/noir/README.md b/palettes/monochromatic/noir/README.md index b89f75ce785..919347dd45a 100644 --- a/palettes/monochromatic/noir/README.md +++ b/palettes/monochromatic/noir/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/noir/package.dist.json b/palettes/monochromatic/noir/package.dist.json index d4efadfbad5..c96d170dc82 100644 --- a/palettes/monochromatic/noir/package.dist.json +++ b/palettes/monochromatic/noir/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-noir", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome noir palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/noir/package.json b/palettes/monochromatic/noir/package.json index d470563a659..5d953c013c6 100644 --- a/palettes/monochromatic/noir/package.json +++ b/palettes/monochromatic/noir/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-noir", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome noir palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/noir/src/index.lazy.ts b/palettes/monochromatic/noir/src/index.lazy.ts index 39f40745c08..4281ff541af 100644 --- a/palettes/monochromatic/noir/src/index.lazy.ts +++ b/palettes/monochromatic/noir/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "noir"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNoirPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/noir/src/index.ts b/palettes/monochromatic/noir/src/index.ts index 81763b9bbb1..97134f1a475 100644 --- a/palettes/monochromatic/noir/src/index.ts +++ b/palettes/monochromatic/noir/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-noir"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeNoirPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/oranges/CHANGELOG.md b/palettes/monochromatic/oranges/CHANGELOG.md index 35bbef4ae50..ddda89b980f 100644 --- a/palettes/monochromatic/oranges/CHANGELOG.md +++ b/palettes/monochromatic/oranges/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-oranges diff --git a/palettes/monochromatic/oranges/README.md b/palettes/monochromatic/oranges/README.md index 473154fc836..028e3cd4d80 100644 --- a/palettes/monochromatic/oranges/README.md +++ b/palettes/monochromatic/oranges/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/oranges/package.dist.json b/palettes/monochromatic/oranges/package.dist.json index fc2be93f4fe..742c587a623 100644 --- a/palettes/monochromatic/oranges/package.dist.json +++ b/palettes/monochromatic/oranges/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-oranges", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome oranges palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/oranges/package.json b/palettes/monochromatic/oranges/package.json index cc907f7b145..abe625e10c5 100644 --- a/palettes/monochromatic/oranges/package.json +++ b/palettes/monochromatic/oranges/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-oranges", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome oranges palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/oranges/src/index.lazy.ts b/palettes/monochromatic/oranges/src/index.lazy.ts index 9318a92f74a..f1793083e7b 100644 --- a/palettes/monochromatic/oranges/src/index.lazy.ts +++ b/palettes/monochromatic/oranges/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "oranges"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOrangesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/oranges/src/index.ts b/palettes/monochromatic/oranges/src/index.ts index 91b3fe514a0..a826cc232b0 100644 --- a/palettes/monochromatic/oranges/src/index.ts +++ b/palettes/monochromatic/oranges/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-oranges"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeOrangesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/pinks/CHANGELOG.md b/palettes/monochromatic/pinks/CHANGELOG.md index d5e870f2dfc..fdd1487b7db 100644 --- a/palettes/monochromatic/pinks/CHANGELOG.md +++ b/palettes/monochromatic/pinks/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-pinks diff --git a/palettes/monochromatic/pinks/README.md b/palettes/monochromatic/pinks/README.md index d74dd4b62d3..18ee24fcb31 100644 --- a/palettes/monochromatic/pinks/README.md +++ b/palettes/monochromatic/pinks/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/pinks/package.dist.json b/palettes/monochromatic/pinks/package.dist.json index 9d750eb46fa..f76aeea85d0 100644 --- a/palettes/monochromatic/pinks/package.dist.json +++ b/palettes/monochromatic/pinks/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-pinks", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome pinks palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/pinks/package.json b/palettes/monochromatic/pinks/package.json index 60258af1e8c..4861280f71a 100644 --- a/palettes/monochromatic/pinks/package.json +++ b/palettes/monochromatic/pinks/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-pinks", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome pinks palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/pinks/src/index.lazy.ts b/palettes/monochromatic/pinks/src/index.lazy.ts index 668c7342868..7e3de0b306e 100644 --- a/palettes/monochromatic/pinks/src/index.lazy.ts +++ b/palettes/monochromatic/pinks/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pinks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPinksPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/pinks/src/index.ts b/palettes/monochromatic/pinks/src/index.ts index 7aabd26b024..8ec82080a3f 100644 --- a/palettes/monochromatic/pinks/src/index.ts +++ b/palettes/monochromatic/pinks/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "monochrome-pinks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromePinksPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/purples/CHANGELOG.md b/palettes/monochromatic/purples/CHANGELOG.md index 3ffa8de53f2..8a753134abb 100644 --- a/palettes/monochromatic/purples/CHANGELOG.md +++ b/palettes/monochromatic/purples/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-purples diff --git a/palettes/monochromatic/purples/README.md b/palettes/monochromatic/purples/README.md index e9e812eb1c3..7d095092775 100644 --- a/palettes/monochromatic/purples/README.md +++ b/palettes/monochromatic/purples/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/purples/package.dist.json b/palettes/monochromatic/purples/package.dist.json index a410a2cad40..7efb25fbaff 100644 --- a/palettes/monochromatic/purples/package.dist.json +++ b/palettes/monochromatic/purples/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-purples", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome purples palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/purples/package.json b/palettes/monochromatic/purples/package.json index 67ab630c742..27a4bafcd21 100644 --- a/palettes/monochromatic/purples/package.json +++ b/palettes/monochromatic/purples/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-purples", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome purples palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/purples/src/index.lazy.ts b/palettes/monochromatic/purples/src/index.lazy.ts index 361b0a4f59e..e9ab1ef8221 100644 --- a/palettes/monochromatic/purples/src/index.lazy.ts +++ b/palettes/monochromatic/purples/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "purples"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPurplesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/purples/src/index.ts b/palettes/monochromatic/purples/src/index.ts index 364ee5b4436..8dbd45ed62f 100644 --- a/palettes/monochromatic/purples/src/index.ts +++ b/palettes/monochromatic/purples/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "monochrome-purples"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromePurplesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/reds/CHANGELOG.md b/palettes/monochromatic/reds/CHANGELOG.md index cbe337c639b..731a4941d9d 100644 --- a/palettes/monochromatic/reds/CHANGELOG.md +++ b/palettes/monochromatic/reds/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-reds diff --git a/palettes/monochromatic/reds/README.md b/palettes/monochromatic/reds/README.md index 62f9bbe877a..506bcd947dd 100644 --- a/palettes/monochromatic/reds/README.md +++ b/palettes/monochromatic/reds/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/reds/package.dist.json b/palettes/monochromatic/reds/package.dist.json index 0327372baf0..8b5a92156df 100644 --- a/palettes/monochromatic/reds/package.dist.json +++ b/palettes/monochromatic/reds/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-reds", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome reds palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/reds/package.json b/palettes/monochromatic/reds/package.json index 853759eac62..34e46565ea9 100644 --- a/palettes/monochromatic/reds/package.json +++ b/palettes/monochromatic/reds/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-reds", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome reds palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/reds/src/index.lazy.ts b/palettes/monochromatic/reds/src/index.lazy.ts index f47147f8b50..d8053401f5f 100644 --- a/palettes/monochromatic/reds/src/index.lazy.ts +++ b/palettes/monochromatic/reds/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "reds"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRedsPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/reds/src/index.ts b/palettes/monochromatic/reds/src/index.ts index 3d6e4b3a05c..5f7dbb0d54d 100644 --- a/palettes/monochromatic/reds/src/index.ts +++ b/palettes/monochromatic/reds/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-reds"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeRedsPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/silver/CHANGELOG.md b/palettes/monochromatic/silver/CHANGELOG.md index b484e209689..c33dc81349b 100644 --- a/palettes/monochromatic/silver/CHANGELOG.md +++ b/palettes/monochromatic/silver/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-silver diff --git a/palettes/monochromatic/silver/README.md b/palettes/monochromatic/silver/README.md index f8a5571bb2f..859e1b4266d 100644 --- a/palettes/monochromatic/silver/README.md +++ b/palettes/monochromatic/silver/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/silver/package.dist.json b/palettes/monochromatic/silver/package.dist.json index 9b3ae95f353..2fbd9d0784f 100644 --- a/palettes/monochromatic/silver/package.dist.json +++ b/palettes/monochromatic/silver/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-silver", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome silver palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/silver/package.json b/palettes/monochromatic/silver/package.json index ef5b4216827..55a598c2069 100644 --- a/palettes/monochromatic/silver/package.json +++ b/palettes/monochromatic/silver/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-silver", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome silver palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/silver/src/index.lazy.ts b/palettes/monochromatic/silver/src/index.lazy.ts index e8f81799ccc..d198aef3c82 100644 --- a/palettes/monochromatic/silver/src/index.lazy.ts +++ b/palettes/monochromatic/silver/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "monochrome-silver"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeSilverPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/silver/src/index.ts b/palettes/monochromatic/silver/src/index.ts index 934831deade..6fe52c36429 100644 --- a/palettes/monochromatic/silver/src/index.ts +++ b/palettes/monochromatic/silver/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-silver"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeSilverPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/teal/CHANGELOG.md b/palettes/monochromatic/teal/CHANGELOG.md index 6c9d886c962..b5de7fdc524 100644 --- a/palettes/monochromatic/teal/CHANGELOG.md +++ b/palettes/monochromatic/teal/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-teal diff --git a/palettes/monochromatic/teal/README.md b/palettes/monochromatic/teal/README.md index 20f2fa62d31..5e4bdcb9d59 100644 --- a/palettes/monochromatic/teal/README.md +++ b/palettes/monochromatic/teal/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/teal/package.dist.json b/palettes/monochromatic/teal/package.dist.json index 28c05291147..4859a240b8f 100644 --- a/palettes/monochromatic/teal/package.dist.json +++ b/palettes/monochromatic/teal/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-teal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome teal palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/teal/package.json b/palettes/monochromatic/teal/package.json index 6b80e416ff9..fafae4380c9 100644 --- a/palettes/monochromatic/teal/package.json +++ b/palettes/monochromatic/teal/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-teal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome teal palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/teal/src/index.lazy.ts b/palettes/monochromatic/teal/src/index.lazy.ts index db7a99f9135..eb38be3ede0 100644 --- a/palettes/monochromatic/teal/src/index.lazy.ts +++ b/palettes/monochromatic/teal/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "teal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTealPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/teal/src/index.ts b/palettes/monochromatic/teal/src/index.ts index 9de6a9ea323..64968f9b47f 100644 --- a/palettes/monochromatic/teal/src/index.ts +++ b/palettes/monochromatic/teal/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-teal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeTealPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/white/CHANGELOG.md b/palettes/monochromatic/white/CHANGELOG.md index 75136cac5e8..e9f95d18676 100644 --- a/palettes/monochromatic/white/CHANGELOG.md +++ b/palettes/monochromatic/white/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-white diff --git a/palettes/monochromatic/white/README.md b/palettes/monochromatic/white/README.md index cf0eeff932b..7cb51a3e2ae 100644 --- a/palettes/monochromatic/white/README.md +++ b/palettes/monochromatic/white/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/white/package.dist.json b/palettes/monochromatic/white/package.dist.json index 0cec7eddde0..ccfb320f26d 100644 --- a/palettes/monochromatic/white/package.dist.json +++ b/palettes/monochromatic/white/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-white", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome white palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/white/package.json b/palettes/monochromatic/white/package.json index c5a58ababd5..abcaa2bead4 100644 --- a/palettes/monochromatic/white/package.json +++ b/palettes/monochromatic/white/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-white", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome white palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/white/src/index.lazy.ts b/palettes/monochromatic/white/src/index.lazy.ts index 0b596aac68e..f26f2861f1d 100644 --- a/palettes/monochromatic/white/src/index.lazy.ts +++ b/palettes/monochromatic/white/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "white"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWhitePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/white/src/index.ts b/palettes/monochromatic/white/src/index.ts index 4a96bb2abd9..9a20e82dd99 100644 --- a/palettes/monochromatic/white/src/index.ts +++ b/palettes/monochromatic/white/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-white"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeWhitePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/monochromatic/yellows/CHANGELOG.md b/palettes/monochromatic/yellows/CHANGELOG.md index e740e0088fc..36c48b77eb0 100644 --- a/palettes/monochromatic/yellows/CHANGELOG.md +++ b/palettes/monochromatic/yellows/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-monochrome-yellows diff --git a/palettes/monochromatic/yellows/README.md b/palettes/monochromatic/yellows/README.md index d8f6a40ca80..aca03dbfa21 100644 --- a/palettes/monochromatic/yellows/README.md +++ b/palettes/monochromatic/yellows/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/monochromatic/yellows/package.dist.json b/palettes/monochromatic/yellows/package.dist.json index 52e1633c847..74e97874c34 100644 --- a/palettes/monochromatic/yellows/package.dist.json +++ b/palettes/monochromatic/yellows/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-yellows", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome yellows palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/monochromatic/yellows/package.json b/palettes/monochromatic/yellows/package.json index ca4ef2c5ca6..bdb6722324f 100644 --- a/palettes/monochromatic/yellows/package.json +++ b/palettes/monochromatic/yellows/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-monochrome-yellows", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles monochrome yellows palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/monochromatic/yellows/src/index.lazy.ts b/palettes/monochromatic/yellows/src/index.lazy.ts index cebfc4966a3..57c594da050 100644 --- a/palettes/monochromatic/yellows/src/index.lazy.ts +++ b/palettes/monochromatic/yellows/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "yellows"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadYellowsPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/monochromatic/yellows/src/index.ts b/palettes/monochromatic/yellows/src/index.ts index ff0c9323119..6a1e5b0ebc8 100644 --- a/palettes/monochromatic/yellows/src/index.ts +++ b/palettes/monochromatic/yellows/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "monochrome-yellows"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMonochromeYellowsPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/autumnLeaves/CHANGELOG.md b/palettes/nature/autumnLeaves/CHANGELOG.md index e9dfb83c113..66553a2dd6b 100644 --- a/palettes/nature/autumnLeaves/CHANGELOG.md +++ b/palettes/nature/autumnLeaves/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-autumn-leaves diff --git a/palettes/nature/autumnLeaves/README.md b/palettes/nature/autumnLeaves/README.md index cb743775cf3..5596e27df24 100644 --- a/palettes/nature/autumnLeaves/README.md +++ b/palettes/nature/autumnLeaves/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/autumnLeaves/package.dist.json b/palettes/nature/autumnLeaves/package.dist.json index c57136a6d8c..7443d284398 100644 --- a/palettes/nature/autumnLeaves/package.dist.json +++ b/palettes/nature/autumnLeaves/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-autumn-leaves", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles autumn leaves palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/autumnLeaves/package.json b/palettes/nature/autumnLeaves/package.json index fcc94958012..72a515ef229 100644 --- a/palettes/nature/autumnLeaves/package.json +++ b/palettes/nature/autumnLeaves/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-autumn-leaves", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles autumn leaves palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/autumnLeaves/src/index.lazy.ts b/palettes/nature/autumnLeaves/src/index.lazy.ts index b4cc36ca908..cd1471a1ef7 100644 --- a/palettes/nature/autumnLeaves/src/index.lazy.ts +++ b/palettes/nature/autumnLeaves/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "autumn-leaves"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAutumnLeavesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/autumnLeaves/src/index.ts b/palettes/nature/autumnLeaves/src/index.ts index d9b2b147345..99a9f8226f1 100644 --- a/palettes/nature/autumnLeaves/src/index.ts +++ b/palettes/nature/autumnLeaves/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "autumn-leaves"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAutumnLeavesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/cherryBlossom/CHANGELOG.md b/palettes/nature/cherryBlossom/CHANGELOG.md index 6d97a8c1fc8..87ef03f40ee 100644 --- a/palettes/nature/cherryBlossom/CHANGELOG.md +++ b/palettes/nature/cherryBlossom/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-cherry-blossom diff --git a/palettes/nature/cherryBlossom/README.md b/palettes/nature/cherryBlossom/README.md index 38d5edd74b4..1bf5c2bf091 100644 --- a/palettes/nature/cherryBlossom/README.md +++ b/palettes/nature/cherryBlossom/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/cherryBlossom/package.dist.json b/palettes/nature/cherryBlossom/package.dist.json index af9d47782d8..53bc3459b54 100644 --- a/palettes/nature/cherryBlossom/package.dist.json +++ b/palettes/nature/cherryBlossom/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cherry-blossom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cherry blossom palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/cherryBlossom/package.json b/palettes/nature/cherryBlossom/package.json index 9798050ac56..42bb4d5f004 100644 --- a/palettes/nature/cherryBlossom/package.json +++ b/palettes/nature/cherryBlossom/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cherry-blossom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cherry blossom palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/cherryBlossom/src/index.lazy.ts b/palettes/nature/cherryBlossom/src/index.lazy.ts index bc70ab337a3..344d55e8864 100644 --- a/palettes/nature/cherryBlossom/src/index.lazy.ts +++ b/palettes/nature/cherryBlossom/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "cherry-blossom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCherryBlossomPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/cherryBlossom/src/index.ts b/palettes/nature/cherryBlossom/src/index.ts index 3f389dfdd62..fe08820f78b 100644 --- a/palettes/nature/cherryBlossom/src/index.ts +++ b/palettes/nature/cherryBlossom/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "cherry-blossom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCherryBlossomPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/dandelionSeeds/CHANGELOG.md b/palettes/nature/dandelionSeeds/CHANGELOG.md index 846354a96ec..6b26e4b1e7b 100644 --- a/palettes/nature/dandelionSeeds/CHANGELOG.md +++ b/palettes/nature/dandelionSeeds/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-dandelion-seeds diff --git a/palettes/nature/dandelionSeeds/README.md b/palettes/nature/dandelionSeeds/README.md index 11e95fd4cf3..7360555e70c 100644 --- a/palettes/nature/dandelionSeeds/README.md +++ b/palettes/nature/dandelionSeeds/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/dandelionSeeds/package.dist.json b/palettes/nature/dandelionSeeds/package.dist.json index 303f86e4ec3..1d83e7f172f 100644 --- a/palettes/nature/dandelionSeeds/package.dist.json +++ b/palettes/nature/dandelionSeeds/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dandelion-seeds", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dandelion seeds palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/dandelionSeeds/package.json b/palettes/nature/dandelionSeeds/package.json index f365d39260c..b14622f1424 100644 --- a/palettes/nature/dandelionSeeds/package.json +++ b/palettes/nature/dandelionSeeds/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dandelion-seeds", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dandelion seeds palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/dandelionSeeds/src/index.lazy.ts b/palettes/nature/dandelionSeeds/src/index.lazy.ts index 40886b25bcd..858a2ae32c5 100644 --- a/palettes/nature/dandelionSeeds/src/index.lazy.ts +++ b/palettes/nature/dandelionSeeds/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "dandelion-seeds"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDandelionSeedsPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/dandelionSeeds/src/index.ts b/palettes/nature/dandelionSeeds/src/index.ts index 6aa1b143645..ebfd7df133c 100644 --- a/palettes/nature/dandelionSeeds/src/index.ts +++ b/palettes/nature/dandelionSeeds/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "dandelion-seeds"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDandelionSeedsPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/earthyNature/CHANGELOG.md b/palettes/nature/earthyNature/CHANGELOG.md index b11b8e4fe47..5ead8ba9869 100644 --- a/palettes/nature/earthyNature/CHANGELOG.md +++ b/palettes/nature/earthyNature/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-earthy-nature diff --git a/palettes/nature/earthyNature/README.md b/palettes/nature/earthyNature/README.md index 67af2b714b8..276800a4daa 100644 --- a/palettes/nature/earthyNature/README.md +++ b/palettes/nature/earthyNature/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/earthyNature/package.dist.json b/palettes/nature/earthyNature/package.dist.json index fca3ddd9d51..c2217708f38 100644 --- a/palettes/nature/earthyNature/package.dist.json +++ b/palettes/nature/earthyNature/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-earthy-nature", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles earthy nature palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/earthyNature/package.json b/palettes/nature/earthyNature/package.json index 95d349f5718..0bd8667b82d 100644 --- a/palettes/nature/earthyNature/package.json +++ b/palettes/nature/earthyNature/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-earthy-nature", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles earthy nature palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/earthyNature/src/index.lazy.ts b/palettes/nature/earthyNature/src/index.lazy.ts index 204175b7107..ffa4245013a 100644 --- a/palettes/nature/earthyNature/src/index.lazy.ts +++ b/palettes/nature/earthyNature/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "earthy-nature"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEarthyNaturePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/earthyNature/src/index.ts b/palettes/nature/earthyNature/src/index.ts index 34effa45529..6a560b5eded 100644 --- a/palettes/nature/earthyNature/src/index.ts +++ b/palettes/nature/earthyNature/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "earthy-nature"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEarthyNaturePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/fireflies/CHANGELOG.md b/palettes/nature/fireflies/CHANGELOG.md index 4e76233f278..33ce54bf178 100644 --- a/palettes/nature/fireflies/CHANGELOG.md +++ b/palettes/nature/fireflies/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fireflies diff --git a/palettes/nature/fireflies/README.md b/palettes/nature/fireflies/README.md index 126e87e7c33..5d5e9c3239a 100644 --- a/palettes/nature/fireflies/README.md +++ b/palettes/nature/fireflies/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/fireflies/package.dist.json b/palettes/nature/fireflies/package.dist.json index 218d6acd71e..9f535707a57 100644 --- a/palettes/nature/fireflies/package.dist.json +++ b/palettes/nature/fireflies/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireflies", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireflies palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/fireflies/package.json b/palettes/nature/fireflies/package.json index 92f272bec40..d3b9b556f22 100644 --- a/palettes/nature/fireflies/package.json +++ b/palettes/nature/fireflies/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fireflies", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireflies palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/fireflies/src/index.lazy.ts b/palettes/nature/fireflies/src/index.lazy.ts index 7250f54cee5..da714ec0dd8 100644 --- a/palettes/nature/fireflies/src/index.lazy.ts +++ b/palettes/nature/fireflies/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fireflies"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirefliesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/fireflies/src/index.ts b/palettes/nature/fireflies/src/index.ts index 330da54e488..5a409d2240a 100644 --- a/palettes/nature/fireflies/src/index.ts +++ b/palettes/nature/fireflies/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fireflies"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirefliesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/forestCanopy/CHANGELOG.md b/palettes/nature/forestCanopy/CHANGELOG.md index 3e084ebf445..4134944ac23 100644 --- a/palettes/nature/forestCanopy/CHANGELOG.md +++ b/palettes/nature/forestCanopy/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-forest-canopy diff --git a/palettes/nature/forestCanopy/README.md b/palettes/nature/forestCanopy/README.md index d13c03feec4..201af769558 100644 --- a/palettes/nature/forestCanopy/README.md +++ b/palettes/nature/forestCanopy/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/forestCanopy/package.dist.json b/palettes/nature/forestCanopy/package.dist.json index b337d4517d7..9085cb5acf8 100644 --- a/palettes/nature/forestCanopy/package.dist.json +++ b/palettes/nature/forestCanopy/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-forest-canopy", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles forest canopy palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/forestCanopy/package.json b/palettes/nature/forestCanopy/package.json index b8e86d33e55..9131ee175c8 100644 --- a/palettes/nature/forestCanopy/package.json +++ b/palettes/nature/forestCanopy/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-forest-canopy", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles forest canopy palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/forestCanopy/src/index.lazy.ts b/palettes/nature/forestCanopy/src/index.lazy.ts index d081249bb58..06e3332d978 100644 --- a/palettes/nature/forestCanopy/src/index.lazy.ts +++ b/palettes/nature/forestCanopy/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "forest-canopy"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadForestCanopyPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/forestCanopy/src/index.ts b/palettes/nature/forestCanopy/src/index.ts index 976a07287e8..1f6e56a4f7f 100644 --- a/palettes/nature/forestCanopy/src/index.ts +++ b/palettes/nature/forestCanopy/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "forest-canopy"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadForestCanopyPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/pollenAndSpores/CHANGELOG.md b/palettes/nature/pollenAndSpores/CHANGELOG.md index 76b20f6f06d..487f0db9620 100644 --- a/palettes/nature/pollenAndSpores/CHANGELOG.md +++ b/palettes/nature/pollenAndSpores/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pollen-and-spores diff --git a/palettes/nature/pollenAndSpores/README.md b/palettes/nature/pollenAndSpores/README.md index da7c25871ed..1f31ab04b96 100644 --- a/palettes/nature/pollenAndSpores/README.md +++ b/palettes/nature/pollenAndSpores/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/pollenAndSpores/package.dist.json b/palettes/nature/pollenAndSpores/package.dist.json index 251147fd72a..3f5e05707b6 100644 --- a/palettes/nature/pollenAndSpores/package.dist.json +++ b/palettes/nature/pollenAndSpores/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pollen-and-spores", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pollen & spores palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/pollenAndSpores/package.json b/palettes/nature/pollenAndSpores/package.json index cc630f8a49b..f705662f07e 100644 --- a/palettes/nature/pollenAndSpores/package.json +++ b/palettes/nature/pollenAndSpores/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pollen-and-spores", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pollen & spores palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/pollenAndSpores/src/index.lazy.ts b/palettes/nature/pollenAndSpores/src/index.lazy.ts index f449c552add..2ba26dac309 100644 --- a/palettes/nature/pollenAndSpores/src/index.lazy.ts +++ b/palettes/nature/pollenAndSpores/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pollen-and-spores"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPollenAndSporesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/pollenAndSpores/src/index.ts b/palettes/nature/pollenAndSpores/src/index.ts index 29352092472..6f81f5383db 100644 --- a/palettes/nature/pollenAndSpores/src/index.ts +++ b/palettes/nature/pollenAndSpores/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "pollen-and-spores"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPollenAndSporesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/snowfall/CHANGELOG.md b/palettes/nature/snowfall/CHANGELOG.md index df238a0c41c..79221bf08db 100644 --- a/palettes/nature/snowfall/CHANGELOG.md +++ b/palettes/nature/snowfall/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-snowfall diff --git a/palettes/nature/snowfall/README.md b/palettes/nature/snowfall/README.md index b14668f2ecc..9dff61ebb52 100644 --- a/palettes/nature/snowfall/README.md +++ b/palettes/nature/snowfall/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/snowfall/package.dist.json b/palettes/nature/snowfall/package.dist.json index c673fa563c2..54d63ded7c3 100644 --- a/palettes/nature/snowfall/package.dist.json +++ b/palettes/nature/snowfall/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-snowfall", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles snowfall palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/snowfall/package.json b/palettes/nature/snowfall/package.json index 2c02d63cf1f..df81e9b8524 100644 --- a/palettes/nature/snowfall/package.json +++ b/palettes/nature/snowfall/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-snowfall", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles snowfall palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/snowfall/src/index.lazy.ts b/palettes/nature/snowfall/src/index.lazy.ts index 2d0ec16b1e3..30155c08120 100644 --- a/palettes/nature/snowfall/src/index.lazy.ts +++ b/palettes/nature/snowfall/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "snowfall"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSnowfallPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/snowfall/src/index.ts b/palettes/nature/snowfall/src/index.ts index eea122e82be..71dd5214116 100644 --- a/palettes/nature/snowfall/src/index.ts +++ b/palettes/nature/snowfall/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "snowfall"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSnowfallPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/nature/springBloom/CHANGELOG.md b/palettes/nature/springBloom/CHANGELOG.md index 30e9f559498..01794c5086f 100644 --- a/palettes/nature/springBloom/CHANGELOG.md +++ b/palettes/nature/springBloom/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-spring-bloom diff --git a/palettes/nature/springBloom/README.md b/palettes/nature/springBloom/README.md index cdac1f402e9..2a8912fa6ba 100644 --- a/palettes/nature/springBloom/README.md +++ b/palettes/nature/springBloom/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/nature/springBloom/package.dist.json b/palettes/nature/springBloom/package.dist.json index 7888dbd05a9..8772b2adade 100644 --- a/palettes/nature/springBloom/package.dist.json +++ b/palettes/nature/springBloom/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-spring-bloom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spring bloom palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/nature/springBloom/package.json b/palettes/nature/springBloom/package.json index 07df919a84b..76773048405 100644 --- a/palettes/nature/springBloom/package.json +++ b/palettes/nature/springBloom/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-spring-bloom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spring bloom palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/nature/springBloom/src/index.lazy.ts b/palettes/nature/springBloom/src/index.lazy.ts index 8ca3f5e969a..353567040f5 100644 --- a/palettes/nature/springBloom/src/index.lazy.ts +++ b/palettes/nature/springBloom/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "spring-bloom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpringBloomPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/nature/springBloom/src/index.ts b/palettes/nature/springBloom/src/index.ts index 48e024a0df2..9381e0ada1b 100644 --- a/palettes/nature/springBloom/src/index.ts +++ b/palettes/nature/springBloom/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "spring-bloom"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpringBloomPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/bokehCold/CHANGELOG.md b/palettes/optics/bokehCold/CHANGELOG.md index 65542003f84..6871694dd4b 100644 --- a/palettes/optics/bokehCold/CHANGELOG.md +++ b/palettes/optics/bokehCold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bokeh-cold diff --git a/palettes/optics/bokehCold/README.md b/palettes/optics/bokehCold/README.md index 0c9ba770e6e..77096f23849 100644 --- a/palettes/optics/bokehCold/README.md +++ b/palettes/optics/bokehCold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/bokehCold/package.dist.json b/palettes/optics/bokehCold/package.dist.json index 48d440aa48f..fcfe901f202 100644 --- a/palettes/optics/bokehCold/package.dist.json +++ b/palettes/optics/bokehCold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-cold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh cold optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/bokehCold/package.json b/palettes/optics/bokehCold/package.json index 1499b153a40..99ca02eefda 100644 --- a/palettes/optics/bokehCold/package.json +++ b/palettes/optics/bokehCold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-cold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh cold optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/bokehCold/src/index.lazy.ts b/palettes/optics/bokehCold/src/index.lazy.ts index a5a3660070c..61b110c4bda 100644 --- a/palettes/optics/bokehCold/src/index.lazy.ts +++ b/palettes/optics/bokehCold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "bokeh-cold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehColdPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/bokehCold/src/index.ts b/palettes/optics/bokehCold/src/index.ts index b15a8def9c1..01c94151206 100644 --- a/palettes/optics/bokehCold/src/index.ts +++ b/palettes/optics/bokehCold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "bokeh-cold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehColdPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/bokehGold/CHANGELOG.md b/palettes/optics/bokehGold/CHANGELOG.md index a50ffcb177b..a17f050d397 100644 --- a/palettes/optics/bokehGold/CHANGELOG.md +++ b/palettes/optics/bokehGold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bokeh-gold diff --git a/palettes/optics/bokehGold/README.md b/palettes/optics/bokehGold/README.md index f10b095ca8d..0d984461042 100644 --- a/palettes/optics/bokehGold/README.md +++ b/palettes/optics/bokehGold/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/bokehGold/package.dist.json b/palettes/optics/bokehGold/package.dist.json index b43ea5af818..37d8e04ab72 100644 --- a/palettes/optics/bokehGold/package.dist.json +++ b/palettes/optics/bokehGold/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh gold optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/bokehGold/package.json b/palettes/optics/bokehGold/package.json index 04968017cee..e859bd3d8e4 100644 --- a/palettes/optics/bokehGold/package.json +++ b/palettes/optics/bokehGold/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-gold", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh gold optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/bokehGold/src/index.lazy.ts b/palettes/optics/bokehGold/src/index.lazy.ts index 34730834a8a..caa2639ea88 100644 --- a/palettes/optics/bokehGold/src/index.lazy.ts +++ b/palettes/optics/bokehGold/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "bokeh-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/bokehGold/src/index.ts b/palettes/optics/bokehGold/src/index.ts index 9331cd28f13..e40bdfc95cc 100644 --- a/palettes/optics/bokehGold/src/index.ts +++ b/palettes/optics/bokehGold/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "bokeh-gold"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehGoldPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/bokehPastel/CHANGELOG.md b/palettes/optics/bokehPastel/CHANGELOG.md index 8412f6f9392..29621d7e52f 100644 --- a/palettes/optics/bokehPastel/CHANGELOG.md +++ b/palettes/optics/bokehPastel/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-bokeh-pastel diff --git a/palettes/optics/bokehPastel/README.md b/palettes/optics/bokehPastel/README.md index e80fbed8888..4ffdaf6f8ea 100644 --- a/palettes/optics/bokehPastel/README.md +++ b/palettes/optics/bokehPastel/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/bokehPastel/package.dist.json b/palettes/optics/bokehPastel/package.dist.json index 0afdb83de26..902ca6c29df 100644 --- a/palettes/optics/bokehPastel/package.dist.json +++ b/palettes/optics/bokehPastel/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh pastel optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/bokehPastel/package.json b/palettes/optics/bokehPastel/package.json index 3e2fca97573..c2249aa6ad5 100644 --- a/palettes/optics/bokehPastel/package.json +++ b/palettes/optics/bokehPastel/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-bokeh-pastel", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bokeh pastel optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/bokehPastel/src/index.lazy.ts b/palettes/optics/bokehPastel/src/index.lazy.ts index 6f4c6bfd175..a03487b7ac9 100644 --- a/palettes/optics/bokehPastel/src/index.lazy.ts +++ b/palettes/optics/bokehPastel/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "bokeh-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/bokehPastel/src/index.ts b/palettes/optics/bokehPastel/src/index.ts index 7ad804ee7c7..30fd6a63198 100644 --- a/palettes/optics/bokehPastel/src/index.ts +++ b/palettes/optics/bokehPastel/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "bokeh-pastel"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBokehPastelPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/holographicShimmer/CHANGELOG.md b/palettes/optics/holographicShimmer/CHANGELOG.md index 1aa5e1a6ee6..0bcefaeb6dd 100644 --- a/palettes/optics/holographicShimmer/CHANGELOG.md +++ b/palettes/optics/holographicShimmer/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-holographic-shimmer diff --git a/palettes/optics/holographicShimmer/README.md b/palettes/optics/holographicShimmer/README.md index 63d465881af..c243ddb6b57 100644 --- a/palettes/optics/holographicShimmer/README.md +++ b/palettes/optics/holographicShimmer/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/holographicShimmer/package.dist.json b/palettes/optics/holographicShimmer/package.dist.json index 87342c60709..1ee335a47f1 100644 --- a/palettes/optics/holographicShimmer/package.dist.json +++ b/palettes/optics/holographicShimmer/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-holographic-shimmer", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles holographic shimmer optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/holographicShimmer/package.json b/palettes/optics/holographicShimmer/package.json index 8fd86df9193..c729d92de73 100644 --- a/palettes/optics/holographicShimmer/package.json +++ b/palettes/optics/holographicShimmer/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-holographic-shimmer", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles holographic shimmer optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/holographicShimmer/src/index.lazy.ts b/palettes/optics/holographicShimmer/src/index.lazy.ts index 9be6999aa1d..32acd46bdef 100644 --- a/palettes/optics/holographicShimmer/src/index.lazy.ts +++ b/palettes/optics/holographicShimmer/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "holographic-shimmer"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHolographicShimmerPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/holographicShimmer/src/index.ts b/palettes/optics/holographicShimmer/src/index.ts index ae379cf59ba..b7150bfc14f 100644 --- a/palettes/optics/holographicShimmer/src/index.ts +++ b/palettes/optics/holographicShimmer/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "holographic-shimmer"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHolographicShimmerPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/laserScatter/CHANGELOG.md b/palettes/optics/laserScatter/CHANGELOG.md index 493d87bca8c..38b24fa0c34 100644 --- a/palettes/optics/laserScatter/CHANGELOG.md +++ b/palettes/optics/laserScatter/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-laser-scatter diff --git a/palettes/optics/laserScatter/README.md b/palettes/optics/laserScatter/README.md index 6e9a35fd7f1..8828ddee450 100644 --- a/palettes/optics/laserScatter/README.md +++ b/palettes/optics/laserScatter/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/laserScatter/package.dist.json b/palettes/optics/laserScatter/package.dist.json index 4a075e49bc5..70110478c45 100644 --- a/palettes/optics/laserScatter/package.dist.json +++ b/palettes/optics/laserScatter/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-laser-scatter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles laser scatter optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/laserScatter/package.json b/palettes/optics/laserScatter/package.json index b54486d3c94..d7199567766 100644 --- a/palettes/optics/laserScatter/package.json +++ b/palettes/optics/laserScatter/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-laser-scatter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles laser scatter optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/laserScatter/src/index.lazy.ts b/palettes/optics/laserScatter/src/index.lazy.ts index 9532c0839b1..8517d79e7be 100644 --- a/palettes/optics/laserScatter/src/index.lazy.ts +++ b/palettes/optics/laserScatter/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "laser-scatter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLaserScatterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/laserScatter/src/index.ts b/palettes/optics/laserScatter/src/index.ts index e31fe4c15d6..09d68d4a787 100644 --- a/palettes/optics/laserScatter/src/index.ts +++ b/palettes/optics/laserScatter/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "laser-scatter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLaserScatterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/lensFlareDust/CHANGELOG.md b/palettes/optics/lensFlareDust/CHANGELOG.md index 80d4209840d..861a112e806 100644 --- a/palettes/optics/lensFlareDust/CHANGELOG.md +++ b/palettes/optics/lensFlareDust/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-lens-flare-dust diff --git a/palettes/optics/lensFlareDust/README.md b/palettes/optics/lensFlareDust/README.md index 143c1cf7692..dc0ee0cce8f 100644 --- a/palettes/optics/lensFlareDust/README.md +++ b/palettes/optics/lensFlareDust/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/lensFlareDust/package.dist.json b/palettes/optics/lensFlareDust/package.dist.json index 35235060044..2fc71709661 100644 --- a/palettes/optics/lensFlareDust/package.dist.json +++ b/palettes/optics/lensFlareDust/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lens-flare-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lens flare dust palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/lensFlareDust/package.json b/palettes/optics/lensFlareDust/package.json index b4da6ffd5a7..1e0dcfa45f6 100644 --- a/palettes/optics/lensFlareDust/package.json +++ b/palettes/optics/lensFlareDust/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lens-flare-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lens flare dust palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/lensFlareDust/src/index.lazy.ts b/palettes/optics/lensFlareDust/src/index.lazy.ts index 6cc51639682..808b5693d19 100644 --- a/palettes/optics/lensFlareDust/src/index.lazy.ts +++ b/palettes/optics/lensFlareDust/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "lens-flare-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLensFlareDustPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/lensFlareDust/src/index.ts b/palettes/optics/lensFlareDust/src/index.ts index af4f25969a6..ad2626e521c 100644 --- a/palettes/optics/lensFlareDust/src/index.ts +++ b/palettes/optics/lensFlareDust/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "lens-flare-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLensFlareDustPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/optics/prismSpectrum/CHANGELOG.md b/palettes/optics/prismSpectrum/CHANGELOG.md index 12f58b1424d..eadc18fa938 100644 --- a/palettes/optics/prismSpectrum/CHANGELOG.md +++ b/palettes/optics/prismSpectrum/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-prism-spectrum diff --git a/palettes/optics/prismSpectrum/README.md b/palettes/optics/prismSpectrum/README.md index 062b977167c..576817ae22f 100644 --- a/palettes/optics/prismSpectrum/README.md +++ b/palettes/optics/prismSpectrum/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/optics/prismSpectrum/package.dist.json b/palettes/optics/prismSpectrum/package.dist.json index 1f0f031dda5..374e096611a 100644 --- a/palettes/optics/prismSpectrum/package.dist.json +++ b/palettes/optics/prismSpectrum/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-prism-spectrum", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles prism spectrum optics palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/optics/prismSpectrum/package.json b/palettes/optics/prismSpectrum/package.json index d7d7850bdba..d3e3b8ed1e1 100644 --- a/palettes/optics/prismSpectrum/package.json +++ b/palettes/optics/prismSpectrum/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-prism-spectrum", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles prism spectrum optics palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/optics/prismSpectrum/src/index.lazy.ts b/palettes/optics/prismSpectrum/src/index.lazy.ts index 926262fb3e5..d9828710157 100644 --- a/palettes/optics/prismSpectrum/src/index.lazy.ts +++ b/palettes/optics/prismSpectrum/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "prism-spectrum"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPrismSpectrumPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/optics/prismSpectrum/src/index.ts b/palettes/optics/prismSpectrum/src/index.ts index 8c19d3513a2..bbb9970664a 100644 --- a/palettes/optics/prismSpectrum/src/index.ts +++ b/palettes/optics/prismSpectrum/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "prism-spectrum"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPrismSpectrumPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/pastel/cool/CHANGELOG.md b/palettes/pastel/cool/CHANGELOG.md index 8b837c27ebf..95826c1fbb9 100644 --- a/palettes/pastel/cool/CHANGELOG.md +++ b/palettes/pastel/cool/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pastel-cool diff --git a/palettes/pastel/cool/README.md b/palettes/pastel/cool/README.md index a8d5a6eacd1..5f319462206 100644 --- a/palettes/pastel/cool/README.md +++ b/palettes/pastel/cool/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/pastel/cool/package.dist.json b/palettes/pastel/cool/package.dist.json index 659c9a0cbaa..8a2a088fd1c 100644 --- a/palettes/pastel/cool/package.dist.json +++ b/palettes/pastel/cool/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-cool", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel cool palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/pastel/cool/package.json b/palettes/pastel/cool/package.json index bd2535aa3c4..2cf6a049375 100644 --- a/palettes/pastel/cool/package.json +++ b/palettes/pastel/cool/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-cool", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel cool palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/pastel/cool/src/index.lazy.ts b/palettes/pastel/cool/src/index.lazy.ts index f4f945e1d8a..ce00c8a5bd5 100644 --- a/palettes/pastel/cool/src/index.lazy.ts +++ b/palettes/pastel/cool/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pastel-cool"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelCoolPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/pastel/cool/src/index.ts b/palettes/pastel/cool/src/index.ts index caaf04926d6..cd1f28d9c03 100644 --- a/palettes/pastel/cool/src/index.ts +++ b/palettes/pastel/cool/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "pastel-cool"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelCoolPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/pastel/dream/CHANGELOG.md b/palettes/pastel/dream/CHANGELOG.md index 30c75fbbb3f..80673cd18c0 100644 --- a/palettes/pastel/dream/CHANGELOG.md +++ b/palettes/pastel/dream/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pastel-dream diff --git a/palettes/pastel/dream/README.md b/palettes/pastel/dream/README.md index 9b9c92d9ef1..f68fcfd5384 100644 --- a/palettes/pastel/dream/README.md +++ b/palettes/pastel/dream/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/pastel/dream/package.dist.json b/palettes/pastel/dream/package.dist.json index c075a5456d9..59adc8788e7 100644 --- a/palettes/pastel/dream/package.dist.json +++ b/palettes/pastel/dream/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-dream", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel dream palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/pastel/dream/package.json b/palettes/pastel/dream/package.json index 88e6b8ad7f9..4fe96601adb 100644 --- a/palettes/pastel/dream/package.json +++ b/palettes/pastel/dream/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-dream", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel dream palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/pastel/dream/src/index.lazy.ts b/palettes/pastel/dream/src/index.lazy.ts index 1572de4a3d1..b3f92df1a31 100644 --- a/palettes/pastel/dream/src/index.lazy.ts +++ b/palettes/pastel/dream/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pastel-dream"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelDreamPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/pastel/dream/src/index.ts b/palettes/pastel/dream/src/index.ts index ebf14a538bf..2450f317ca6 100644 --- a/palettes/pastel/dream/src/index.ts +++ b/palettes/pastel/dream/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "pastel-dream"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelDreamPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/pastel/mint/CHANGELOG.md b/palettes/pastel/mint/CHANGELOG.md index bbb74c0b966..aa74b25e2cc 100644 --- a/palettes/pastel/mint/CHANGELOG.md +++ b/palettes/pastel/mint/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pastel-mint diff --git a/palettes/pastel/mint/README.md b/palettes/pastel/mint/README.md index 94011e333ea..f5fb0ab9cb4 100644 --- a/palettes/pastel/mint/README.md +++ b/palettes/pastel/mint/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/pastel/mint/package.dist.json b/palettes/pastel/mint/package.dist.json index f765b3b64cd..dd7a167dae6 100644 --- a/palettes/pastel/mint/package.dist.json +++ b/palettes/pastel/mint/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-mint", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel mint palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/pastel/mint/package.json b/palettes/pastel/mint/package.json index e18b3aaf222..48b8fd3513a 100644 --- a/palettes/pastel/mint/package.json +++ b/palettes/pastel/mint/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-mint", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel mint palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/pastel/mint/src/index.lazy.ts b/palettes/pastel/mint/src/index.lazy.ts index ab4b6eac73d..7cb2ff38ed7 100644 --- a/palettes/pastel/mint/src/index.lazy.ts +++ b/palettes/pastel/mint/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pastel-mint"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelMintPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/pastel/mint/src/index.ts b/palettes/pastel/mint/src/index.ts index b8912768a0e..51fe322a8b7 100644 --- a/palettes/pastel/mint/src/index.ts +++ b/palettes/pastel/mint/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "pastel-mint"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelMintPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/pastel/sunset/CHANGELOG.md b/palettes/pastel/sunset/CHANGELOG.md index 6792c762910..02bca567776 100644 --- a/palettes/pastel/sunset/CHANGELOG.md +++ b/palettes/pastel/sunset/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pastel-sunset diff --git a/palettes/pastel/sunset/README.md b/palettes/pastel/sunset/README.md index 3a863f88e1b..f1ed2d3f5a1 100644 --- a/palettes/pastel/sunset/README.md +++ b/palettes/pastel/sunset/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/pastel/sunset/package.dist.json b/palettes/pastel/sunset/package.dist.json index d252e848383..9b5417f89d6 100644 --- a/palettes/pastel/sunset/package.dist.json +++ b/palettes/pastel/sunset/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-sunset", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel sunset palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/pastel/sunset/package.json b/palettes/pastel/sunset/package.json index 1b8b80c6b7f..14184b61ee1 100644 --- a/palettes/pastel/sunset/package.json +++ b/palettes/pastel/sunset/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-sunset", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel sunset palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/pastel/sunset/src/index.lazy.ts b/palettes/pastel/sunset/src/index.lazy.ts index a23bb79efb2..c95746cc03d 100644 --- a/palettes/pastel/sunset/src/index.lazy.ts +++ b/palettes/pastel/sunset/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pastel-sunset"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelSunsetPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/pastel/sunset/src/index.ts b/palettes/pastel/sunset/src/index.ts index e2d2009d2a7..af68ac7707c 100644 --- a/palettes/pastel/sunset/src/index.ts +++ b/palettes/pastel/sunset/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "pastel-sunset"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelSunsetPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/pastel/warm/CHANGELOG.md b/palettes/pastel/warm/CHANGELOG.md index 8127b4a9281..23e5d1d61e8 100644 --- a/palettes/pastel/warm/CHANGELOG.md +++ b/palettes/pastel/warm/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pastel-warm diff --git a/palettes/pastel/warm/README.md b/palettes/pastel/warm/README.md index b90efb6e446..68de3bbd48b 100644 --- a/palettes/pastel/warm/README.md +++ b/palettes/pastel/warm/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/pastel/warm/package.dist.json b/palettes/pastel/warm/package.dist.json index aa34b3558c1..f5eb6152776 100644 --- a/palettes/pastel/warm/package.dist.json +++ b/palettes/pastel/warm/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel warm palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/pastel/warm/package.json b/palettes/pastel/warm/package.json index eab7d1c3dcc..f8dc5f3797e 100644 --- a/palettes/pastel/warm/package.json +++ b/palettes/pastel/warm/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pastel-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pastel warm palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/pastel/warm/src/index.lazy.ts b/palettes/pastel/warm/src/index.lazy.ts index 6540f0ed97c..9c226f03ddc 100644 --- a/palettes/pastel/warm/src/index.lazy.ts +++ b/palettes/pastel/warm/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pastel-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/pastel/warm/src/index.ts b/palettes/pastel/warm/src/index.ts index 6ae900ff0a9..42e0e5903ec 100644 --- a/palettes/pastel/warm/src/index.ts +++ b/palettes/pastel/warm/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "pastel-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPastelWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/auroraBorealis/CHANGELOG.md b/palettes/space/auroraBorealis/CHANGELOG.md index d497761b337..23b0110f94e 100644 --- a/palettes/space/auroraBorealis/CHANGELOG.md +++ b/palettes/space/auroraBorealis/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-aurora-borealis diff --git a/palettes/space/auroraBorealis/README.md b/palettes/space/auroraBorealis/README.md index 21215f1120f..db665a75608 100644 --- a/palettes/space/auroraBorealis/README.md +++ b/palettes/space/auroraBorealis/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/auroraBorealis/package.dist.json b/palettes/space/auroraBorealis/package.dist.json index 286915dc0cf..fc1a5a49bfc 100644 --- a/palettes/space/auroraBorealis/package.dist.json +++ b/palettes/space/auroraBorealis/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-aurora-borealis", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles aurora borealis palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/auroraBorealis/package.json b/palettes/space/auroraBorealis/package.json index ebd05bdae5c..24c81901d1c 100644 --- a/palettes/space/auroraBorealis/package.json +++ b/palettes/space/auroraBorealis/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-aurora-borealis", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles aurora borealis palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/auroraBorealis/src/index.lazy.ts b/palettes/space/auroraBorealis/src/index.lazy.ts index b609d81eb86..6cdab6ea7bb 100644 --- a/palettes/space/auroraBorealis/src/index.lazy.ts +++ b/palettes/space/auroraBorealis/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "aurora-borealis"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAuroraBorealisPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/auroraBorealis/src/index.ts b/palettes/space/auroraBorealis/src/index.ts index 5269df919c5..bf2e5f926e9 100644 --- a/palettes/space/auroraBorealis/src/index.ts +++ b/palettes/space/auroraBorealis/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "aurora-borealis"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAuroraBorealisPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/cosmicRadiation/CHANGELOG.md b/palettes/space/cosmicRadiation/CHANGELOG.md index f090f98a62d..1e3a742570b 100644 --- a/palettes/space/cosmicRadiation/CHANGELOG.md +++ b/palettes/space/cosmicRadiation/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-cosmic-radiation diff --git a/palettes/space/cosmicRadiation/README.md b/palettes/space/cosmicRadiation/README.md index 41154f4cea9..62b91ea27dd 100644 --- a/palettes/space/cosmicRadiation/README.md +++ b/palettes/space/cosmicRadiation/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/cosmicRadiation/package.dist.json b/palettes/space/cosmicRadiation/package.dist.json index 25a551ba42b..12b23f50b72 100644 --- a/palettes/space/cosmicRadiation/package.dist.json +++ b/palettes/space/cosmicRadiation/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cosmic-radiation", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cosmic radiation palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/cosmicRadiation/package.json b/palettes/space/cosmicRadiation/package.json index f5b125f96ba..c7ece529274 100644 --- a/palettes/space/cosmicRadiation/package.json +++ b/palettes/space/cosmicRadiation/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cosmic-radiation", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cosmic radiation palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/cosmicRadiation/src/index.lazy.ts b/palettes/space/cosmicRadiation/src/index.lazy.ts index c698db1e54d..39b646bde11 100644 --- a/palettes/space/cosmicRadiation/src/index.lazy.ts +++ b/palettes/space/cosmicRadiation/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "cosmic-radiation"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCosmicRadiationPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/cosmicRadiation/src/index.ts b/palettes/space/cosmicRadiation/src/index.ts index 13457b29da7..a1f61f3da83 100644 --- a/palettes/space/cosmicRadiation/src/index.ts +++ b/palettes/space/cosmicRadiation/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "cosmic-radiation"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCosmicRadiationPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/darkMatter/CHANGELOG.md b/palettes/space/darkMatter/CHANGELOG.md index b48dec73237..056c1d5dd27 100644 --- a/palettes/space/darkMatter/CHANGELOG.md +++ b/palettes/space/darkMatter/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-dark-matter diff --git a/palettes/space/darkMatter/README.md b/palettes/space/darkMatter/README.md index 93eb8d241bc..670ada3726b 100644 --- a/palettes/space/darkMatter/README.md +++ b/palettes/space/darkMatter/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/darkMatter/package.dist.json b/palettes/space/darkMatter/package.dist.json index 0a9c3d8ff27..8a22d9ae9fe 100644 --- a/palettes/space/darkMatter/package.dist.json +++ b/palettes/space/darkMatter/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dark-matter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dark matter palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/darkMatter/package.json b/palettes/space/darkMatter/package.json index 8354419ed2d..484226030ae 100644 --- a/palettes/space/darkMatter/package.json +++ b/palettes/space/darkMatter/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-dark-matter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles dark matter palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/darkMatter/src/index.lazy.ts b/palettes/space/darkMatter/src/index.lazy.ts index de5f4fec7dc..bb2cf8daabf 100644 --- a/palettes/space/darkMatter/src/index.lazy.ts +++ b/palettes/space/darkMatter/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "dark-matter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDarkMatterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/darkMatter/src/index.ts b/palettes/space/darkMatter/src/index.ts index 9c53018d316..6820d68545c 100644 --- a/palettes/space/darkMatter/src/index.ts +++ b/palettes/space/darkMatter/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "dark-matter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDarkMatterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/galaxyDust/CHANGELOG.md b/palettes/space/galaxyDust/CHANGELOG.md index f471cfc1d24..cdabd7d2446 100644 --- a/palettes/space/galaxyDust/CHANGELOG.md +++ b/palettes/space/galaxyDust/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-galaxy-dust diff --git a/palettes/space/galaxyDust/README.md b/palettes/space/galaxyDust/README.md index 52df6ab04c2..8ad6e8b1191 100644 --- a/palettes/space/galaxyDust/README.md +++ b/palettes/space/galaxyDust/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/galaxyDust/package.dist.json b/palettes/space/galaxyDust/package.dist.json index 34a2c1d0dfa..15722c84d23 100644 --- a/palettes/space/galaxyDust/package.dist.json +++ b/palettes/space/galaxyDust/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-galaxy-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles galaxy dust palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/galaxyDust/package.json b/palettes/space/galaxyDust/package.json index bc50e5b190a..03c971afdb9 100644 --- a/palettes/space/galaxyDust/package.json +++ b/palettes/space/galaxyDust/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-galaxy-dust", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles galaxy dust palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/galaxyDust/src/index.lazy.ts b/palettes/space/galaxyDust/src/index.lazy.ts index 81e79da9266..c17df1527e8 100644 --- a/palettes/space/galaxyDust/src/index.lazy.ts +++ b/palettes/space/galaxyDust/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "galaxy-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGalaxyDustPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/galaxyDust/src/index.ts b/palettes/space/galaxyDust/src/index.ts index e69a60f5feb..890ef9d9bf9 100644 --- a/palettes/space/galaxyDust/src/index.ts +++ b/palettes/space/galaxyDust/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "galaxy-dust"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGalaxyDustPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/nebula/CHANGELOG.md b/palettes/space/nebula/CHANGELOG.md index 92f304b9939..c0ff0ed4362 100644 --- a/palettes/space/nebula/CHANGELOG.md +++ b/palettes/space/nebula/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-nebula diff --git a/palettes/space/nebula/README.md b/palettes/space/nebula/README.md index 2a1e157b90d..bfef6f53f4b 100644 --- a/palettes/space/nebula/README.md +++ b/palettes/space/nebula/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/nebula/package.dist.json b/palettes/space/nebula/package.dist.json index 963f3d2ee40..0af65bf8479 100644 --- a/palettes/space/nebula/package.dist.json +++ b/palettes/space/nebula/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-nebula", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles nebula palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/nebula/package.json b/palettes/space/nebula/package.json index 47287aa26d9..f768372abe5 100644 --- a/palettes/space/nebula/package.json +++ b/palettes/space/nebula/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-nebula", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles nebula palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/nebula/src/index.lazy.ts b/palettes/space/nebula/src/index.lazy.ts index 6d3d67352c8..c603cd0fbb0 100644 --- a/palettes/space/nebula/src/index.lazy.ts +++ b/palettes/space/nebula/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "nebula"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNebulaPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/nebula/src/index.ts b/palettes/space/nebula/src/index.ts index e877d4ebd76..c3942e2b612 100644 --- a/palettes/space/nebula/src/index.ts +++ b/palettes/space/nebula/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "nebula"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNebulaPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/portal/CHANGELOG.md b/palettes/space/portal/CHANGELOG.md index 575d4cba14e..31c28380b36 100644 --- a/palettes/space/portal/CHANGELOG.md +++ b/palettes/space/portal/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-portal diff --git a/palettes/space/portal/README.md b/palettes/space/portal/README.md index 9de175cf105..5a5353e735c 100644 --- a/palettes/space/portal/README.md +++ b/palettes/space/portal/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/portal/package.dist.json b/palettes/space/portal/package.dist.json index bdedede866c..eb0bc3f5086 100644 --- a/palettes/space/portal/package.dist.json +++ b/palettes/space/portal/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-portal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles portal palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/portal/package.json b/palettes/space/portal/package.json index 40ea77a6773..2beea2ab07a 100644 --- a/palettes/space/portal/package.json +++ b/palettes/space/portal/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-portal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles portal palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/portal/src/index.lazy.ts b/palettes/space/portal/src/index.lazy.ts index 7b850f0c349..459cac4a4c8 100644 --- a/palettes/space/portal/src/index.lazy.ts +++ b/palettes/space/portal/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "portal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPortalPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/portal/src/index.ts b/palettes/space/portal/src/index.ts index d47ba4a05ae..f569768b24d 100644 --- a/palettes/space/portal/src/index.ts +++ b/palettes/space/portal/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "portal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPortalPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/pulsar/CHANGELOG.md b/palettes/space/pulsar/CHANGELOG.md index 4dd285a549e..60b3ec51821 100644 --- a/palettes/space/pulsar/CHANGELOG.md +++ b/palettes/space/pulsar/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-pulsar diff --git a/palettes/space/pulsar/README.md b/palettes/space/pulsar/README.md index 3059e792601..a6de0338f92 100644 --- a/palettes/space/pulsar/README.md +++ b/palettes/space/pulsar/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/pulsar/package.dist.json b/palettes/space/pulsar/package.dist.json index fcd1bef3229..62829b05db5 100644 --- a/palettes/space/pulsar/package.dist.json +++ b/palettes/space/pulsar/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pulsar", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pulsar palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/pulsar/package.json b/palettes/space/pulsar/package.json index 6d05f17033d..79e1dc9ecb6 100644 --- a/palettes/space/pulsar/package.json +++ b/palettes/space/pulsar/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-pulsar", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles pulsar palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/pulsar/src/index.lazy.ts b/palettes/space/pulsar/src/index.lazy.ts index 01bb98ce8f1..e7f14ffda36 100644 --- a/palettes/space/pulsar/src/index.lazy.ts +++ b/palettes/space/pulsar/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "pulsar"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPulsarPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/pulsar/src/index.ts b/palettes/space/pulsar/src/index.ts index ec69988fb3a..9cf8285dbb5 100644 --- a/palettes/space/pulsar/src/index.ts +++ b/palettes/space/pulsar/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "pulsar"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPulsarPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/solarWind/CHANGELOG.md b/palettes/space/solarWind/CHANGELOG.md index b12cd17583e..bfb742797d1 100644 --- a/palettes/space/solarWind/CHANGELOG.md +++ b/palettes/space/solarWind/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-solar-wind diff --git a/palettes/space/solarWind/README.md b/palettes/space/solarWind/README.md index 19ca43b8e01..7a372696a42 100644 --- a/palettes/space/solarWind/README.md +++ b/palettes/space/solarWind/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/solarWind/package.dist.json b/palettes/space/solarWind/package.dist.json index 206dc0e0215..8fa75c826b1 100644 --- a/palettes/space/solarWind/package.dist.json +++ b/palettes/space/solarWind/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-solar-wind", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles solar wind palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/solarWind/package.json b/palettes/space/solarWind/package.json index 0ff1903742d..c88fa20dc23 100644 --- a/palettes/space/solarWind/package.json +++ b/palettes/space/solarWind/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-solar-wind", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles solar wind palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/solarWind/src/index.lazy.ts b/palettes/space/solarWind/src/index.lazy.ts index dbfd6493879..235bf83720d 100644 --- a/palettes/space/solarWind/src/index.lazy.ts +++ b/palettes/space/solarWind/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "solar-wind"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSolarWindPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/solarWind/src/index.ts b/palettes/space/solarWind/src/index.ts index 478252c1415..34c8a14d6c7 100644 --- a/palettes/space/solarWind/src/index.ts +++ b/palettes/space/solarWind/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "solar-wind"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSolarWindPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/space/supernova/CHANGELOG.md b/palettes/space/supernova/CHANGELOG.md index b0b8dd98ae7..0d9137b28cc 100644 --- a/palettes/space/supernova/CHANGELOG.md +++ b/palettes/space/supernova/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-supernova diff --git a/palettes/space/supernova/README.md b/palettes/space/supernova/README.md index 4fc43b881aa..475c9a2e846 100644 --- a/palettes/space/supernova/README.md +++ b/palettes/space/supernova/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/space/supernova/package.dist.json b/palettes/space/supernova/package.dist.json index 6fe7aa823f2..46df90e0dff 100644 --- a/palettes/space/supernova/package.dist.json +++ b/palettes/space/supernova/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-supernova", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles supernova palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/space/supernova/package.json b/palettes/space/supernova/package.json index ff4a090455d..91d895bb865 100644 --- a/palettes/space/supernova/package.json +++ b/palettes/space/supernova/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-supernova", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles supernova palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/space/supernova/src/index.lazy.ts b/palettes/space/supernova/src/index.lazy.ts index 1871b8819bb..a0794c53d04 100644 --- a/palettes/space/supernova/src/index.lazy.ts +++ b/palettes/space/supernova/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "supernova"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSupernovaPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/space/supernova/src/index.ts b/palettes/space/supernova/src/index.ts index e4db1937e58..07705c78b6e 100644 --- a/palettes/space/supernova/src/index.ts +++ b/palettes/space/supernova/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "supernova"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSupernovaPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/acidPair/CHANGELOG.md b/palettes/spectrum/acidPair/CHANGELOG.md index 6a48ae4bd63..b4bfe314ab4 100644 --- a/palettes/spectrum/acidPair/CHANGELOG.md +++ b/palettes/spectrum/acidPair/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-acid-pair diff --git a/palettes/spectrum/acidPair/README.md b/palettes/spectrum/acidPair/README.md index 068f739e06b..1cb37aedb12 100644 --- a/palettes/spectrum/acidPair/README.md +++ b/palettes/spectrum/acidPair/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/acidPair/package.dist.json b/palettes/spectrum/acidPair/package.dist.json index 78aada927bd..5767bc61821 100644 --- a/palettes/spectrum/acidPair/package.dist.json +++ b/palettes/spectrum/acidPair/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-acid-pair", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles acid pair palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/acidPair/package.json b/palettes/spectrum/acidPair/package.json index b8d02aa45a7..d4edc9c9c13 100644 --- a/palettes/spectrum/acidPair/package.json +++ b/palettes/spectrum/acidPair/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-acid-pair", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles acid pair palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/acidPair/src/index.lazy.ts b/palettes/spectrum/acidPair/src/index.lazy.ts index cc0192f9c52..bca8a4376c1 100644 --- a/palettes/spectrum/acidPair/src/index.lazy.ts +++ b/palettes/spectrum/acidPair/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "acid-pair"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAcidPairPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/acidPair/src/index.ts b/palettes/spectrum/acidPair/src/index.ts index 1c3208f9c17..5ab2412f107 100644 --- a/palettes/spectrum/acidPair/src/index.ts +++ b/palettes/spectrum/acidPair/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "acid-pair"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAcidPairPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/cmySecondaries/CHANGELOG.md b/palettes/spectrum/cmySecondaries/CHANGELOG.md index 8e31afce557..c261539d280 100644 --- a/palettes/spectrum/cmySecondaries/CHANGELOG.md +++ b/palettes/spectrum/cmySecondaries/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-cmy-secondaries diff --git a/palettes/spectrum/cmySecondaries/README.md b/palettes/spectrum/cmySecondaries/README.md index 10611bbb122..100c669b325 100644 --- a/palettes/spectrum/cmySecondaries/README.md +++ b/palettes/spectrum/cmySecondaries/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/cmySecondaries/package.dist.json b/palettes/spectrum/cmySecondaries/package.dist.json index 42aa380823c..67cd48511af 100644 --- a/palettes/spectrum/cmySecondaries/package.dist.json +++ b/palettes/spectrum/cmySecondaries/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cmy-secondaries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cmy secondaries palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/cmySecondaries/package.json b/palettes/spectrum/cmySecondaries/package.json index fd6a8ec1525..0083c47656c 100644 --- a/palettes/spectrum/cmySecondaries/package.json +++ b/palettes/spectrum/cmySecondaries/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-cmy-secondaries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cmy secondaries palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/cmySecondaries/src/index.lazy.ts b/palettes/spectrum/cmySecondaries/src/index.lazy.ts index 0c9f84967f9..fbf263f323d 100644 --- a/palettes/spectrum/cmySecondaries/src/index.lazy.ts +++ b/palettes/spectrum/cmySecondaries/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "cmy-secondaries"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCmySecondariesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/cmySecondaries/src/index.ts b/palettes/spectrum/cmySecondaries/src/index.ts index 10a39e57ac8..bd481545fb3 100644 --- a/palettes/spectrum/cmySecondaries/src/index.ts +++ b/palettes/spectrum/cmySecondaries/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "cmy-secondaries"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCmySecondariesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/dualityBlueYellow/CHANGELOG.md b/palettes/spectrum/dualityBlueYellow/CHANGELOG.md index f6a905e31b1..205fb8ced07 100644 --- a/palettes/spectrum/dualityBlueYellow/CHANGELOG.md +++ b/palettes/spectrum/dualityBlueYellow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-duality-blue-yellow diff --git a/palettes/spectrum/dualityBlueYellow/README.md b/palettes/spectrum/dualityBlueYellow/README.md index 8e4626affa4..13019e354ec 100644 --- a/palettes/spectrum/dualityBlueYellow/README.md +++ b/palettes/spectrum/dualityBlueYellow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/dualityBlueYellow/package.dist.json b/palettes/spectrum/dualityBlueYellow/package.dist.json index 7140c7899b5..0b08845e3f4 100644 --- a/palettes/spectrum/dualityBlueYellow/package.dist.json +++ b/palettes/spectrum/dualityBlueYellow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-blue-yellow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality - blue/yellow palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/dualityBlueYellow/package.json b/palettes/spectrum/dualityBlueYellow/package.json index 1b053159dce..3d11f18d65c 100644 --- a/palettes/spectrum/dualityBlueYellow/package.json +++ b/palettes/spectrum/dualityBlueYellow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-blue-yellow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality - blue/yellow palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/dualityBlueYellow/src/index.lazy.ts b/palettes/spectrum/dualityBlueYellow/src/index.lazy.ts index 81c0ecebce6..ee3188cf5fb 100644 --- a/palettes/spectrum/dualityBlueYellow/src/index.lazy.ts +++ b/palettes/spectrum/dualityBlueYellow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "duality-blue-yellow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityBlueYellowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/dualityBlueYellow/src/index.ts b/palettes/spectrum/dualityBlueYellow/src/index.ts index e071c1312a8..e45a0640a0e 100644 --- a/palettes/spectrum/dualityBlueYellow/src/index.ts +++ b/palettes/spectrum/dualityBlueYellow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "duality-blue-yellow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityBlueYellowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/dualityGreenMagenta/CHANGELOG.md b/palettes/spectrum/dualityGreenMagenta/CHANGELOG.md index db8b5092e41..02625d3691d 100644 --- a/palettes/spectrum/dualityGreenMagenta/CHANGELOG.md +++ b/palettes/spectrum/dualityGreenMagenta/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-duality-green-magenta diff --git a/palettes/spectrum/dualityGreenMagenta/README.md b/palettes/spectrum/dualityGreenMagenta/README.md index ee024063388..6a2ef43a4e1 100644 --- a/palettes/spectrum/dualityGreenMagenta/README.md +++ b/palettes/spectrum/dualityGreenMagenta/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/dualityGreenMagenta/package.dist.json b/palettes/spectrum/dualityGreenMagenta/package.dist.json index a213dfba1fe..f48263634b3 100644 --- a/palettes/spectrum/dualityGreenMagenta/package.dist.json +++ b/palettes/spectrum/dualityGreenMagenta/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-green-magenta", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality - green/magenta palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/dualityGreenMagenta/package.json b/palettes/spectrum/dualityGreenMagenta/package.json index 6cbddb13011..e1bce98fa36 100644 --- a/palettes/spectrum/dualityGreenMagenta/package.json +++ b/palettes/spectrum/dualityGreenMagenta/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-green-magenta", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality - green/magenta palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/dualityGreenMagenta/src/index.lazy.ts b/palettes/spectrum/dualityGreenMagenta/src/index.lazy.ts index 1bc59e4a4f4..c010a4da846 100644 --- a/palettes/spectrum/dualityGreenMagenta/src/index.lazy.ts +++ b/palettes/spectrum/dualityGreenMagenta/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "duality-green-magenta"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityGreenMagentaPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/dualityGreenMagenta/src/index.ts b/palettes/spectrum/dualityGreenMagenta/src/index.ts index 90b666dadc5..4bebe2647b3 100644 --- a/palettes/spectrum/dualityGreenMagenta/src/index.ts +++ b/palettes/spectrum/dualityGreenMagenta/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "duality-green-magenta"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityGreenMagentaPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/dualityRedCyan/CHANGELOG.md b/palettes/spectrum/dualityRedCyan/CHANGELOG.md index 0d3b49e377a..1a966dd7677 100644 --- a/palettes/spectrum/dualityRedCyan/CHANGELOG.md +++ b/palettes/spectrum/dualityRedCyan/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-duality-red-cyan diff --git a/palettes/spectrum/dualityRedCyan/README.md b/palettes/spectrum/dualityRedCyan/README.md index 6eb54e0d1c2..5f544d8d4d2 100644 --- a/palettes/spectrum/dualityRedCyan/README.md +++ b/palettes/spectrum/dualityRedCyan/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/dualityRedCyan/package.dist.json b/palettes/spectrum/dualityRedCyan/package.dist.json index 63527384e90..a378d375fad 100644 --- a/palettes/spectrum/dualityRedCyan/package.dist.json +++ b/palettes/spectrum/dualityRedCyan/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-red-cyan", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality red/cyan palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/dualityRedCyan/package.json b/palettes/spectrum/dualityRedCyan/package.json index e13546d2184..44e99bdc33f 100644 --- a/palettes/spectrum/dualityRedCyan/package.json +++ b/palettes/spectrum/dualityRedCyan/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-duality-red-cyan", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles duality red/cyan palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/dualityRedCyan/src/index.lazy.ts b/palettes/spectrum/dualityRedCyan/src/index.lazy.ts index 66a7e283687..7a2b4b8a8f3 100644 --- a/palettes/spectrum/dualityRedCyan/src/index.lazy.ts +++ b/palettes/spectrum/dualityRedCyan/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "duality-red-cyan"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityRedCyanPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/dualityRedCyan/src/index.ts b/palettes/spectrum/dualityRedCyan/src/index.ts index 3708149fc45..59899c71685 100644 --- a/palettes/spectrum/dualityRedCyan/src/index.ts +++ b/palettes/spectrum/dualityRedCyan/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "duality-red-cyan"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDualityRedCyanPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/fullSpectrum/CHANGELOG.md b/palettes/spectrum/fullSpectrum/CHANGELOG.md index 0388a59e6c4..63e8ba097ab 100644 --- a/palettes/spectrum/fullSpectrum/CHANGELOG.md +++ b/palettes/spectrum/fullSpectrum/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-full-spectrum diff --git a/palettes/spectrum/fullSpectrum/README.md b/palettes/spectrum/fullSpectrum/README.md index b76090d0836..4e68f3a2968 100644 --- a/palettes/spectrum/fullSpectrum/README.md +++ b/palettes/spectrum/fullSpectrum/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/fullSpectrum/package.dist.json b/palettes/spectrum/fullSpectrum/package.dist.json index 7f2e0f52678..5fea2039088 100644 --- a/palettes/spectrum/fullSpectrum/package.dist.json +++ b/palettes/spectrum/fullSpectrum/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-full-spectrum", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles full spectrum - high saturation palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/fullSpectrum/package.json b/palettes/spectrum/fullSpectrum/package.json index 5a0f96eab15..cb4c6a455fb 100644 --- a/palettes/spectrum/fullSpectrum/package.json +++ b/palettes/spectrum/fullSpectrum/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-full-spectrum", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles full spectrum - high saturation palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/fullSpectrum/src/index.lazy.ts b/palettes/spectrum/fullSpectrum/src/index.lazy.ts index 16220b79156..d724042c275 100644 --- a/palettes/spectrum/fullSpectrum/src/index.lazy.ts +++ b/palettes/spectrum/fullSpectrum/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "full-spectrum"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullSpectrumPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/fullSpectrum/src/index.ts b/palettes/spectrum/fullSpectrum/src/index.ts index ecf7df5108a..3de4e067e35 100644 --- a/palettes/spectrum/fullSpectrum/src/index.ts +++ b/palettes/spectrum/fullSpectrum/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "full-spectrum"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullSpectrumPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/okabeItoAccessible/CHANGELOG.md b/palettes/spectrum/okabeItoAccessible/CHANGELOG.md index 3389fbcc61b..c40e321a6dd 100644 --- a/palettes/spectrum/okabeItoAccessible/CHANGELOG.md +++ b/palettes/spectrum/okabeItoAccessible/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-okabe-ito-accessible diff --git a/palettes/spectrum/okabeItoAccessible/README.md b/palettes/spectrum/okabeItoAccessible/README.md index 3afbf5a3f29..466654b5fa2 100644 --- a/palettes/spectrum/okabeItoAccessible/README.md +++ b/palettes/spectrum/okabeItoAccessible/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/okabeItoAccessible/package.dist.json b/palettes/spectrum/okabeItoAccessible/package.dist.json index 34b7b6b801f..7910f0a577a 100644 --- a/palettes/spectrum/okabeItoAccessible/package.dist.json +++ b/palettes/spectrum/okabeItoAccessible/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-okabe-ito-accessible", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles okabe ito accessible palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/okabeItoAccessible/package.json b/palettes/spectrum/okabeItoAccessible/package.json index f1dfb05e658..4d87a6e7d41 100644 --- a/palettes/spectrum/okabeItoAccessible/package.json +++ b/palettes/spectrum/okabeItoAccessible/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-okabe-ito-accessible", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles okabe ito accessible palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/okabeItoAccessible/src/index.lazy.ts b/palettes/spectrum/okabeItoAccessible/src/index.lazy.ts index c3abd5040cf..83125f5c58e 100644 --- a/palettes/spectrum/okabeItoAccessible/src/index.lazy.ts +++ b/palettes/spectrum/okabeItoAccessible/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "okabe-ito-accessible"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOkabeItoAccessiblePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/okabeItoAccessible/src/index.ts b/palettes/spectrum/okabeItoAccessible/src/index.ts index c2ff256f917..c15cef35177 100644 --- a/palettes/spectrum/okabeItoAccessible/src/index.ts +++ b/palettes/spectrum/okabeItoAccessible/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "okabe-ito-accessible"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOkabeItoAccessiblePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/prismScatter/CHANGELOG.md b/palettes/spectrum/prismScatter/CHANGELOG.md index 228f6e0ab57..1cdc381cd44 100644 --- a/palettes/spectrum/prismScatter/CHANGELOG.md +++ b/palettes/spectrum/prismScatter/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-prism-scatter diff --git a/palettes/spectrum/prismScatter/README.md b/palettes/spectrum/prismScatter/README.md index 0edbe5193ff..7aa4e580101 100644 --- a/palettes/spectrum/prismScatter/README.md +++ b/palettes/spectrum/prismScatter/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/prismScatter/package.dist.json b/palettes/spectrum/prismScatter/package.dist.json index 27aa8e03aeb..bd409926f73 100644 --- a/palettes/spectrum/prismScatter/package.dist.json +++ b/palettes/spectrum/prismScatter/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-prism-scatter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles prism scatter palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/prismScatter/package.json b/palettes/spectrum/prismScatter/package.json index 39c65537d70..d40f9bf3268 100644 --- a/palettes/spectrum/prismScatter/package.json +++ b/palettes/spectrum/prismScatter/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-prism-scatter", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles prism scatter palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/prismScatter/src/index.lazy.ts b/palettes/spectrum/prismScatter/src/index.lazy.ts index b3ea301e20c..8d8ad63e734 100644 --- a/palettes/spectrum/prismScatter/src/index.lazy.ts +++ b/palettes/spectrum/prismScatter/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "prism-scatter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPrismScatterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/prismScatter/src/index.ts b/palettes/spectrum/prismScatter/src/index.ts index bcc819dc838..cb6e2c16b8f 100644 --- a/palettes/spectrum/prismScatter/src/index.ts +++ b/palettes/spectrum/prismScatter/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "prism-scatter"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPrismScatterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/rainbow/CHANGELOG.md b/palettes/spectrum/rainbow/CHANGELOG.md index 62b039c1c2a..666e1a32d5c 100644 --- a/palettes/spectrum/rainbow/CHANGELOG.md +++ b/palettes/spectrum/rainbow/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rainbow diff --git a/palettes/spectrum/rainbow/README.md b/palettes/spectrum/rainbow/README.md index 17fe0bd5748..70459526cb3 100644 --- a/palettes/spectrum/rainbow/README.md +++ b/palettes/spectrum/rainbow/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/rainbow/package.dist.json b/palettes/spectrum/rainbow/package.dist.json index 2024545c38e..a239f26f974 100644 --- a/palettes/spectrum/rainbow/package.dist.json +++ b/palettes/spectrum/rainbow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rainbow - maximum saturation srgb palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/rainbow/package.json b/palettes/spectrum/rainbow/package.json index 2a0d84d5a49..f334d76611a 100644 --- a/palettes/spectrum/rainbow/package.json +++ b/palettes/spectrum/rainbow/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rainbow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rainbow - maximum saturation srgb palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/rainbow/src/index.lazy.ts b/palettes/spectrum/rainbow/src/index.lazy.ts index b13f0b29cd5..3acc1bb2098 100644 --- a/palettes/spectrum/rainbow/src/index.lazy.ts +++ b/palettes/spectrum/rainbow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "spectrum-rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpectrumRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/rainbow/src/index.ts b/palettes/spectrum/rainbow/src/index.ts index 4447f20e1dd..c5318887db0 100644 --- a/palettes/spectrum/rainbow/src/index.ts +++ b/palettes/spectrum/rainbow/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rainbow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRainbowPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/spectrum/rgbPrimaries/CHANGELOG.md b/palettes/spectrum/rgbPrimaries/CHANGELOG.md index 3c6f0baf84f..8ec30f80648 100644 --- a/palettes/spectrum/rgbPrimaries/CHANGELOG.md +++ b/palettes/spectrum/rgbPrimaries/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rgb-primaries diff --git a/palettes/spectrum/rgbPrimaries/README.md b/palettes/spectrum/rgbPrimaries/README.md index 7adf127f7bc..3b140963731 100644 --- a/palettes/spectrum/rgbPrimaries/README.md +++ b/palettes/spectrum/rgbPrimaries/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/spectrum/rgbPrimaries/package.dist.json b/palettes/spectrum/rgbPrimaries/package.dist.json index bb02942fcfc..b28391aacf1 100644 --- a/palettes/spectrum/rgbPrimaries/package.dist.json +++ b/palettes/spectrum/rgbPrimaries/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rgb-primaries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rgb primaries palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/spectrum/rgbPrimaries/package.json b/palettes/spectrum/rgbPrimaries/package.json index fad895c5ec3..b942bc1c46c 100644 --- a/palettes/spectrum/rgbPrimaries/package.json +++ b/palettes/spectrum/rgbPrimaries/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rgb-primaries", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rgb primaries palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/spectrum/rgbPrimaries/src/index.lazy.ts b/palettes/spectrum/rgbPrimaries/src/index.lazy.ts index 7844f06eeb5..be171f8008a 100644 --- a/palettes/spectrum/rgbPrimaries/src/index.lazy.ts +++ b/palettes/spectrum/rgbPrimaries/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "rgb-primaries"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRgbPrimariesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/spectrum/rgbPrimaries/src/index.ts b/palettes/spectrum/rgbPrimaries/src/index.ts index ae7c8b078e1..4e92c12fb8c 100644 --- a/palettes/spectrum/rgbPrimaries/src/index.ts +++ b/palettes/spectrum/rgbPrimaries/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rgb-primaries"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRgbPrimariesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/crtPhosphor/CHANGELOG.md b/palettes/tech/crtPhosphor/CHANGELOG.md index 5fd45e50c72..4ff0a11518e 100644 --- a/palettes/tech/crtPhosphor/CHANGELOG.md +++ b/palettes/tech/crtPhosphor/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-crt-phosphor diff --git a/palettes/tech/crtPhosphor/README.md b/palettes/tech/crtPhosphor/README.md index 39dff196e11..e9b55b2ae8f 100644 --- a/palettes/tech/crtPhosphor/README.md +++ b/palettes/tech/crtPhosphor/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/crtPhosphor/package.dist.json b/palettes/tech/crtPhosphor/package.dist.json index 9beb93df07f..90e9298078a 100644 --- a/palettes/tech/crtPhosphor/package.dist.json +++ b/palettes/tech/crtPhosphor/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-crt-phosphor", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles crt phosphor palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/crtPhosphor/package.json b/palettes/tech/crtPhosphor/package.json index 39d9ddc7966..71a40bcc5c6 100644 --- a/palettes/tech/crtPhosphor/package.json +++ b/palettes/tech/crtPhosphor/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-crt-phosphor", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles crt phosphor palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/crtPhosphor/src/index.lazy.ts b/palettes/tech/crtPhosphor/src/index.lazy.ts index 97e6a44c02b..55b1303f639 100644 --- a/palettes/tech/crtPhosphor/src/index.lazy.ts +++ b/palettes/tech/crtPhosphor/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "crt-phosphor"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCrtPhosphorPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/crtPhosphor/src/index.ts b/palettes/tech/crtPhosphor/src/index.ts index bf4e2d1fd8f..fbd35c7a2f0 100644 --- a/palettes/tech/crtPhosphor/src/index.ts +++ b/palettes/tech/crtPhosphor/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "crt-phosphor"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCrtPhosphorPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/glitch/CHANGELOG.md b/palettes/tech/glitch/CHANGELOG.md index 550cde685e5..0fbe750e0d5 100644 --- a/palettes/tech/glitch/CHANGELOG.md +++ b/palettes/tech/glitch/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-glitch diff --git a/palettes/tech/glitch/README.md b/palettes/tech/glitch/README.md index 46a018c7028..404d4656f8d 100644 --- a/palettes/tech/glitch/README.md +++ b/palettes/tech/glitch/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/glitch/package.dist.json b/palettes/tech/glitch/package.dist.json index 2dad4dc0956..d7d34eae299 100644 --- a/palettes/tech/glitch/package.dist.json +++ b/palettes/tech/glitch/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-glitch", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles glitch - full rgb shift palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/glitch/package.json b/palettes/tech/glitch/package.json index 73b2f38fb7c..2a7418266df 100644 --- a/palettes/tech/glitch/package.json +++ b/palettes/tech/glitch/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-glitch", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles glitch - full rgb shift palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/glitch/src/index.lazy.ts b/palettes/tech/glitch/src/index.lazy.ts index 0a02ab657bd..0c234cf2581 100644 --- a/palettes/tech/glitch/src/index.lazy.ts +++ b/palettes/tech/glitch/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "glitch"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGlitchPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/glitch/src/index.ts b/palettes/tech/glitch/src/index.ts index ae8737dda03..536bc876ddf 100644 --- a/palettes/tech/glitch/src/index.ts +++ b/palettes/tech/glitch/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "glitch"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGlitchPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/hologram/CHANGELOG.md b/palettes/tech/hologram/CHANGELOG.md index 3703ed94b65..3f6f6604a1c 100644 --- a/palettes/tech/hologram/CHANGELOG.md +++ b/palettes/tech/hologram/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-hologram diff --git a/palettes/tech/hologram/README.md b/palettes/tech/hologram/README.md index 6dad5aaa7be..2a22fc538aa 100644 --- a/palettes/tech/hologram/README.md +++ b/palettes/tech/hologram/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/hologram/package.dist.json b/palettes/tech/hologram/package.dist.json index 47c3d244485..0c180d77b77 100644 --- a/palettes/tech/hologram/package.dist.json +++ b/palettes/tech/hologram/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-hologram", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles hologram palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/hologram/package.json b/palettes/tech/hologram/package.json index 31dc9d9d393..86a0d4d821d 100644 --- a/palettes/tech/hologram/package.json +++ b/palettes/tech/hologram/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-hologram", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles hologram palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/hologram/src/index.lazy.ts b/palettes/tech/hologram/src/index.lazy.ts index c1060f15c78..e8e0e38e6d9 100644 --- a/palettes/tech/hologram/src/index.lazy.ts +++ b/palettes/tech/hologram/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "hologram"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHologramPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/hologram/src/index.ts b/palettes/tech/hologram/src/index.ts index ed4a0285c12..b4ea99c90c9 100644 --- a/palettes/tech/hologram/src/index.ts +++ b/palettes/tech/hologram/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "hologram"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHologramPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/lofiWarm/CHANGELOG.md b/palettes/tech/lofiWarm/CHANGELOG.md index 3e4b087c47d..067da10eeee 100644 --- a/palettes/tech/lofiWarm/CHANGELOG.md +++ b/palettes/tech/lofiWarm/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-lofi-warm diff --git a/palettes/tech/lofiWarm/README.md b/palettes/tech/lofiWarm/README.md index 214495af804..b89974d511c 100644 --- a/palettes/tech/lofiWarm/README.md +++ b/palettes/tech/lofiWarm/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/lofiWarm/package.dist.json b/palettes/tech/lofiWarm/package.dist.json index 2a63d76d080..f6bee15a76c 100644 --- a/palettes/tech/lofiWarm/package.dist.json +++ b/palettes/tech/lofiWarm/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lofi-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lo-fi warm palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/lofiWarm/package.json b/palettes/tech/lofiWarm/package.json index 00401ca8333..c0eef3d1bd1 100644 --- a/palettes/tech/lofiWarm/package.json +++ b/palettes/tech/lofiWarm/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lofi-warm", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lo-fi warm palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/lofiWarm/src/index.lazy.ts b/palettes/tech/lofiWarm/src/index.lazy.ts index f1cf161e0b7..a0c223a2506 100644 --- a/palettes/tech/lofiWarm/src/index.lazy.ts +++ b/palettes/tech/lofiWarm/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "lofi-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLofiWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/lofiWarm/src/index.ts b/palettes/tech/lofiWarm/src/index.ts index 66950cae175..611da958f9f 100644 --- a/palettes/tech/lofiWarm/src/index.ts +++ b/palettes/tech/lofiWarm/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "lofi-warm"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLofiWarmPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/matrixRain/CHANGELOG.md b/palettes/tech/matrixRain/CHANGELOG.md index fbb2a24836f..3aa22c81491 100644 --- a/palettes/tech/matrixRain/CHANGELOG.md +++ b/palettes/tech/matrixRain/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-matrix-rain diff --git a/palettes/tech/matrixRain/README.md b/palettes/tech/matrixRain/README.md index da8d4c5672b..f9a164f46a0 100644 --- a/palettes/tech/matrixRain/README.md +++ b/palettes/tech/matrixRain/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/matrixRain/package.dist.json b/palettes/tech/matrixRain/package.dist.json index c444ec77657..706fe8cf646 100644 --- a/palettes/tech/matrixRain/package.dist.json +++ b/palettes/tech/matrixRain/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-matrix-rain", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles matrix rain palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/matrixRain/package.json b/palettes/tech/matrixRain/package.json index efc9df8edff..6d064099363 100644 --- a/palettes/tech/matrixRain/package.json +++ b/palettes/tech/matrixRain/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-matrix-rain", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles matrix rain palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/matrixRain/src/index.lazy.ts b/palettes/tech/matrixRain/src/index.lazy.ts index 79ea510104f..2c15c97a74d 100644 --- a/palettes/tech/matrixRain/src/index.lazy.ts +++ b/palettes/tech/matrixRain/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "matrix-rain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixRainPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/matrixRain/src/index.ts b/palettes/tech/matrixRain/src/index.ts index e063255f7bd..7afbdc5b197 100644 --- a/palettes/tech/matrixRain/src/index.ts +++ b/palettes/tech/matrixRain/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "matrix-rain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixRainPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/neonCity/CHANGELOG.md b/palettes/tech/neonCity/CHANGELOG.md index 59ffe2ff51f..e83d164d7df 100644 --- a/palettes/tech/neonCity/CHANGELOG.md +++ b/palettes/tech/neonCity/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-neon-city diff --git a/palettes/tech/neonCity/README.md b/palettes/tech/neonCity/README.md index 97f7396996d..b2be8a783eb 100644 --- a/palettes/tech/neonCity/README.md +++ b/palettes/tech/neonCity/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/neonCity/package.dist.json b/palettes/tech/neonCity/package.dist.json index 169e1e80a15..6ac93b7403f 100644 --- a/palettes/tech/neonCity/package.dist.json +++ b/palettes/tech/neonCity/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-neon-city", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles neon city palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/neonCity/package.json b/palettes/tech/neonCity/package.json index dfbaaed10c8..68289a03f5a 100644 --- a/palettes/tech/neonCity/package.json +++ b/palettes/tech/neonCity/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-neon-city", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles neon city palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/neonCity/src/index.lazy.ts b/palettes/tech/neonCity/src/index.lazy.ts index 76f9ca24ae4..0a9c692a519 100644 --- a/palettes/tech/neonCity/src/index.lazy.ts +++ b/palettes/tech/neonCity/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "neon-city"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNeonCityPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/neonCity/src/index.ts b/palettes/tech/neonCity/src/index.ts index 31b75e8b243..1f7c52b69f4 100644 --- a/palettes/tech/neonCity/src/index.ts +++ b/palettes/tech/neonCity/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "neon-city"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNeonCityPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/networkNodes/CHANGELOG.md b/palettes/tech/networkNodes/CHANGELOG.md index 1ca46670b99..053c08f1224 100644 --- a/palettes/tech/networkNodes/CHANGELOG.md +++ b/palettes/tech/networkNodes/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-network-nodes diff --git a/palettes/tech/networkNodes/README.md b/palettes/tech/networkNodes/README.md index 06edadbba27..9cbf67c1034 100644 --- a/palettes/tech/networkNodes/README.md +++ b/palettes/tech/networkNodes/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/networkNodes/package.dist.json b/palettes/tech/networkNodes/package.dist.json index 09dcb16bde7..4440d91b58b 100644 --- a/palettes/tech/networkNodes/package.dist.json +++ b/palettes/tech/networkNodes/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-network-nodes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles network nodes palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/networkNodes/package.json b/palettes/tech/networkNodes/package.json index 42468f6d7c8..bf6591ddab4 100644 --- a/palettes/tech/networkNodes/package.json +++ b/palettes/tech/networkNodes/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-network-nodes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles network nodes palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/networkNodes/src/index.lazy.ts b/palettes/tech/networkNodes/src/index.lazy.ts index c6a8d690f5e..3b725fb7c46 100644 --- a/palettes/tech/networkNodes/src/index.lazy.ts +++ b/palettes/tech/networkNodes/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "network-nodes"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNetworkNodesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/networkNodes/src/index.ts b/palettes/tech/networkNodes/src/index.ts index e08fffb0a98..754781dedb2 100644 --- a/palettes/tech/networkNodes/src/index.ts +++ b/palettes/tech/networkNodes/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "network-nodes"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadNetworkNodesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/plasmaArc/CHANGELOG.md b/palettes/tech/plasmaArc/CHANGELOG.md index bb05b14caa7..c142e26af60 100644 --- a/palettes/tech/plasmaArc/CHANGELOG.md +++ b/palettes/tech/plasmaArc/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-plasma-arc diff --git a/palettes/tech/plasmaArc/README.md b/palettes/tech/plasmaArc/README.md index 577169511ac..2a6ac087360 100644 --- a/palettes/tech/plasmaArc/README.md +++ b/palettes/tech/plasmaArc/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/plasmaArc/package.dist.json b/palettes/tech/plasmaArc/package.dist.json index 2fe7037a1c2..cf1209a8c12 100644 --- a/palettes/tech/plasmaArc/package.dist.json +++ b/palettes/tech/plasmaArc/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-plasma-arc", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles plasma arc palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/plasmaArc/package.json b/palettes/tech/plasmaArc/package.json index 863e9dc7b2f..5e65885f471 100644 --- a/palettes/tech/plasmaArc/package.json +++ b/palettes/tech/plasmaArc/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-plasma-arc", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles plasma arc palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/plasmaArc/src/index.lazy.ts b/palettes/tech/plasmaArc/src/index.lazy.ts index 26f52fc15ef..538a0a1d191 100644 --- a/palettes/tech/plasmaArc/src/index.lazy.ts +++ b/palettes/tech/plasmaArc/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "plasma-arc"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPlasmaArcPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/plasmaArc/src/index.ts b/palettes/tech/plasmaArc/src/index.ts index 30742ea9d8d..25f6849d335 100644 --- a/palettes/tech/plasmaArc/src/index.ts +++ b/palettes/tech/plasmaArc/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "plasma-arc"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPlasmaArcPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/tech/vaporwave/CHANGELOG.md b/palettes/tech/vaporwave/CHANGELOG.md index 0e9ea59be77..c14e56aea2c 100644 --- a/palettes/tech/vaporwave/CHANGELOG.md +++ b/palettes/tech/vaporwave/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vaporwave diff --git a/palettes/tech/vaporwave/README.md b/palettes/tech/vaporwave/README.md index 2a17f32b61b..bc55d822b28 100644 --- a/palettes/tech/vaporwave/README.md +++ b/palettes/tech/vaporwave/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/tech/vaporwave/package.dist.json b/palettes/tech/vaporwave/package.dist.json index 89419241a2a..f1a34b9e8af 100644 --- a/palettes/tech/vaporwave/package.dist.json +++ b/palettes/tech/vaporwave/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vaporwave", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vaporwave palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/tech/vaporwave/package.json b/palettes/tech/vaporwave/package.json index dcac5326cde..e0e53546b94 100644 --- a/palettes/tech/vaporwave/package.json +++ b/palettes/tech/vaporwave/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vaporwave", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vaporwave palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/tech/vaporwave/src/index.lazy.ts b/palettes/tech/vaporwave/src/index.lazy.ts index f9d7588ec30..ca56df78f3a 100644 --- a/palettes/tech/vaporwave/src/index.lazy.ts +++ b/palettes/tech/vaporwave/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vaporwave"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVaporwavePalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/tech/vaporwave/src/index.ts b/palettes/tech/vaporwave/src/index.ts index 1f9557c5c6e..6c34f841af5 100644 --- a/palettes/tech/vaporwave/src/index.ts +++ b/palettes/tech/vaporwave/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "vaporwave"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVaporwavePalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/vibrant/default/CHANGELOG.md b/palettes/vibrant/default/CHANGELOG.md index 9983581fd8c..f2eb3fad038 100644 --- a/palettes/vibrant/default/CHANGELOG.md +++ b/palettes/vibrant/default/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vibrant diff --git a/palettes/vibrant/default/README.md b/palettes/vibrant/default/README.md index 5f2c4fc29f4..b04ef8b1779 100644 --- a/palettes/vibrant/default/README.md +++ b/palettes/vibrant/default/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/vibrant/default/package.dist.json b/palettes/vibrant/default/package.dist.json index 25de62e90bc..5992dac1b44 100644 --- a/palettes/vibrant/default/package.dist.json +++ b/palettes/vibrant/default/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/vibrant/default/package.json b/palettes/vibrant/default/package.json index e6675c7d8c0..d74792b3eb0 100644 --- a/palettes/vibrant/default/package.json +++ b/palettes/vibrant/default/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/vibrant/default/src/index.lazy.ts b/palettes/vibrant/default/src/index.lazy.ts index 1275c5c1bf3..16b95baec82 100644 --- a/palettes/vibrant/default/src/index.lazy.ts +++ b/palettes/vibrant/default/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vibrant"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/vibrant/default/src/index.ts b/palettes/vibrant/default/src/index.ts index 33997562bd3..e41ac2fcdf1 100644 --- a/palettes/vibrant/default/src/index.ts +++ b/palettes/vibrant/default/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "vibrant"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/vibrant/electric/CHANGELOG.md b/palettes/vibrant/electric/CHANGELOG.md index e772fd3ca67..684efeb5714 100644 --- a/palettes/vibrant/electric/CHANGELOG.md +++ b/palettes/vibrant/electric/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vibrant-electric diff --git a/palettes/vibrant/electric/README.md b/palettes/vibrant/electric/README.md index dee77807c0a..4d36593fd1e 100644 --- a/palettes/vibrant/electric/README.md +++ b/palettes/vibrant/electric/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/vibrant/electric/package.dist.json b/palettes/vibrant/electric/package.dist.json index 599e05630d9..432de62b090 100644 --- a/palettes/vibrant/electric/package.dist.json +++ b/palettes/vibrant/electric/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-electric", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant electric palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/vibrant/electric/package.json b/palettes/vibrant/electric/package.json index ac6aa7063c4..2fc1c668013 100644 --- a/palettes/vibrant/electric/package.json +++ b/palettes/vibrant/electric/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-electric", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant electric palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/vibrant/electric/src/index.lazy.ts b/palettes/vibrant/electric/src/index.lazy.ts index 271b734b22d..82f7331976f 100644 --- a/palettes/vibrant/electric/src/index.lazy.ts +++ b/palettes/vibrant/electric/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vibrant-electric"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantElectricPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/vibrant/electric/src/index.ts b/palettes/vibrant/electric/src/index.ts index 9a1e84f43ff..2d143d19410 100644 --- a/palettes/vibrant/electric/src/index.ts +++ b/palettes/vibrant/electric/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "vibrant-electric"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantElectricPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/vibrant/neon/CHANGELOG.md b/palettes/vibrant/neon/CHANGELOG.md index 5603519e43e..c1bab9c5928 100644 --- a/palettes/vibrant/neon/CHANGELOG.md +++ b/palettes/vibrant/neon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vibrant-neon diff --git a/palettes/vibrant/neon/README.md b/palettes/vibrant/neon/README.md index 7825e8dcca1..051c9d9d0c0 100644 --- a/palettes/vibrant/neon/README.md +++ b/palettes/vibrant/neon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/vibrant/neon/package.dist.json b/palettes/vibrant/neon/package.dist.json index edb822d8d67..acf2550262e 100644 --- a/palettes/vibrant/neon/package.dist.json +++ b/palettes/vibrant/neon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant neon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/vibrant/neon/package.json b/palettes/vibrant/neon/package.json index ca24080b030..bc43fe039fd 100644 --- a/palettes/vibrant/neon/package.json +++ b/palettes/vibrant/neon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-neon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant neon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/vibrant/neon/src/index.lazy.ts b/palettes/vibrant/neon/src/index.lazy.ts index a8f003083ae..462f2196fa4 100644 --- a/palettes/vibrant/neon/src/index.lazy.ts +++ b/palettes/vibrant/neon/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vibrant-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/vibrant/neon/src/index.ts b/palettes/vibrant/neon/src/index.ts index 3553c572bc5..7467dbaaaf4 100644 --- a/palettes/vibrant/neon/src/index.ts +++ b/palettes/vibrant/neon/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "vibrant-neon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantNeonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/vibrant/retro/CHANGELOG.md b/palettes/vibrant/retro/CHANGELOG.md index 35924a0f3ca..16c450ef98a 100644 --- a/palettes/vibrant/retro/CHANGELOG.md +++ b/palettes/vibrant/retro/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vibrant-retro diff --git a/palettes/vibrant/retro/README.md b/palettes/vibrant/retro/README.md index a2808888c34..992853a907a 100644 --- a/palettes/vibrant/retro/README.md +++ b/palettes/vibrant/retro/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/vibrant/retro/package.dist.json b/palettes/vibrant/retro/package.dist.json index dadf95c6635..47ff707b0ed 100644 --- a/palettes/vibrant/retro/package.dist.json +++ b/palettes/vibrant/retro/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-retro", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant retro palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/vibrant/retro/package.json b/palettes/vibrant/retro/package.json index 70ac2ba6587..bbaab6ff3ce 100644 --- a/palettes/vibrant/retro/package.json +++ b/palettes/vibrant/retro/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-retro", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant retro palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/vibrant/retro/src/index.lazy.ts b/palettes/vibrant/retro/src/index.lazy.ts index 685ef4397f9..e7a0a5e986b 100644 --- a/palettes/vibrant/retro/src/index.lazy.ts +++ b/palettes/vibrant/retro/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vibrant-retro"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantRetroPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/vibrant/retro/src/index.ts b/palettes/vibrant/retro/src/index.ts index 09927c2826d..6ab624b2ec7 100644 --- a/palettes/vibrant/retro/src/index.ts +++ b/palettes/vibrant/retro/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "vibrant-retro"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantRetroPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/vibrant/tropical/CHANGELOG.md b/palettes/vibrant/tropical/CHANGELOG.md index 1f1498781b5..8ba511c4551 100644 --- a/palettes/vibrant/tropical/CHANGELOG.md +++ b/palettes/vibrant/tropical/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-vibrant-tropical diff --git a/palettes/vibrant/tropical/README.md b/palettes/vibrant/tropical/README.md index d8af524e581..9243d38049c 100644 --- a/palettes/vibrant/tropical/README.md +++ b/palettes/vibrant/tropical/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/vibrant/tropical/package.dist.json b/palettes/vibrant/tropical/package.dist.json index e783399b84a..6827374a8db 100644 --- a/palettes/vibrant/tropical/package.dist.json +++ b/palettes/vibrant/tropical/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-tropical", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant tropical palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/vibrant/tropical/package.json b/palettes/vibrant/tropical/package.json index 2dabd9b8464..1e58d2cfed0 100644 --- a/palettes/vibrant/tropical/package.json +++ b/palettes/vibrant/tropical/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-vibrant-tropical", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles vibrant tropical palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/vibrant/tropical/src/index.lazy.ts b/palettes/vibrant/tropical/src/index.lazy.ts index d2855c7c1ae..e7351755464 100644 --- a/palettes/vibrant/tropical/src/index.lazy.ts +++ b/palettes/vibrant/tropical/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "vibrant-tropical"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantTropicalPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/vibrant/tropical/src/index.ts b/palettes/vibrant/tropical/src/index.ts index 38274d4288e..9d9ae25d716 100644 --- a/palettes/vibrant/tropical/src/index.ts +++ b/palettes/vibrant/tropical/src/index.ts @@ -2,7 +2,7 @@ import { type Engine } from "@tsparticles/engine"; import { options } from "./options.js"; const paletteName = "vibrant-tropical"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadVibrantTropicalPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/deepOcean/CHANGELOG.md b/palettes/water/deepOcean/CHANGELOG.md index d67e97179a7..d5939f650b4 100644 --- a/palettes/water/deepOcean/CHANGELOG.md +++ b/palettes/water/deepOcean/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-deep-ocean diff --git a/palettes/water/deepOcean/README.md b/palettes/water/deepOcean/README.md index 98def956b6b..229fde3409e 100644 --- a/palettes/water/deepOcean/README.md +++ b/palettes/water/deepOcean/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/deepOcean/package.dist.json b/palettes/water/deepOcean/package.dist.json index 3d93a31cfd7..e7e3aea951b 100644 --- a/palettes/water/deepOcean/package.dist.json +++ b/palettes/water/deepOcean/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-deep-ocean", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles deep ocean palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/deepOcean/package.json b/palettes/water/deepOcean/package.json index 044b3c056ff..3c7884fb785 100644 --- a/palettes/water/deepOcean/package.json +++ b/palettes/water/deepOcean/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-deep-ocean", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles deep ocean palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/deepOcean/src/index.lazy.ts b/palettes/water/deepOcean/src/index.lazy.ts index 9236e90e16c..479f17b2e7b 100644 --- a/palettes/water/deepOcean/src/index.lazy.ts +++ b/palettes/water/deepOcean/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "deep-ocean"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDeepOceanPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/deepOcean/src/index.ts b/palettes/water/deepOcean/src/index.ts index 25475e38898..eefad13a348 100644 --- a/palettes/water/deepOcean/src/index.ts +++ b/palettes/water/deepOcean/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "deep-ocean"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDeepOceanPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/default/CHANGELOG.md b/palettes/water/default/CHANGELOG.md index 2c0afd390c6..922eb4bb0da 100644 --- a/palettes/water/default/CHANGELOG.md +++ b/palettes/water/default/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-water diff --git a/palettes/water/default/README.md b/palettes/water/default/README.md index e51d4354aa9..20484b10be9 100644 --- a/palettes/water/default/README.md +++ b/palettes/water/default/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/default/package.dist.json b/palettes/water/default/package.dist.json index 143b1c36f9e..a512640cbc5 100644 --- a/palettes/water/default/package.dist.json +++ b/palettes/water/default/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-water", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles water - full palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/default/package.json b/palettes/water/default/package.json index 2d44b56289f..85b4f40a071 100644 --- a/palettes/water/default/package.json +++ b/palettes/water/default/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-water", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles water - full palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/default/src/index.lazy.ts b/palettes/water/default/src/index.lazy.ts index b1bafdef964..44149614bc8 100644 --- a/palettes/water/default/src/index.lazy.ts +++ b/palettes/water/default/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "water"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWaterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/default/src/index.ts b/palettes/water/default/src/index.ts index 41136ab19e7..d22306f849e 100644 --- a/palettes/water/default/src/index.ts +++ b/palettes/water/default/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "water"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWaterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/foamAndBubbles/CHANGELOG.md b/palettes/water/foamAndBubbles/CHANGELOG.md index d96204b1401..1c0caf155be 100644 --- a/palettes/water/foamAndBubbles/CHANGELOG.md +++ b/palettes/water/foamAndBubbles/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-foam-and-bubbles diff --git a/palettes/water/foamAndBubbles/README.md b/palettes/water/foamAndBubbles/README.md index 29d32caacbd..9339d880b9f 100644 --- a/palettes/water/foamAndBubbles/README.md +++ b/palettes/water/foamAndBubbles/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/foamAndBubbles/package.dist.json b/palettes/water/foamAndBubbles/package.dist.json index ad9fdd1ab13..0d3e7e99c5f 100644 --- a/palettes/water/foamAndBubbles/package.dist.json +++ b/palettes/water/foamAndBubbles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-foam-and-bubbles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles foam & bubbles palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/foamAndBubbles/package.json b/palettes/water/foamAndBubbles/package.json index ae621606da2..f1612d05f30 100644 --- a/palettes/water/foamAndBubbles/package.json +++ b/palettes/water/foamAndBubbles/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-foam-and-bubbles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles foam & bubbles palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/foamAndBubbles/src/index.lazy.ts b/palettes/water/foamAndBubbles/src/index.lazy.ts index 6d1d8074b95..f4fd3cfe5c9 100644 --- a/palettes/water/foamAndBubbles/src/index.lazy.ts +++ b/palettes/water/foamAndBubbles/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "foam-and-bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFoamAndBubblesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/foamAndBubbles/src/index.ts b/palettes/water/foamAndBubbles/src/index.ts index 7706132c0d8..823e9042e74 100644 --- a/palettes/water/foamAndBubbles/src/index.ts +++ b/palettes/water/foamAndBubbles/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "foam-and-bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFoamAndBubblesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/fogCoastal/CHANGELOG.md b/palettes/water/fogCoastal/CHANGELOG.md index f4791c8a6ee..30f4dd9edc9 100644 --- a/palettes/water/fogCoastal/CHANGELOG.md +++ b/palettes/water/fogCoastal/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-fog-coastal diff --git a/palettes/water/fogCoastal/README.md b/palettes/water/fogCoastal/README.md index 0935e5becc5..14681392e35 100644 --- a/palettes/water/fogCoastal/README.md +++ b/palettes/water/fogCoastal/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/fogCoastal/package.dist.json b/palettes/water/fogCoastal/package.dist.json index 7e4a7270d4e..4e809cc805d 100644 --- a/palettes/water/fogCoastal/package.dist.json +++ b/palettes/water/fogCoastal/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fog-coastal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fog - coastal palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/fogCoastal/package.json b/palettes/water/fogCoastal/package.json index 19770df1405..1276e2d16cb 100644 --- a/palettes/water/fogCoastal/package.json +++ b/palettes/water/fogCoastal/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-fog-coastal", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fog - coastal palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/fogCoastal/src/index.lazy.ts b/palettes/water/fogCoastal/src/index.lazy.ts index 4680d1cd5d6..699466e5447 100644 --- a/palettes/water/fogCoastal/src/index.lazy.ts +++ b/palettes/water/fogCoastal/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "fog-coastal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFogCoastalPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/fogCoastal/src/index.ts b/palettes/water/fogCoastal/src/index.ts index 1d4b6260821..791895f63bd 100644 --- a/palettes/water/fogCoastal/src/index.ts +++ b/palettes/water/fogCoastal/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "fog-coastal"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFogCoastalPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/inkInWater/CHANGELOG.md b/palettes/water/inkInWater/CHANGELOG.md index ffc56cbbea2..53873756905 100644 --- a/palettes/water/inkInWater/CHANGELOG.md +++ b/palettes/water/inkInWater/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-ink-in-water diff --git a/palettes/water/inkInWater/README.md b/palettes/water/inkInWater/README.md index 23d12f4c1bd..1f7deebd4de 100644 --- a/palettes/water/inkInWater/README.md +++ b/palettes/water/inkInWater/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/inkInWater/package.dist.json b/palettes/water/inkInWater/package.dist.json index 65e205af8bb..685b1a5ff0b 100644 --- a/palettes/water/inkInWater/package.dist.json +++ b/palettes/water/inkInWater/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ink-in-water", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ink in water palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/inkInWater/package.json b/palettes/water/inkInWater/package.json index 9397319ff47..b7cbbcc0b59 100644 --- a/palettes/water/inkInWater/package.json +++ b/palettes/water/inkInWater/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-ink-in-water", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ink in water palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/inkInWater/src/index.lazy.ts b/palettes/water/inkInWater/src/index.lazy.ts index cfe34b641be..dab014e50e2 100644 --- a/palettes/water/inkInWater/src/index.lazy.ts +++ b/palettes/water/inkInWater/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "ink-in-water"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadInkInWaterPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/inkInWater/src/index.ts b/palettes/water/inkInWater/src/index.ts index b6fca4642fe..622aea56534 100644 --- a/palettes/water/inkInWater/src/index.ts +++ b/palettes/water/inkInWater/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "ink-in-water"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadInkInWaterPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/lagoon/CHANGELOG.md b/palettes/water/lagoon/CHANGELOG.md index 34b25278b00..1daba2b4401 100644 --- a/palettes/water/lagoon/CHANGELOG.md +++ b/palettes/water/lagoon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-lagoon diff --git a/palettes/water/lagoon/README.md b/palettes/water/lagoon/README.md index 066a2d34dcc..19e09c4981a 100644 --- a/palettes/water/lagoon/README.md +++ b/palettes/water/lagoon/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/lagoon/package.dist.json b/palettes/water/lagoon/package.dist.json index ae69e1ec87e..7d8f56ffa26 100644 --- a/palettes/water/lagoon/package.dist.json +++ b/palettes/water/lagoon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lagoon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lagoon palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/lagoon/package.json b/palettes/water/lagoon/package.json index cd455155ecb..0b6e8504906 100644 --- a/palettes/water/lagoon/package.json +++ b/palettes/water/lagoon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-lagoon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles lagoon palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/lagoon/src/index.lazy.ts b/palettes/water/lagoon/src/index.lazy.ts index 867e837863a..1ec11c1100c 100644 --- a/palettes/water/lagoon/src/index.lazy.ts +++ b/palettes/water/lagoon/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "lagoon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLagoonPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/lagoon/src/index.ts b/palettes/water/lagoon/src/index.ts index 88a4e268d6e..5810e92a41a 100644 --- a/palettes/water/lagoon/src/index.ts +++ b/palettes/water/lagoon/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "lagoon"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLagoonPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/rain/CHANGELOG.md b/palettes/water/rain/CHANGELOG.md index 547e5acb651..12ab0bbcf93 100644 --- a/palettes/water/rain/CHANGELOG.md +++ b/palettes/water/rain/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rain diff --git a/palettes/water/rain/README.md b/palettes/water/rain/README.md index 71b30cfc25b..8d14eeea23f 100644 --- a/palettes/water/rain/README.md +++ b/palettes/water/rain/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/rain/package.dist.json b/palettes/water/rain/package.dist.json index 81511809410..f4aa6269b8f 100644 --- a/palettes/water/rain/package.dist.json +++ b/palettes/water/rain/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rain", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rain palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/rain/package.json b/palettes/water/rain/package.json index 3f8321016f5..ff01fa7ede5 100644 --- a/palettes/water/rain/package.json +++ b/palettes/water/rain/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rain", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rain palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/rain/src/index.lazy.ts b/palettes/water/rain/src/index.lazy.ts index 5d20b08e36b..ec489f0c645 100644 --- a/palettes/water/rain/src/index.lazy.ts +++ b/palettes/water/rain/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "rain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRainPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/rain/src/index.ts b/palettes/water/rain/src/index.ts index a1925f0ebc3..d2baa77e17f 100644 --- a/palettes/water/rain/src/index.ts +++ b/palettes/water/rain/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRainPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/risingBubbles/CHANGELOG.md b/palettes/water/risingBubbles/CHANGELOG.md index 63d2d6526ee..d9064b770c6 100644 --- a/palettes/water/risingBubbles/CHANGELOG.md +++ b/palettes/water/risingBubbles/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-rising-bubbles diff --git a/palettes/water/risingBubbles/README.md b/palettes/water/risingBubbles/README.md index 9f449ff4aed..f5d406a15ed 100644 --- a/palettes/water/risingBubbles/README.md +++ b/palettes/water/risingBubbles/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/risingBubbles/package.dist.json b/palettes/water/risingBubbles/package.dist.json index dd38fd1d81a..5b839ea7052 100644 --- a/palettes/water/risingBubbles/package.dist.json +++ b/palettes/water/risingBubbles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rising-bubbles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rising bubbles palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/risingBubbles/package.json b/palettes/water/risingBubbles/package.json index 1bf56dd2b6f..9b2fd01ff51 100644 --- a/palettes/water/risingBubbles/package.json +++ b/palettes/water/risingBubbles/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-rising-bubbles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rising bubbles palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/risingBubbles/src/index.lazy.ts b/palettes/water/risingBubbles/src/index.lazy.ts index a9139347e3a..f6948a37978 100644 --- a/palettes/water/risingBubbles/src/index.lazy.ts +++ b/palettes/water/risingBubbles/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "rising-bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRisingBubblesPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/risingBubbles/src/index.ts b/palettes/water/risingBubbles/src/index.ts index 579347355fe..a05fc88788c 100644 --- a/palettes/water/risingBubbles/src/index.ts +++ b/palettes/water/risingBubbles/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "rising-bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRisingBubblesPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/palettes/water/splash/CHANGELOG.md b/palettes/water/splash/CHANGELOG.md index 246f79fef3e..0ee987977e9 100644 --- a/palettes/water/splash/CHANGELOG.md +++ b/palettes/water/splash/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/palette-water-splash diff --git a/palettes/water/splash/README.md b/palettes/water/splash/README.md index 9e4ebb13315..fd4b3d0138b 100644 --- a/palettes/water/splash/README.md +++ b/palettes/water/splash/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/palettes/water/splash/package.dist.json b/palettes/water/splash/package.dist.json index 3cb2c9112c4..7809030515b 100644 --- a/palettes/water/splash/package.dist.json +++ b/palettes/water/splash/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-water-splash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles water splash palette", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ } }, "dependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module", "jsdelivr": "tsparticles.palette-colored-smoke-amber.min.js", diff --git a/palettes/water/splash/package.json b/palettes/water/splash/package.json index bd8a82b631c..af5e9590b27 100644 --- a/palettes/water/splash/package.json +++ b/palettes/water/splash/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/palette-water-splash", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles water splash palette", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/palettes/water/splash/src/index.lazy.ts b/palettes/water/splash/src/index.lazy.ts index 2ec149e5cb1..9768474f6fc 100644 --- a/palettes/water/splash/src/index.lazy.ts +++ b/palettes/water/splash/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const paletteName = "splash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSplashPalette(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/palettes/water/splash/src/index.ts b/palettes/water/splash/src/index.ts index ab02550c805..abc4a7524af 100644 --- a/palettes/water/splash/src/index.ts +++ b/palettes/water/splash/src/index.ts @@ -4,7 +4,7 @@ import { options } from "./options.js"; const paletteName = "water-splash"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWaterSplashPalette(engine: Engine): Promise { await engine.pluginManager.register(e => { diff --git a/paths/branches/CHANGELOG.md b/paths/branches/CHANGELOG.md index 0837f126325..28839fdf724 100644 --- a/paths/branches/CHANGELOG.md +++ b/paths/branches/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-branches diff --git a/paths/branches/package.dist.json b/paths/branches/package.dist.json index 017879ef760..835e0486e31 100644 --- a/paths/branches/package.dist.json +++ b/paths/branches/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-branches", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles branches path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/branches/package.json b/paths/branches/package.json index 90c94fe42b9..1318f94d8cb 100644 --- a/paths/branches/package.json +++ b/paths/branches/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-branches", - "version": "4.1.3", - "description": "tsParticles branches path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along branching, tree-like trajectories", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "branches" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/branches/src/BranchesPathGenerator.ts b/paths/branches/src/BranchesPathGenerator.ts index 6edf077909b..983b210b69d 100644 --- a/paths/branches/src/BranchesPathGenerator.ts +++ b/paths/branches/src/BranchesPathGenerator.ts @@ -26,7 +26,7 @@ export class BranchesPathGenerator implements IMovePathGenerator { /** * BranchesPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -40,7 +40,8 @@ export class BranchesPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector for the particle - * @param p + * @param p - The particle + * @returns The result */ generate(p: BranchesPathParticle): Vector { const opts = this.options; @@ -115,7 +116,7 @@ export class BranchesPathGenerator implements IMovePathGenerator { /** * Resets the particle branching state - * @param p + * @param p - The particle */ reset(p: BranchesPathParticle): void { delete p.branching; diff --git a/paths/branches/src/index.lazy.ts b/paths/branches/src/index.lazy.ts index a0fb75d12bc..2b4c6df71a0 100644 --- a/paths/branches/src/index.lazy.ts +++ b/paths/branches/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const branchingPathName = "branchesPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBranchesPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/branches/src/index.ts b/paths/branches/src/index.ts index 5c765658ba9..85dec25f1a5 100644 --- a/paths/branches/src/index.ts +++ b/paths/branches/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const branchingPathName = "branchesPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBranchesPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/brownian/CHANGELOG.md b/paths/brownian/CHANGELOG.md index dfaebee7cde..7b7f2e71df7 100644 --- a/paths/brownian/CHANGELOG.md +++ b/paths/brownian/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-brownian diff --git a/paths/brownian/package.dist.json b/paths/brownian/package.dist.json index 57a3abdeb49..4182521e399 100644 --- a/paths/brownian/package.dist.json +++ b/paths/brownian/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-brownian", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles brownian path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/brownian/package.json b/paths/brownian/package.json index d38cee70241..ed93b94db0a 100644 --- a/paths/brownian/package.json +++ b/paths/brownian/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-brownian", - "version": "4.1.3", - "description": "tsParticles brownian path", + "version": "4.2.0", + "description": "tsParticles path for moving particles with Brownian random motion patterns", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "brownian" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/brownian/src/BrownianPathGenerator.ts b/paths/brownian/src/BrownianPathGenerator.ts index 2b6b9b1ee16..57a403fe654 100644 --- a/paths/brownian/src/BrownianPathGenerator.ts +++ b/paths/brownian/src/BrownianPathGenerator.ts @@ -15,7 +15,7 @@ export class BrownianPathGenerator implements IMovePathGenerator { /** * BrownianPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -29,7 +29,8 @@ export class BrownianPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector for the particle - * @param p + * @param p - The particle + * @returns The result */ generate(p: BrownianPathParticle): Vector { p.brownian ??= { @@ -63,7 +64,7 @@ export class BrownianPathGenerator implements IMovePathGenerator { /** * Resets the particle brownian state - * @param p + * @param p - The particle */ reset(p: BrownianPathParticle): void { delete p.brownian; diff --git a/paths/brownian/src/index.lazy.ts b/paths/brownian/src/index.lazy.ts index 434778bf664..4cae70700fd 100644 --- a/paths/brownian/src/index.lazy.ts +++ b/paths/brownian/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const brownianPathName = "brownianPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBrownianPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/brownian/src/index.ts b/paths/brownian/src/index.ts index ae6fb963f98..b47ff390706 100644 --- a/paths/brownian/src/index.ts +++ b/paths/brownian/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const brownianPathName = "brownianPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBrownianPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/curlNoise/CHANGELOG.md b/paths/curlNoise/CHANGELOG.md index a431a70a213..2f2c0616530 100644 --- a/paths/curlNoise/CHANGELOG.md +++ b/paths/curlNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-curl-noise diff --git a/paths/curlNoise/package.dist.json b/paths/curlNoise/package.dist.json index 5cd98e5957e..a9d564a916d 100644 --- a/paths/curlNoise/package.dist.json +++ b/paths/curlNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-curl-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles curl noise path", "homepage": "https://particles.js.org", "repository": { @@ -110,9 +110,9 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3", - "@tsparticles/simplex-noise": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0", + "@tsparticles/simplex-noise": "4.2.0" }, "type": "module" } diff --git a/paths/curlNoise/package.json b/paths/curlNoise/package.json index 9f30788d696..0a15a7e3bc6 100644 --- a/paths/curlNoise/package.json +++ b/paths/curlNoise/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-curl-noise", - "version": "4.1.3", - "description": "tsParticles curl noise path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along curl noise-generated flow fields", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "curl-noise", + "noise" ], "author": "Matteo Bruni ", "license": "MIT", @@ -105,7 +71,7 @@ "@tsparticles/simplex-noise": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*", "@tsparticles/simplex-noise": "workspace:*" diff --git a/paths/curlNoise/src/CurlNoiseGenerator.ts b/paths/curlNoise/src/CurlNoiseGenerator.ts index 7493e6620f9..158813bfbae 100644 --- a/paths/curlNoise/src/CurlNoiseGenerator.ts +++ b/paths/curlNoise/src/CurlNoiseGenerator.ts @@ -29,7 +29,8 @@ export class CurlNoiseGenerator implements IMovePathGenerator { /** * Generates a curl noise vector for the given particle - * @param particle + * @param particle - The particle to process + * @returns The result */ generate(particle: Particle): Vector { const pos = particle.getPosition(), diff --git a/paths/curlNoise/src/index.lazy.ts b/paths/curlNoise/src/index.lazy.ts index 8edfb3322f9..916e6a7b6c4 100644 --- a/paths/curlNoise/src/index.lazy.ts +++ b/paths/curlNoise/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const curlNoisePathName = "curlNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCurlNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/curlNoise/src/index.ts b/paths/curlNoise/src/index.ts index 5e318d2e53a..6c15eed2152 100644 --- a/paths/curlNoise/src/index.ts +++ b/paths/curlNoise/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const curlNoisePathName = "curlNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCurlNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/curves/CHANGELOG.md b/paths/curves/CHANGELOG.md index f3a62913cc8..9d2ddd1fe40 100644 --- a/paths/curves/CHANGELOG.md +++ b/paths/curves/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-curves diff --git a/paths/curves/package.dist.json b/paths/curves/package.dist.json index 3cbba6ab9cb..ead9dd762fc 100644 --- a/paths/curves/package.dist.json +++ b/paths/curves/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-curves", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles curves path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/curves/package.json b/paths/curves/package.json index a4f305b119b..524efeaebbb 100644 --- a/paths/curves/package.json +++ b/paths/curves/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-curves", - "version": "4.1.3", - "description": "tsParticles curves path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along curved Bézier paths", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "curves", + "bezier" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +84,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/curves/src/Curves.ts b/paths/curves/src/Curves.ts index 7cb462d4984..555166eace2 100644 --- a/paths/curves/src/Curves.ts +++ b/paths/curves/src/Curves.ts @@ -3,12 +3,12 @@ import { getRandom } from "@tsparticles/engine"; /** - * @param rndFunc - - * @param period - - * @param nbHarmonics - - * @param attenHarmonics - - * @param lowValue - - * @param highValue - + * @param rndFunc - The rndFunc + * @param period - The period + * @param nbHarmonics - The nbHarmonics + * @param attenHarmonics - The attenHarmonics + * @param lowValue - The lowValue + * @param highValue - The highValue * @returns the generated value */ export function CurvesPathGen( diff --git a/paths/curves/src/CurvesPathGenerator.ts b/paths/curves/src/CurvesPathGenerator.ts index 2808baa90ac..16edb810970 100644 --- a/paths/curves/src/CurvesPathGenerator.ts +++ b/paths/curves/src/CurvesPathGenerator.ts @@ -33,7 +33,7 @@ export class CurvesPathGenerator implements IMovePathGenerator { /** * CurvesPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -43,7 +43,8 @@ export class CurvesPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector using curve harmonics - * @param particle + * @param particle - The particle to process + * @returns The result */ generate(particle: CurvesPathParticle): Vector { if (!particle.pathGen) { @@ -97,7 +98,7 @@ export class CurvesPathGenerator implements IMovePathGenerator { /** * Resets the particle curve state - * @param particle + * @param particle - The particle to process */ reset(particle: CurvesPathParticle): void { delete particle.pathGen; diff --git a/paths/curves/src/index.lazy.ts b/paths/curves/src/index.lazy.ts index 2cb59cb5d3f..28778fa59cd 100644 --- a/paths/curves/src/index.lazy.ts +++ b/paths/curves/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const curvesPathName = "curvesPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCurvesPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/curves/src/index.ts b/paths/curves/src/index.ts index bd62ae85e3b..b567bdc4741 100644 --- a/paths/curves/src/index.ts +++ b/paths/curves/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const curvesPathName = "curvesPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCurvesPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/fractalNoise/CHANGELOG.md b/paths/fractalNoise/CHANGELOG.md index 00773943722..a88529dc9e3 100644 --- a/paths/fractalNoise/CHANGELOG.md +++ b/paths/fractalNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-fractal-noise diff --git a/paths/fractalNoise/package.dist.json b/paths/fractalNoise/package.dist.json index 25cb23459e2..96d4fec1587 100644 --- a/paths/fractalNoise/package.dist.json +++ b/paths/fractalNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-fractal-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fractal noise path", "homepage": "https://particles.js.org", "repository": { @@ -110,10 +110,10 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/fractal-noise": "4.1.3", - "@tsparticles/noise-field": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/fractal-noise": "4.2.0", + "@tsparticles/noise-field": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/fractalNoise/package.json b/paths/fractalNoise/package.json index a9014fba161..35c63d0c501 100644 --- a/paths/fractalNoise/package.json +++ b/paths/fractalNoise/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-fractal-noise", - "version": "4.1.3", - "description": "tsParticles fractal noise path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along fractal noise-based paths", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "fractal-noise", + "noise" ], "author": "Matteo Bruni ", "license": "MIT", @@ -120,7 +86,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/fractal-noise": "workspace:*", "@tsparticles/noise-field": "workspace:*", diff --git a/paths/fractalNoise/src/index.lazy.ts b/paths/fractalNoise/src/index.lazy.ts index 787ad0dbbf2..ffbdc61f0b7 100644 --- a/paths/fractalNoise/src/index.lazy.ts +++ b/paths/fractalNoise/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const fractalNoisePathName = "fractalNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFractalNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/fractalNoise/src/index.ts b/paths/fractalNoise/src/index.ts index 29fc030cd28..865f40f4ade 100644 --- a/paths/fractalNoise/src/index.ts +++ b/paths/fractalNoise/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const fractalNoisePathName = "fractalNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFractalNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/grid/CHANGELOG.md b/paths/grid/CHANGELOG.md index ff0333a7013..c390a4813c1 100644 --- a/paths/grid/CHANGELOG.md +++ b/paths/grid/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-grid diff --git a/paths/grid/package.dist.json b/paths/grid/package.dist.json index aad8d4ffb1a..8ffb46c1464 100644 --- a/paths/grid/package.dist.json +++ b/paths/grid/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-grid", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles grid path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/grid/package.json b/paths/grid/package.json index dd5f016bbd3..8bed4e7a078 100644 --- a/paths/grid/package.json +++ b/paths/grid/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-grid", - "version": "4.1.3", - "description": "tsParticles grid path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along grid-like patterns", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "grid" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/grid/src/GridPathGenerator.ts b/paths/grid/src/GridPathGenerator.ts index 9639be717a3..168243a1b10 100644 --- a/paths/grid/src/GridPathGenerator.ts +++ b/paths/grid/src/GridPathGenerator.ts @@ -34,7 +34,7 @@ export class GridPathGenerator implements IMovePathGenerator { /** * GridPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -50,7 +50,8 @@ export class GridPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector along the grid - * @param p + * @param p - The particle + * @returns The result */ generate(p: GridPathParticle): Vector { const size = this.options.cellSize; @@ -122,7 +123,7 @@ export class GridPathGenerator implements IMovePathGenerator { /** * Resets the particle grid state - * @param p + * @param p - The particle */ reset(p: GridPathParticle): void { delete p.grid; diff --git a/paths/grid/src/index.lazy.ts b/paths/grid/src/index.lazy.ts index 3f8cd5eaff1..b54234fc8aa 100644 --- a/paths/grid/src/index.lazy.ts +++ b/paths/grid/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const gridPathName = "gridPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGridPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/grid/src/index.ts b/paths/grid/src/index.ts index de83a09a095..6a42b5201aa 100644 --- a/paths/grid/src/index.ts +++ b/paths/grid/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const gridPathName = "gridPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGridPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/levy/CHANGELOG.md b/paths/levy/CHANGELOG.md index 8af36ff31dc..f0eac368127 100644 --- a/paths/levy/CHANGELOG.md +++ b/paths/levy/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-levy diff --git a/paths/levy/package.dist.json b/paths/levy/package.dist.json index cb7abafd838..f21f7ba6fab 100644 --- a/paths/levy/package.dist.json +++ b/paths/levy/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-levy", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles levy path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/levy/package.json b/paths/levy/package.json index c6dd9c347e8..c818a888315 100644 --- a/paths/levy/package.json +++ b/paths/levy/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-levy", - "version": "4.1.3", - "description": "tsParticles levy path", + "version": "4.2.0", + "description": "tsParticles path for moving particles with Lévy flight random motion patterns", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "levy" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/levy/src/LevyPathGenerator.ts b/paths/levy/src/LevyPathGenerator.ts index addd8c517e1..5dfed7fca5b 100644 --- a/paths/levy/src/LevyPathGenerator.ts +++ b/paths/levy/src/LevyPathGenerator.ts @@ -7,7 +7,7 @@ import type { LevyPathParticle } from "./LevyPathParticle.js"; const defaultScale = 1, defaultLevyAlpha = 1.5; -/** L\u00e9vy flight path generator plugin */ +/** Lévy flight path generator plugin */ export class LevyPathGenerator implements IMovePathGenerator { /** Levy path options */ readonly options: ILevyPathOptions; @@ -18,7 +18,7 @@ export class LevyPathGenerator implements IMovePathGenerator { /** * LevyPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -32,8 +32,9 @@ export class LevyPathGenerator implements IMovePathGenerator { } /** - * Generates the next movement vector using L\u00e9vy flight - * @param p + * Generates the next movement vector using Lévy flight + * @param p - The particle + * @returns The result */ generate(p: LevyPathParticle): Vector { p.levy ??= { @@ -78,8 +79,8 @@ export class LevyPathGenerator implements IMovePathGenerator { } /** - * Resets the particle L\u00e9vy state - * @param p + * Resets the particle Lévy state + * @param p - The particle */ reset(p: LevyPathParticle): void { delete p.levy; diff --git a/paths/levy/src/index.lazy.ts b/paths/levy/src/index.lazy.ts index 3a9bdaeabd3..e739ca535bc 100644 --- a/paths/levy/src/index.lazy.ts +++ b/paths/levy/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const levyPathName = "levyPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLevyPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/levy/src/index.ts b/paths/levy/src/index.ts index 1f35349d693..7ff95283a31 100644 --- a/paths/levy/src/index.ts +++ b/paths/levy/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const levyPathName = "levyPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLevyPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/perlinNoise/CHANGELOG.md b/paths/perlinNoise/CHANGELOG.md index 173b8727140..92d5d46ea7d 100644 --- a/paths/perlinNoise/CHANGELOG.md +++ b/paths/perlinNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-perlin-noise diff --git a/paths/perlinNoise/package.dist.json b/paths/perlinNoise/package.dist.json index 5219760609d..218c0281088 100644 --- a/paths/perlinNoise/package.dist.json +++ b/paths/perlinNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-perlin-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles perlin noise path", "homepage": "https://particles.js.org", "repository": { @@ -110,10 +110,10 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/noise-field": "4.1.3", - "@tsparticles/perlin-noise": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/noise-field": "4.2.0", + "@tsparticles/perlin-noise": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/perlinNoise/package.json b/paths/perlinNoise/package.json index 0f57fc9cda3..08d88fb1734 100644 --- a/paths/perlinNoise/package.json +++ b/paths/perlinNoise/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-perlin-noise", - "version": "4.1.3", - "description": "tsParticles perlin noise path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along Perlin noise-generated paths", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "perlin-noise", + "noise" ], "author": "Matteo Bruni ", "license": "MIT", @@ -120,7 +86,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/noise-field": "workspace:*", "@tsparticles/perlin-noise": "workspace:*", diff --git a/paths/perlinNoise/src/index.lazy.ts b/paths/perlinNoise/src/index.lazy.ts index b2c9d48722a..62bf042edc6 100644 --- a/paths/perlinNoise/src/index.lazy.ts +++ b/paths/perlinNoise/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const perlinNoisePathName = "perlinNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPerlinNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/perlinNoise/src/index.ts b/paths/perlinNoise/src/index.ts index 36c7ff04474..156f61d1175 100644 --- a/paths/perlinNoise/src/index.ts +++ b/paths/perlinNoise/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const perlinNoisePathName = "perlinNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPerlinNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/polygon/CHANGELOG.md b/paths/polygon/CHANGELOG.md index 87f532e8efe..8ada370043a 100644 --- a/paths/polygon/CHANGELOG.md +++ b/paths/polygon/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-polygon diff --git a/paths/polygon/package.dist.json b/paths/polygon/package.dist.json index 2f5645fe271..089f750aa07 100644 --- a/paths/polygon/package.dist.json +++ b/paths/polygon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-polygon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles polygon path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/polygon/package.json b/paths/polygon/package.json index dd1f16fd501..4fcee533876 100644 --- a/paths/polygon/package.json +++ b/paths/polygon/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-polygon", - "version": "4.1.3", - "description": "tsParticles polygon path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along polygonal path shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "polygon" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/polygon/src/PolygonPathGenerator.ts b/paths/polygon/src/PolygonPathGenerator.ts index b25eaa3b373..aac08610f3e 100644 --- a/paths/polygon/src/PolygonPathGenerator.ts +++ b/paths/polygon/src/PolygonPathGenerator.ts @@ -24,7 +24,7 @@ export class PolygonPathGenerator implements IMovePathGenerator { /** * PolygonPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -35,7 +35,8 @@ export class PolygonPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector along polygon vertices - * @param p + * @param p - The particle + * @returns The result */ generate(p: PolygonPathParticle): Vector { const { sides, turnSteps } = this.options; @@ -77,7 +78,7 @@ export class PolygonPathGenerator implements IMovePathGenerator { /** * Resets the particle polygon state - * @param particle + * @param particle - The particle to process */ reset(particle: PolygonPathParticle): void { delete particle.hexStep; @@ -90,7 +91,7 @@ export class PolygonPathGenerator implements IMovePathGenerator { // do nothing } - readonly #createDirs = (): void => { + #createDirs(): void { const options = this.options; this.dirsList = []; @@ -100,5 +101,5 @@ export class PolygonPathGenerator implements IMovePathGenerator { this.dirsList.push(Vector.create(Math.cos((angle * Math.PI) / 180), Math.sin((angle * Math.PI) / 180))); } - }; + } } diff --git a/paths/polygon/src/index.lazy.ts b/paths/polygon/src/index.lazy.ts index e9443b051ab..0ac40d63046 100644 --- a/paths/polygon/src/index.lazy.ts +++ b/paths/polygon/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const polygonPathName = "polygonPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPolygonPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/polygon/src/index.ts b/paths/polygon/src/index.ts index 8eb702966b0..7e3d7883b43 100644 --- a/paths/polygon/src/index.ts +++ b/paths/polygon/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const polygonPathName = "polygonPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPolygonPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/random/CHANGELOG.md b/paths/random/CHANGELOG.md index f41a11c38eb..c05e100e2a5 100644 --- a/paths/random/CHANGELOG.md +++ b/paths/random/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-random diff --git a/paths/random/package.dist.json b/paths/random/package.dist.json index 9687ee16992..2b960c1dddf 100644 --- a/paths/random/package.dist.json +++ b/paths/random/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-random", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles zig zag path", "homepage": "https://particles.js.org", "repository": { @@ -107,8 +107,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/paths/random/package.json b/paths/random/package.json index 10e46dc26fd..82d24e3d4b3 100644 --- a/paths/random/package.json +++ b/paths/random/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-random", - "version": "4.1.3", - "description": "tsParticles zig zag path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along completely random trajectories", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "random" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/random/src/RandomPathGenerator.ts b/paths/random/src/RandomPathGenerator.ts index 2c69d3c3af7..e5b5d02a284 100644 --- a/paths/random/src/RandomPathGenerator.ts +++ b/paths/random/src/RandomPathGenerator.ts @@ -14,7 +14,10 @@ export class RandomPathGenerator implements IMovePathGenerator { this.#res = Vector.origin; } - /** Generates a random movement vector */ + /** + * Generates a random movement vector + * @returns The result + */ generate(): Vector { this.#res.x = getRandomInRange(minRandom, maxRandom); this.#res.y = getRandomInRange(minRandom, maxRandom); diff --git a/paths/random/src/index.lazy.ts b/paths/random/src/index.lazy.ts index 583eff05e35..ba9e7726526 100644 --- a/paths/random/src/index.lazy.ts +++ b/paths/random/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const randomPathName = "randomPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRandomPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/random/src/index.ts b/paths/random/src/index.ts index 713105492bb..69b1197e801 100644 --- a/paths/random/src/index.ts +++ b/paths/random/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const randomPathName = "randomPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRandomPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/simplexNoise/CHANGELOG.md b/paths/simplexNoise/CHANGELOG.md index f4f634adce5..d82b58b477f 100644 --- a/paths/simplexNoise/CHANGELOG.md +++ b/paths/simplexNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-simplex-noise diff --git a/paths/simplexNoise/package.dist.json b/paths/simplexNoise/package.dist.json index 4bb81ac95bd..dd6c5e8ada1 100644 --- a/paths/simplexNoise/package.dist.json +++ b/paths/simplexNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-simplex-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles simplex noise path", "homepage": "https://particles.js.org", "repository": { @@ -110,10 +110,10 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/noise-field": "4.1.3", - "@tsparticles/plugin-move": "4.1.3", - "@tsparticles/simplex-noise": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/noise-field": "4.2.0", + "@tsparticles/plugin-move": "4.2.0", + "@tsparticles/simplex-noise": "4.2.0" }, "type": "module" } diff --git a/paths/simplexNoise/package.json b/paths/simplexNoise/package.json index d075c88d43f..e0dd48777c6 100644 --- a/paths/simplexNoise/package.json +++ b/paths/simplexNoise/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-simplex-noise", - "version": "4.1.3", - "description": "tsParticles simplex noise path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along simplex noise-generated paths", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "simplex-noise", + "noise" ], "author": "Matteo Bruni ", "license": "MIT", @@ -106,7 +72,7 @@ "@tsparticles/simplex-noise": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/noise-field": "workspace:*", "@tsparticles/plugin-move": "workspace:*", diff --git a/paths/simplexNoise/src/index.lazy.ts b/paths/simplexNoise/src/index.lazy.ts index 11272e46a7b..be92c0f273a 100644 --- a/paths/simplexNoise/src/index.lazy.ts +++ b/paths/simplexNoise/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const simplexNoisePathName = "simplexNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSimplexNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/simplexNoise/src/index.ts b/paths/simplexNoise/src/index.ts index 31a7b1630f1..ff55d2eeb6a 100644 --- a/paths/simplexNoise/src/index.ts +++ b/paths/simplexNoise/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const simplexNoisePathName = "simplexNoise"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSimplexNoisePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/spiral/CHANGELOG.md b/paths/spiral/CHANGELOG.md index 373101a94cd..072554de78f 100644 --- a/paths/spiral/CHANGELOG.md +++ b/paths/spiral/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-spiral diff --git a/paths/spiral/package.dist.json b/paths/spiral/package.dist.json index 2d5560b7c19..d5ee866760b 100644 --- a/paths/spiral/package.dist.json +++ b/paths/spiral/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-spiral", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spiral path", "homepage": "https://particles.js.org", "repository": { @@ -110,8 +110,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "type": "module" } diff --git a/paths/spiral/package.json b/paths/spiral/package.json index 7c2b396abdc..26f7fa6d944 100644 --- a/paths/spiral/package.json +++ b/paths/spiral/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-spiral", - "version": "4.1.3", - "description": "tsParticles spiral path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along spiral trajectories", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "spiral" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/spiral/src/SpiralPathGenerator.ts b/paths/spiral/src/SpiralPathGenerator.ts index b1e13d9bb90..1f104e06201 100644 --- a/paths/spiral/src/SpiralPathGenerator.ts +++ b/paths/spiral/src/SpiralPathGenerator.ts @@ -32,7 +32,7 @@ export class SpiralPathGenerator implements IMovePathGenerator { /** * SpiralPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -42,8 +42,9 @@ export class SpiralPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector with spiral oscillation - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time + * @returns The result */ generate(particle: SpiralParticle, delta: IDelta): Vector { const options = this.options; @@ -98,7 +99,7 @@ export class SpiralPathGenerator implements IMovePathGenerator { /** * Resets the particle spiral state - * @param particle + * @param particle - The particle to process */ reset(particle: SpiralParticle): void { delete particle.spiral; diff --git a/paths/spiral/src/index.lazy.ts b/paths/spiral/src/index.lazy.ts index 1b813bb10ef..334293d6dbf 100644 --- a/paths/spiral/src/index.lazy.ts +++ b/paths/spiral/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const spiralPathName = "spiralPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpiralPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/spiral/src/index.ts b/paths/spiral/src/index.ts index b3015309782..05caacd87f9 100644 --- a/paths/spiral/src/index.ts +++ b/paths/spiral/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const spiralPathName = "spiralPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpiralPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/svg/CHANGELOG.md b/paths/svg/CHANGELOG.md index da7642d1fd5..1f4984a62a5 100644 --- a/paths/svg/CHANGELOG.md +++ b/paths/svg/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-svg diff --git a/paths/svg/package.dist.json b/paths/svg/package.dist.json index 614bcdf0012..f130e8a12fe 100644 --- a/paths/svg/package.dist.json +++ b/paths/svg/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-svg", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles svg path", "homepage": "https://particles.js.org", "repository": { @@ -107,8 +107,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/paths/svg/package.json b/paths/svg/package.json index 80d281fb342..f4a3745347e 100644 --- a/paths/svg/package.json +++ b/paths/svg/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-svg", - "version": "4.1.3", - "description": "tsParticles svg path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along SVG path data trajectories", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "svg" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +83,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/svg/src/SVGPathGenerator.ts b/paths/svg/src/SVGPathGenerator.ts index 5aaff4937f9..af63f21b961 100644 --- a/paths/svg/src/SVGPathGenerator.ts +++ b/paths/svg/src/SVGPathGenerator.ts @@ -81,7 +81,7 @@ export class SVGPathGenerator implements IMovePathGenerator { /** * SVGPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -96,8 +96,9 @@ export class SVGPathGenerator implements IMovePathGenerator { /** * Generates the next position along the SVG path - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time + * @returns The result */ generate(particle: SVGPathParticle, delta: IDelta): Vector { const container = this.#container, diff --git a/paths/svg/src/createSVGPaths.ts b/paths/svg/src/createSVGPaths.ts index ea0a216180c..ffb7cefee09 100644 --- a/paths/svg/src/createSVGPaths.ts +++ b/paths/svg/src/createSVGPaths.ts @@ -2,7 +2,7 @@ import type { SVGPathData } from "./types.js"; import { safeDocument } from "@tsparticles/engine"; /** - * @param data - + * @param data - The data to handle * @returns the created SVG paths */ export function createSVGPaths(data: string[]): SVGPathData[] { diff --git a/paths/svg/src/index.lazy.ts b/paths/svg/src/index.lazy.ts index de3c6d12a50..16b839290a4 100644 --- a/paths/svg/src/index.lazy.ts +++ b/paths/svg/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const svgPathName = "svgPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSVGPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/svg/src/index.ts b/paths/svg/src/index.ts index d2e449070a8..c5f83c62b6d 100644 --- a/paths/svg/src/index.ts +++ b/paths/svg/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const svgPathName = "svgPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSVGPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/svg/src/loadSVGFromString.ts b/paths/svg/src/loadSVGFromString.ts index 72e3665bfcb..2904c16e341 100644 --- a/paths/svg/src/loadSVGFromString.ts +++ b/paths/svg/src/loadSVGFromString.ts @@ -9,7 +9,7 @@ export interface LoadedSVGPaths { } /** - * @param svgText - + * @param svgText - The svgText * @returns the loaded SVG paths and the size of the SVG */ export function loadSVGFromString(svgText: string): LoadedSVGPaths { diff --git a/paths/zigzag/CHANGELOG.md b/paths/zigzag/CHANGELOG.md index 7c570a8d30f..5832f63a9e6 100644 --- a/paths/zigzag/CHANGELOG.md +++ b/paths/zigzag/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-zig-zag diff --git a/paths/zigzag/package.dist.json b/paths/zigzag/package.dist.json index 69c7deff6ab..cbadb3c07a8 100644 --- a/paths/zigzag/package.dist.json +++ b/paths/zigzag/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-zig-zag", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles zig zag path", "homepage": "https://particles.js.org", "repository": { @@ -107,8 +107,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/paths/zigzag/package.json b/paths/zigzag/package.json index 79c99e9b76e..2570f8afe3d 100644 --- a/paths/zigzag/package.json +++ b/paths/zigzag/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/path-zig-zag", - "version": "4.1.3", - "description": "tsParticles zig zag path", + "version": "4.2.0", + "description": "tsParticles path for moving particles along zigzag back-and-forth patterns", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "tsparticles-path" + "typescript", + "javascript", + "tsparticles-path", + "zigzag", + "zig-zag" ], "author": "Matteo Bruni ", "license": "MIT", @@ -118,7 +84,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/paths/zigzag/src/ZigZagPathGenerator.ts b/paths/zigzag/src/ZigZagPathGenerator.ts index 08ea569f370..b0b2f86ff46 100644 --- a/paths/zigzag/src/ZigZagPathGenerator.ts +++ b/paths/zigzag/src/ZigZagPathGenerator.ts @@ -61,7 +61,7 @@ export class ZigZagPathGenerator implements IMovePathGenerator { /** * ZigZagPathGenerator constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -71,8 +71,9 @@ export class ZigZagPathGenerator implements IMovePathGenerator { /** * Generates the next movement vector with zigzag oscillation - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time + * @returns The result */ generate(particle: ZigZagParticle, delta: IDelta): Vector { const options = this.options; diff --git a/paths/zigzag/src/index.lazy.ts b/paths/zigzag/src/index.lazy.ts index 6447a996519..2fc033a111f 100644 --- a/paths/zigzag/src/index.lazy.ts +++ b/paths/zigzag/src/index.lazy.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; export const zigZagPathName = "zigZagPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadZigZagPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/paths/zigzag/src/index.ts b/paths/zigzag/src/index.ts index 0e44b18c0f9..97fa2a821d6 100644 --- a/paths/zigzag/src/index.ts +++ b/paths/zigzag/src/index.ts @@ -7,7 +7,7 @@ declare const __VERSION__: string; export const zigZagPathName = "zigZagPathGenerator"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadZigZagPath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/absorbers/CHANGELOG.md b/plugins/absorbers/CHANGELOG.md index 32d1e419163..b9dcf3d4159 100644 --- a/plugins/absorbers/CHANGELOG.md +++ b/plugins/absorbers/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-absorbers diff --git a/plugins/absorbers/package.dist.json b/plugins/absorbers/package.dist.json index ca14688a6e9..8fada4a89e8 100644 --- a/plugins/absorbers/package.dist.json +++ b/plugins/absorbers/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-absorbers", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles absorbers plugin", "homepage": "https://particles.js.org", "repository": { @@ -120,8 +120,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "peerDependenciesMeta": { "@tsparticles/plugin-interactivity": { diff --git a/plugins/absorbers/package.json b/plugins/absorbers/package.json index 1f833da7cac..285b416d34c 100644 --- a/plugins/absorbers/package.json +++ b/plugins/absorbers/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-absorbers", - "version": "4.1.3", - "description": "tsParticles absorbers plugin", + "version": "4.2.0", + "description": "tsParticles plugin for creating black hole-like absorbers that attract, rotate, and remove particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "absorber", + "absorbers" ], "author": "Matteo Bruni ", "license": "MIT", @@ -131,7 +98,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/plugins/absorbers/src/AbsorberInstance.ts b/plugins/absorbers/src/AbsorberInstance.ts index 01d9a5767ef..b4d9c4275af 100644 --- a/plugins/absorbers/src/AbsorberInstance.ts +++ b/plugins/absorbers/src/AbsorberInstance.ts @@ -20,15 +20,16 @@ import { identity, isPointInside, millisecondsToSeconds, + minVelocity, originPoint, rangeColorToRgb, + squareExp, } from "@tsparticles/engine"; import { Absorber } from "./Options/Classes/Absorber.js"; import type { IAbsorber } from "./Options/Interfaces/IAbsorber.js"; import type { IAbsorberSizeLimit } from "./Options/Interfaces/IAbsorberSizeLimit.js"; -const squareExp = 2, - absorbFactor = 0.033, +const absorbFactor = 0.033, minOrbitLength = 0, minRadius = 0, minMass = 0, @@ -36,7 +37,6 @@ const squareExp = 2, maxAngle = doublePI, maxDegreeAngle = 360, angleIncrementFactor = identity / maxDegreeAngle, - minVelocity = 0, defaultLifeDelay = 0, minLifeCount = 0, defaultSpawnDelay = 0, @@ -301,19 +301,19 @@ export class AbsorberInstance { * @internal * @returns the calculated position for the absorber */ - readonly #calcPosition: () => Vector = () => { + #calcPosition(): Vector { const exactPosition = calcPositionOrRandomFromSizeRanged({ size: this.#container.canvas.size, position: this.options.position, }); return Vector.create(exactPosition.x, exactPosition.y); - }; + } /** * Play method that prepares the absorber to be drawn and updated */ - readonly #play: () => void = () => { + #play(): void { if ( !( (this.#lifeCount > minLifeCount || this.#immortal || !this.options.life.count) && @@ -326,20 +326,20 @@ export class AbsorberInstance { if (this.#lifeCount > minLifeCount || this.#immortal) { this.#prepareToDie(); } - }; + } /** * Prepares the absorber to die by calculating its life duration * @internal */ - readonly #prepareToDie: () => void = () => { + #prepareToDie(): void { const duration = this.options.life.duration !== undefined ? getRangeValue(this.options.life.duration) : undefined, minDuration = 0; if ((this.#lifeCount > minLifeCount || this.#immortal) && duration !== undefined && duration > minDuration) { this.#duration = duration * millisecondsToSeconds; } - }; + } /** * Updates the particle position, if the particle needs a new position @@ -348,11 +348,7 @@ export class AbsorberInstance { * @param v - the vector used for calculating the distance between the Absorber and the particle * @internal */ - readonly #updateParticlePosition: (particle: OrbitingParticle, delta: IDelta, v: Vector) => void = ( - particle, - delta, - v, - ) => { + #updateParticlePosition(particle: OrbitingParticle, delta: IDelta, v: Vector): void { if (particle.destroyed) { return; } @@ -410,5 +406,5 @@ export class AbsorberInstance { } else { particle.velocity.addTo(v); } - }; + } } diff --git a/plugins/absorbers/src/Options/Classes/Absorber.ts b/plugins/absorbers/src/Options/Classes/Absorber.ts index d47768d869b..6ecd2c7c0b8 100644 --- a/plugins/absorbers/src/Options/Classes/Absorber.ts +++ b/plugins/absorbers/src/Options/Classes/Absorber.ts @@ -4,6 +4,7 @@ import { OptionsColor, type RecursivePartial, isNull, + loadProperty, setRangeValue, } from "@tsparticles/engine"; import { AbsorberLife } from "./AbsorberLife.js"; @@ -75,9 +76,7 @@ export class Absorber implements IAbsorber, IOptionLoader { this.color = OptionsColor.create(this.color, data.color); } - if (data.draggable !== undefined) { - this.draggable = data.draggable; - } + loadProperty(this, "draggable", data.draggable); if (data.life !== undefined) { this.life.load(data.life); @@ -85,9 +84,7 @@ export class Absorber implements IAbsorber, IOptionLoader { this.name = data.name; - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadProperty(this, "opacity", data.opacity); if (data.position !== undefined) { this.position = {}; @@ -105,12 +102,7 @@ export class Absorber implements IAbsorber, IOptionLoader { this.size.load(data.size); } - if (data.destroy !== undefined) { - this.destroy = data.destroy; - } - - if (data.orbits !== undefined) { - this.orbits = data.orbits; - } + loadProperty(this, "destroy", data.destroy); + loadProperty(this, "orbits", data.orbits); } } diff --git a/plugins/absorbers/src/Options/Classes/AbsorberLife.ts b/plugins/absorbers/src/Options/Classes/AbsorberLife.ts index 4c20cce6973..17edc794dd3 100644 --- a/plugins/absorbers/src/Options/Classes/AbsorberLife.ts +++ b/plugins/absorbers/src/Options/Classes/AbsorberLife.ts @@ -1,4 +1,11 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadProperty, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IAbsorberLife } from "../Interfaces/IAbsorberLife.js"; /** @@ -7,31 +14,16 @@ export class AbsorberLife implements IAbsorberLife, IOptionLoader count?: number; delay?: RangeValue; duration?: RangeValue; - wait; - - constructor() { - this.wait = false; - } + wait = false; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.count !== undefined) { - this.count = data.count; - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } - - if (data.duration !== undefined) { - this.duration = setRangeValue(data.duration); - } - - if (data.wait !== undefined) { - this.wait = data.wait; - } + loadProperty(this, "count", data.count); + loadRangeProperty(this, "delay", data.delay); + loadRangeProperty(this, "duration", data.duration); + loadProperty(this, "wait", data.wait); } } diff --git a/plugins/absorbers/src/Options/Classes/AbsorberSize.ts b/plugins/absorbers/src/Options/Classes/AbsorberSize.ts index 0b640e773a5..df9ffd2a2f0 100644 --- a/plugins/absorbers/src/Options/Classes/AbsorberSize.ts +++ b/plugins/absorbers/src/Options/Classes/AbsorberSize.ts @@ -1,4 +1,11 @@ -import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull, isNumber } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + ValueWithRandom, + isNull, + isNumber, + loadProperty, +} from "@tsparticles/engine"; import { AbsorberSizeLimit } from "./AbsorberSizeLimit.js"; import type { IAbsorberSize } from "../Interfaces/IAbsorberSize.js"; @@ -9,18 +16,14 @@ export class AbsorberSize extends ValueWithRandom implements IAbsorberSize, IOpt /** * The absorber size density, affects the attraction force */ - density; + density = 5; + /** * The absorber size limit */ - limit: AbsorberSizeLimit; + readonly limit: AbsorberSizeLimit = new AbsorberSizeLimit(); - constructor() { - super(); - this.density = 5; - this.value = 50; - this.limit = new AbsorberSizeLimit(); - } + override value = 50; /** * Loads the absorber size options from the given data @@ -33,9 +36,7 @@ export class AbsorberSize extends ValueWithRandom implements IAbsorberSize, IOpt super.load(data); - if (data.density !== undefined) { - this.density = data.density; - } + loadProperty(this, "density", data.density); if (isNumber(data.limit)) { this.limit.radius = data.limit; diff --git a/plugins/absorbers/src/Options/Classes/AbsorberSizeLimit.ts b/plugins/absorbers/src/Options/Classes/AbsorberSizeLimit.ts index c00d803fce4..1d21e8dace7 100644 --- a/plugins/absorbers/src/Options/Classes/AbsorberSizeLimit.ts +++ b/plugins/absorbers/src/Options/Classes/AbsorberSizeLimit.ts @@ -1,26 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IAbsorberSizeLimit } from "../Interfaces/IAbsorberSizeLimit.js"; export class AbsorberSizeLimit implements IAbsorberSizeLimit, IOptionLoader { - mass; - radius; - - constructor() { - this.radius = 0; - this.mass = 0; - } + mass = 0; + radius = 0; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.mass !== undefined) { - this.mass = data.mass; - } - - if (data.radius !== undefined) { - this.radius = data.radius; - } + loadProperty(this, "mass", data.mass); + loadProperty(this, "radius", data.radius); } } diff --git a/plugins/absorbers/src/index.lazy.ts b/plugins/absorbers/src/index.lazy.ts index f4f881a621d..d6952b3edcd 100644 --- a/plugins/absorbers/src/index.lazy.ts +++ b/plugins/absorbers/src/index.lazy.ts @@ -1,7 +1,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersPlugin(engine: Engine): Promise { const [{ loadAbsorbersInteraction }, { loadAbsorbersPluginSimple }] = await Promise.all([ diff --git a/plugins/absorbers/src/index.ts b/plugins/absorbers/src/index.ts index ff1b43cc1c4..d3bb3d505fe 100644 --- a/plugins/absorbers/src/index.ts +++ b/plugins/absorbers/src/index.ts @@ -3,7 +3,7 @@ import { loadAbsorbersInteraction } from "./interaction.js"; import { loadAbsorbersPluginSimple } from "./plugin.js"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersPlugin(engine: Engine): Promise { await loadAbsorbersPluginSimple(engine); diff --git a/plugins/absorbers/src/interaction.lazy.ts b/plugins/absorbers/src/interaction.lazy.ts index 2a2acef3bb6..5fe0560fb61 100644 --- a/plugins/absorbers/src/interaction.lazy.ts +++ b/plugins/absorbers/src/interaction.lazy.ts @@ -5,7 +5,7 @@ import type { InteractivityEngine } from "@tsparticles/plugin-interactivity/lazy declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/absorbers/src/interaction.ts b/plugins/absorbers/src/interaction.ts index f4d9ea9f981..e3dd176c280 100644 --- a/plugins/absorbers/src/interaction.ts +++ b/plugins/absorbers/src/interaction.ts @@ -7,7 +7,7 @@ import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js" declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersInteraction(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/absorbers/src/plugin.lazy.ts b/plugins/absorbers/src/plugin.lazy.ts index 99930af272b..ae5ba218505 100644 --- a/plugins/absorbers/src/plugin.lazy.ts +++ b/plugins/absorbers/src/plugin.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersPluginSimple(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/absorbers/src/plugin.ts b/plugins/absorbers/src/plugin.ts index ffc9f5d1321..b498e307c54 100644 --- a/plugins/absorbers/src/plugin.ts +++ b/plugins/absorbers/src/plugin.ts @@ -5,7 +5,7 @@ import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js" declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAbsorbersPluginSimple(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/backgroundMask/CHANGELOG.md b/plugins/backgroundMask/CHANGELOG.md index e968521e540..20f7032b61b 100644 --- a/plugins/backgroundMask/CHANGELOG.md +++ b/plugins/backgroundMask/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/plugin-background-mask + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-background-mask diff --git a/plugins/backgroundMask/package.dist.json b/plugins/backgroundMask/package.dist.json index cce4d05c4b7..1978c37c942 100644 --- a/plugins/backgroundMask/package.dist.json +++ b/plugins/backgroundMask/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-background-mask", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles background mask plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/backgroundMask/package.json b/plugins/backgroundMask/package.json index 58c9f6bc779..903317b1d83 100644 --- a/plugins/backgroundMask/package.json +++ b/plugins/backgroundMask/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-background-mask", - "version": "4.1.3", - "description": "tsParticles background mask plugin", + "version": "4.2.0", + "description": "tsParticles plugin for masking particles over a background image or color", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "background-mask", + "background" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +69,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/backgroundMask/src/Options/Classes/BackgroundMask.ts b/plugins/backgroundMask/src/Options/Classes/BackgroundMask.ts index d700082d4f9..416a84fa8f7 100644 --- a/plugins/backgroundMask/src/Options/Classes/BackgroundMask.ts +++ b/plugins/backgroundMask/src/Options/Classes/BackgroundMask.ts @@ -1,4 +1,11 @@ -import { type IColor, type IOptionLoader, type RecursivePartial, isNull, isString } from "@tsparticles/engine"; +import { + type IColor, + type IOptionLoader, + type RecursivePartial, + isNull, + isString, + loadProperty, +} from "@tsparticles/engine"; import { BackgroundMaskCover } from "./BackgroundMaskCover.js"; import type { IBackgroundMask } from "../Interfaces/IBackgroundMask.js"; import type { IBackgroundMaskCover } from "../Interfaces/IBackgroundMaskCover.js"; @@ -11,23 +18,15 @@ export class BackgroundMask implements IBackgroundMask, IOptionLoader", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/blend/src/Options/Classes/Blend.ts b/plugins/blend/src/Options/Classes/Blend.ts index a6da0406794..3d0f77565ba 100644 --- a/plugins/blend/src/Options/Classes/Blend.ts +++ b/plugins/blend/src/Options/Classes/Blend.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IBlend } from "../Interfaces/IBlend.js"; /** @@ -8,30 +8,19 @@ export class Blend implements IBlend, IOptionLoader { /** * Blend enabling options */ - enable; - + enable = false; /** * Canvas composite operation * values here: https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvasRenderingContext2D/globalCompositeOperation */ - mode: GlobalCompositeOperation; - - constructor() { - this.mode = "destination-out"; - this.enable = false; - } + mode: GlobalCompositeOperation = "destination-out"; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "mode", data.mode); + loadProperty(this, "enable", data.enable); } } diff --git a/plugins/canvasMask/CHANGELOG.md b/plugins/canvasMask/CHANGELOG.md index b7abb4dbaa6..11960718efd 100644 --- a/plugins/canvasMask/CHANGELOG.md +++ b/plugins/canvasMask/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-canvas-mask diff --git a/plugins/canvasMask/package.dist.json b/plugins/canvasMask/package.dist.json index 23c17e5c001..90e95170847 100644 --- a/plugins/canvasMask/package.dist.json +++ b/plugins/canvasMask/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-canvas-mask", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles canvas mask plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,13 +92,13 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/plugins/canvasMask/package.json b/plugins/canvasMask/package.json index 91a20639840..db03bf214be 100644 --- a/plugins/canvasMask/package.json +++ b/plugins/canvasMask/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-canvas-mask", - "version": "4.1.3", - "description": "tsParticles canvas mask plugin", + "version": "4.2.0", + "description": "tsParticles plugin for masking particles using canvas-based mask shapes and images", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "canvas-mask", + "mask" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +69,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/canvasMask/src/Options/Classes/CanvasMask.ts b/plugins/canvasMask/src/Options/Classes/CanvasMask.ts index 2fd383717b1..dfacd40e1a4 100644 --- a/plugins/canvasMask/src/Options/Classes/CanvasMask.ts +++ b/plugins/canvasMask/src/Options/Classes/CanvasMask.ts @@ -1,4 +1,10 @@ -import { type ICoordinates, type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { + type ICoordinates, + type IOptionLoader, + type RecursivePartial, + isNull, + loadProperty, +} from "@tsparticles/engine"; import { CanvasMaskOverride } from "./CanvasMaskOverride.js"; import { CanvasMaskPixels } from "./CanvasMaskPixels.js"; import type { ICanvasMask } from "../Interfaces/ICanvasMask.js"; @@ -16,7 +22,7 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { /** * Enables the canvas mask */ - enable; + enable = false; /** * The image mask options */ @@ -24,11 +30,11 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { /** * The canvas mask override options */ - override; + override = new CanvasMaskOverride(); /** * The canvas mask pixels options */ - pixels; + pixels = new CanvasMaskPixels(); /** * The canvas mask position, in percent values */ @@ -36,7 +42,7 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { /** * The scale factor for the mask */ - scale; + scale = 1; /** * The CSS selector for the canvas element */ @@ -47,14 +53,10 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { text?: TextMask; constructor() { - this.enable = false; - this.override = new CanvasMaskOverride(); - this.pixels = new CanvasMaskPixels(); this.position = { x: 50, y: 50, }; - this.scale = 1; } /** @@ -70,9 +72,7 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { this.element = data.element; } - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); if (data.image) { this.image ??= new ImageMask(); @@ -91,13 +91,8 @@ export class CanvasMask implements ICanvasMask, IOptionLoader { this.override.load(data.override); - if (data.scale !== undefined) { - this.scale = data.scale; - } - - if (data.selector !== undefined) { - this.selector = data.selector; - } + loadProperty(this, "scale", data.scale); + loadProperty(this, "selector", data.selector); if (data.text) { this.text ??= new TextMask(); diff --git a/plugins/canvasMask/src/Options/Classes/CanvasMaskOverride.ts b/plugins/canvasMask/src/Options/Classes/CanvasMaskOverride.ts index 1cf87a9170f..8107748a0a6 100644 --- a/plugins/canvasMask/src/Options/Classes/CanvasMaskOverride.ts +++ b/plugins/canvasMask/src/Options/Classes/CanvasMaskOverride.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ICanvasMaskOverride } from "../Interfaces/ICanvasMaskOverride.js"; /** @@ -8,16 +8,11 @@ export class CanvasMaskOverride implements ICanvasMaskOverride, IOptionLoader { - filter: (pixel: IRgba) => boolean; - offset: number; - - constructor() { - this.filter = (pixel): boolean => pixel.a > minAlpha; - this.offset = 4; - } + offset = 4; + filter: (pixel: IRgba) => boolean = (pixel): boolean => pixel.a > minAlpha; load(data?: RecursivePartial): void { if (isNull(data)) { @@ -38,8 +34,6 @@ export class CanvasMaskPixels implements ICanvasMaskPixels, IOptionLoader { - family: string; - size: string | number; - style: string; - variant: string; - weight: string; - - constructor() { - this.family = "sans-serif"; - this.size = 100; - this.style = ""; - this.variant = ""; - this.weight = ""; - } + family = "sans-serif"; + size: string | number = 100; + style = ""; + variant = ""; + weight = ""; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.family !== undefined) { - this.family = data.family; - } - - if (data.size !== undefined) { - this.size = data.size; - } - - if (data.style !== undefined) { - this.style = data.style; - } - - if (data.variant !== undefined) { - this.variant = data.variant; - } - - if (data.weight !== undefined) { - this.weight = data.weight; - } + loadProperty(this, "family", data.family); + loadProperty(this, "size", data.size); + loadProperty(this, "style", data.style); + loadProperty(this, "variant", data.variant); + loadProperty(this, "weight", data.weight); } } diff --git a/plugins/canvasMask/src/Options/Classes/ImageMask.ts b/plugins/canvasMask/src/Options/Classes/ImageMask.ts index 7b678df8956..feff2a93363 100644 --- a/plugins/canvasMask/src/Options/Classes/ImageMask.ts +++ b/plugins/canvasMask/src/Options/Classes/ImageMask.ts @@ -1,20 +1,14 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IImageMask } from "../Interfaces/IImageMask.js"; export class ImageMask implements IImageMask, IOptionLoader { - src: string; - - constructor() { - this.src = ""; - } + src = ""; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.src !== undefined) { - this.src = data.src; - } + loadProperty(this, "src", data.src); } } diff --git a/plugins/canvasMask/src/Options/Classes/TextMask.ts b/plugins/canvasMask/src/Options/Classes/TextMask.ts index 1e3d93fa034..5526e96752a 100644 --- a/plugins/canvasMask/src/Options/Classes/TextMask.ts +++ b/plugins/canvasMask/src/Options/Classes/TextMask.ts @@ -1,41 +1,26 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { FontTextMask } from "./FontTextMask.js"; import type { ITextMask } from "../Interfaces/ITextMask.js"; import { TextMaskLine } from "./TextMaskLine.js"; export class TextMask implements ITextMask, IOptionLoader { - color; - fill; - font; - lines; - text; - - constructor() { - this.color = "#000000"; - this.fill = true; - this.font = new FontTextMask(); - this.lines = new TextMaskLine(); - this.text = ""; - } + color = "#000000"; + fill = true; + readonly font = new FontTextMask(); + readonly lines = new TextMaskLine(); + text = ""; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.color !== undefined) { - this.color = data.color; - } - - if (data.fill !== undefined) { - this.fill = data.fill; - } + loadProperty(this, "color", data.color); + loadProperty(this, "fill", data.fill); this.font.load(data.font); this.lines.load(data.lines); - if (data.text !== undefined) { - this.text = data.text; - } + loadProperty(this, "text", data.text); } } diff --git a/plugins/canvasMask/src/Options/Classes/TextMaskLine.ts b/plugins/canvasMask/src/Options/Classes/TextMaskLine.ts index 2d99eb9f08b..d5de90fc3ef 100644 --- a/plugins/canvasMask/src/Options/Classes/TextMaskLine.ts +++ b/plugins/canvasMask/src/Options/Classes/TextMaskLine.ts @@ -1,26 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ITextMaskLine } from "../Interfaces/ITextMaskLine.js"; export class TextMaskLine implements ITextMaskLine, IOptionLoader { - separator: string; - spacing: number; - - constructor() { - this.separator = "\n"; - this.spacing = 10; - } + separator = "\n"; + spacing = 10; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.separator !== undefined) { - this.separator = data.separator; - } - - if (data.spacing !== undefined) { - this.spacing = data.spacing; - } + loadProperty(this, "separator", data.separator); + loadProperty(this, "spacing", data.spacing); } } diff --git a/plugins/canvasMask/src/index.lazy.ts b/plugins/canvasMask/src/index.lazy.ts index e1ee0113b2b..5e85ae32f9e 100644 --- a/plugins/canvasMask/src/index.lazy.ts +++ b/plugins/canvasMask/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCanvasMaskPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/canvasMask/src/index.ts b/plugins/canvasMask/src/index.ts index 9aeb4e26142..40183807579 100644 --- a/plugins/canvasMask/src/index.ts +++ b/plugins/canvasMask/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCanvasMaskPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/canvasMask/src/utils.ts b/plugins/canvasMask/src/utils.ts index af7826cb245..8f2e0d55197 100644 --- a/plugins/canvasMask/src/utils.ts +++ b/plugins/canvasMask/src/utils.ts @@ -12,12 +12,12 @@ import type { CanvasPixelData } from "@tsparticles/canvas-utils"; import type { ICanvasMaskOverride } from "./Options/Interfaces/ICanvasMaskOverride.js"; /** - * @param container - - * @param data - - * @param position - - * @param scale - - * @param override - - * @param filter - + * @param container - The container to handle + * @param data - The data to handle + * @param position - The position + * @param scale - The scale + * @param override - The override + * @param filter - The filter */ export function addParticlesFromCanvasPixels( container: Container, @@ -95,7 +95,7 @@ export function addParticlesFromCanvasPixels( } /** - * @param array - + * @param array - The array * @returns the shuffled array */ function shuffle(array: T[]): T[] { diff --git a/plugins/colors/hex/CHANGELOG.md b/plugins/colors/hex/CHANGELOG.md index fdca39afab2..4f161b95324 100644 --- a/plugins/colors/hex/CHANGELOG.md +++ b/plugins/colors/hex/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-hex-color diff --git a/plugins/colors/hex/package.dist.json b/plugins/colors/hex/package.dist.json index cb64c6c627c..7b12c00baf8 100644 --- a/plugins/colors/hex/package.dist.json +++ b/plugins/colors/hex/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hex-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles hex color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/hex/package.json b/plugins/colors/hex/package.json index 5b84049a527..5c4defb7715 100644 --- a/plugins/colors/hex/package.json +++ b/plugins/colors/hex/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hex-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles hex color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/hex/src/HexColorManager.ts b/plugins/colors/hex/src/HexColorManager.ts index 3003e8e155a..d8dd50152f9 100644 --- a/plugins/colors/hex/src/HexColorManager.ts +++ b/plugins/colors/hex/src/HexColorManager.ts @@ -30,7 +30,8 @@ const shorthandHexRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i, export class HexColorManager implements IColorManager { /** * Checks if the input starts with # - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("#"); @@ -38,7 +39,8 @@ export class HexColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { return this.#parseString(color.value); @@ -46,7 +48,8 @@ export class HexColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { return this.#parseString(color.value); @@ -54,7 +57,8 @@ export class HexColorManager implements IColorManager { /** * Parses a hex color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { return this.#parseString(input); diff --git a/plugins/colors/hsl/CHANGELOG.md b/plugins/colors/hsl/CHANGELOG.md index a1476181871..dbe819a0fc6 100644 --- a/plugins/colors/hsl/CHANGELOG.md +++ b/plugins/colors/hsl/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-hsl-color diff --git a/plugins/colors/hsl/package.dist.json b/plugins/colors/hsl/package.dist.json index 8ef0e5db2a3..9c8451ce3f3 100644 --- a/plugins/colors/hsl/package.dist.json +++ b/plugins/colors/hsl/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hsl-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HSL color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/hsl/package.json b/plugins/colors/hsl/package.json index 1e8595d9863..b969e89c0f9 100644 --- a/plugins/colors/hsl/package.json +++ b/plugins/colors/hsl/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hsl-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HSL color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/hsl/src/HslColorManager.ts b/plugins/colors/hsl/src/HslColorManager.ts index 7ba00f336cb..b8905f8facd 100644 --- a/plugins/colors/hsl/src/HslColorManager.ts +++ b/plugins/colors/hsl/src/HslColorManager.ts @@ -32,7 +32,8 @@ const hslRegex = /hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*( export class HslColorManager implements IColorManager { /** * Checks if the input starts with hsl - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("hsl"); @@ -40,7 +41,8 @@ export class HslColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -55,7 +57,8 @@ export class HslColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -74,7 +77,8 @@ export class HslColorManager implements IColorManager { /** * Parses an HSL color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/hsv/CHANGELOG.md b/plugins/colors/hsv/CHANGELOG.md index b54f2cb7a7e..13d5e8a402b 100644 --- a/plugins/colors/hsv/CHANGELOG.md +++ b/plugins/colors/hsv/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-hsv-color diff --git a/plugins/colors/hsv/package.dist.json b/plugins/colors/hsv/package.dist.json index 41f6bbdfbd3..fc78876f2c5 100644 --- a/plugins/colors/hsv/package.dist.json +++ b/plugins/colors/hsv/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hsv-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HSV color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/hsv/package.json b/plugins/colors/hsv/package.json index 127200b70d2..6d43522e882 100644 --- a/plugins/colors/hsv/package.json +++ b/plugins/colors/hsv/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hsv-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HSV color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/hsv/src/HsvColorManager.ts b/plugins/colors/hsv/src/HsvColorManager.ts index 656cee6f355..b458e3cc948 100644 --- a/plugins/colors/hsv/src/HsvColorManager.ts +++ b/plugins/colors/hsv/src/HsvColorManager.ts @@ -19,7 +19,8 @@ const hsvRegex = /hsva?\(\s*(\d+)°\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s export class HsvColorManager implements IColorManager { /** * Checks if the input starts with hsv - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("hsv"); @@ -27,7 +28,8 @@ export class HsvColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -42,7 +44,8 @@ export class HsvColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -61,7 +64,8 @@ export class HsvColorManager implements IColorManager { /** * Parses an HSV color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/hwb/CHANGELOG.md b/plugins/colors/hwb/CHANGELOG.md index c7a8a570847..5d136dcbcf2 100644 --- a/plugins/colors/hwb/CHANGELOG.md +++ b/plugins/colors/hwb/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-hwb-color diff --git a/plugins/colors/hwb/package.dist.json b/plugins/colors/hwb/package.dist.json index 894c3c715bc..4446b0abef9 100644 --- a/plugins/colors/hwb/package.dist.json +++ b/plugins/colors/hwb/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hwb-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HWB color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/hwb/package.json b/plugins/colors/hwb/package.json index f1dbcb667b1..53509157943 100644 --- a/plugins/colors/hwb/package.json +++ b/plugins/colors/hwb/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-hwb-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles HWB color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/hwb/src/HwbColorManager.ts b/plugins/colors/hwb/src/HwbColorManager.ts index f8b1744dd43..f990d5df1e9 100644 --- a/plugins/colors/hwb/src/HwbColorManager.ts +++ b/plugins/colors/hwb/src/HwbColorManager.ts @@ -83,7 +83,7 @@ function hwbToRgb(hwb: IHwb): IRgb { /** * Converts an HWB color value and alpha transparency value to RGBA. Conversion formula - * @param hwba - + * @param hwba - The hwba * @returns The RGBA representation */ function hwbaToRgba(hwba: IHwba): IRgba { @@ -97,7 +97,8 @@ function hwbaToRgba(hwba: IHwba): IRgba { export class HwbColorManager implements IColorManager { /** * Checks if the input starts with hwb - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("hwb"); @@ -105,7 +106,8 @@ export class HwbColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -120,7 +122,8 @@ export class HwbColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -139,7 +142,8 @@ export class HwbColorManager implements IColorManager { /** * Parses an HWB color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/lab/CHANGELOG.md b/plugins/colors/lab/CHANGELOG.md index 4e4395907a9..87a6f97342f 100644 --- a/plugins/colors/lab/CHANGELOG.md +++ b/plugins/colors/lab/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-lab-color diff --git a/plugins/colors/lab/package.dist.json b/plugins/colors/lab/package.dist.json index 7a004d34f66..97368549922 100644 --- a/plugins/colors/lab/package.dist.json +++ b/plugins/colors/lab/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-lab-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles LAB color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/lab/package.json b/plugins/colors/lab/package.json index 4187573a3d3..0c8a5996740 100644 --- a/plugins/colors/lab/package.json +++ b/plugins/colors/lab/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-lab-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles LAB color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/lab/src/LabColorManager.ts b/plugins/colors/lab/src/LabColorManager.ts index 53ca01cb31d..9406fbb0446 100644 --- a/plugins/colors/lab/src/LabColorManager.ts +++ b/plugins/colors/lab/src/LabColorManager.ts @@ -19,7 +19,8 @@ const labRegex = /lab\(\s*(\d+(\.\d+)?)%\s+(\d+(\.\d+)?)\s+(\d+(\.\d+)?)(?:\s*\/ export class LabColorManager implements IColorManager { /** * Checks if the input starts with lab - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("lab"); @@ -27,7 +28,8 @@ export class LabColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -42,7 +44,8 @@ export class LabColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -61,7 +64,8 @@ export class LabColorManager implements IColorManager { /** * Parses a LAB color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/lch/CHANGELOG.md b/plugins/colors/lch/CHANGELOG.md index 984b6b66fed..9f1e6f89f72 100644 --- a/plugins/colors/lch/CHANGELOG.md +++ b/plugins/colors/lch/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-lch-color diff --git a/plugins/colors/lch/package.dist.json b/plugins/colors/lch/package.dist.json index 42291035106..716b5c6d209 100644 --- a/plugins/colors/lch/package.dist.json +++ b/plugins/colors/lch/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-lch-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles LCH color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/lch/package.json b/plugins/colors/lch/package.json index bfaf35f7ef2..125f8d8f667 100644 --- a/plugins/colors/lch/package.json +++ b/plugins/colors/lch/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-lch-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles LCH color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/lch/src/LchColorManager.ts b/plugins/colors/lch/src/LchColorManager.ts index 2262196eb90..7b1a9039273 100644 --- a/plugins/colors/lch/src/LchColorManager.ts +++ b/plugins/colors/lch/src/LchColorManager.ts @@ -19,7 +19,8 @@ const lchRegex = /lch\(\s*(\d+(\.\d+)?)%\s+(\d+(\.\d+)?)\s+(\d+(\.\d+)?)(?:\s*\/ export class LchColorManager implements IColorManager { /** * Checks if the input starts with lch - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("lch"); @@ -27,7 +28,8 @@ export class LchColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -42,7 +44,8 @@ export class LchColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -61,7 +64,8 @@ export class LchColorManager implements IColorManager { /** * Parses an LCH color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/named/CHANGELOG.md b/plugins/colors/named/CHANGELOG.md index 7b6ec59a228..baa791f8b80 100644 --- a/plugins/colors/named/CHANGELOG.md +++ b/plugins/colors/named/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-named-color diff --git a/plugins/colors/named/package.dist.json b/plugins/colors/named/package.dist.json index 0f7727aa401..85de25bf323 100644 --- a/plugins/colors/named/package.dist.json +++ b/plugins/colors/named/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-named-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles named color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/named/package.json b/plugins/colors/named/package.json index f0047d67ce7..368674836f0 100644 --- a/plugins/colors/named/package.json +++ b/plugins/colors/named/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-named-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles named color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/named/src/NamedColorManager.ts b/plugins/colors/named/src/NamedColorManager.ts index 96339f8c404..04e27d1bef2 100644 --- a/plugins/colors/named/src/NamedColorManager.ts +++ b/plugins/colors/named/src/NamedColorManager.ts @@ -162,7 +162,8 @@ const namedColors = new Map([ export class NamedColorManager implements IColorManager { /** * Checks if the input is a named CSS color - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return namedColors.has(input.toLowerCase()); @@ -170,7 +171,8 @@ export class NamedColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { return this.#parseString(color.value); @@ -178,7 +180,8 @@ export class NamedColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { return this.#parseString(color.value); @@ -186,7 +189,8 @@ export class NamedColorManager implements IColorManager { /** * Parses a named color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { return this.#parseString(input); diff --git a/plugins/colors/oklab/CHANGELOG.md b/plugins/colors/oklab/CHANGELOG.md index 4cbbb20a1e0..5e173602ce4 100644 --- a/plugins/colors/oklab/CHANGELOG.md +++ b/plugins/colors/oklab/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-oklab-color diff --git a/plugins/colors/oklab/package.dist.json b/plugins/colors/oklab/package.dist.json index 8f992a11434..c0252abb508 100644 --- a/plugins/colors/oklab/package.dist.json +++ b/plugins/colors/oklab/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-oklab-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles OKLAB color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/oklab/package.json b/plugins/colors/oklab/package.json index 13e5f22a978..678f000fde1 100644 --- a/plugins/colors/oklab/package.json +++ b/plugins/colors/oklab/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-oklab-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles OKLAB color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/oklab/src/OklabColorManager.ts b/plugins/colors/oklab/src/OklabColorManager.ts index e5d6b78071a..3d1144f3114 100644 --- a/plugins/colors/oklab/src/OklabColorManager.ts +++ b/plugins/colors/oklab/src/OklabColorManager.ts @@ -23,7 +23,8 @@ const oklabRegex = export class OklabColorManager implements IColorManager { /** * Checks if the input starts with oklab - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("oklab"); @@ -31,7 +32,8 @@ export class OklabColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -46,7 +48,8 @@ export class OklabColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -65,7 +68,8 @@ export class OklabColorManager implements IColorManager { /** * Parses an OKLAB color string to RGBA - * @param input - + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/oklch/CHANGELOG.md b/plugins/colors/oklch/CHANGELOG.md index 8726b6a00ce..212ac3700a5 100644 --- a/plugins/colors/oklch/CHANGELOG.md +++ b/plugins/colors/oklch/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-oklch-color diff --git a/plugins/colors/oklch/package.dist.json b/plugins/colors/oklch/package.dist.json index 7a800414e83..00b806d81a0 100644 --- a/plugins/colors/oklch/package.dist.json +++ b/plugins/colors/oklch/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-oklch-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles OKLCH color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/oklch/package.json b/plugins/colors/oklch/package.json index 59bb5caabd2..853f0919287 100644 --- a/plugins/colors/oklch/package.json +++ b/plugins/colors/oklch/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-oklch-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles OKLCH color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/oklch/src/OklchColorManager.ts b/plugins/colors/oklch/src/OklchColorManager.ts index ef187227184..0886d9232af 100644 --- a/plugins/colors/oklch/src/OklchColorManager.ts +++ b/plugins/colors/oklch/src/OklchColorManager.ts @@ -23,7 +23,8 @@ const oklchRegex = export class OklchColorManager implements IColorManager { /** * Checks if the input starts with oklch - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("oklch"); @@ -31,7 +32,8 @@ export class OklchColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -46,7 +48,8 @@ export class OklchColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IRangeValueColor, @@ -65,7 +68,8 @@ export class OklchColorManager implements IColorManager { /** * Parses an OKLCH color string to RGBA - * @param input - + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/colors/rgb/CHANGELOG.md b/plugins/colors/rgb/CHANGELOG.md index 634a3da5a41..6c33d2fbf5f 100644 --- a/plugins/colors/rgb/CHANGELOG.md +++ b/plugins/colors/rgb/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-rgb-color diff --git a/plugins/colors/rgb/package.dist.json b/plugins/colors/rgb/package.dist.json index 11d3a1bd74c..2f1a59c283e 100644 --- a/plugins/colors/rgb/package.dist.json +++ b/plugins/colors/rgb/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-rgb-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles RGB color plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/colors/rgb/package.json b/plugins/colors/rgb/package.json index b19a850464c..f5be2b347bb 100644 --- a/plugins/colors/rgb/package.json +++ b/plugins/colors/rgb/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-rgb-color", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles RGB color plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "vitest": "^4.1.6" }, diff --git a/plugins/colors/rgb/src/RgbColorManager.ts b/plugins/colors/rgb/src/RgbColorManager.ts index 34579fb877d..d147f60a2bb 100644 --- a/plugins/colors/rgb/src/RgbColorManager.ts +++ b/plugins/colors/rgb/src/RgbColorManager.ts @@ -29,7 +29,8 @@ const rgbRegex = export class RgbColorManager implements IColorManager { /** * Checks if the input starts with rgb - * @param input + * @param input - The input value + * @returns The boolean value */ accepts(input: string): boolean { return input.startsWith("rgb"); @@ -37,7 +38,8 @@ export class RgbColorManager implements IColorManager { /** * Converts an IColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleColor(color: IColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -52,7 +54,8 @@ export class RgbColorManager implements IColorManager { /** * Converts an IRangeColor to RGB - * @param color + * @param color - The color + * @returns The value, or undefined if not available */ handleRangeColor(color: IRangeColor): IRgb | undefined { const colorValue = color.value as IValueColor, @@ -71,7 +74,8 @@ export class RgbColorManager implements IColorManager { /** * Parses an RGB color string to RGBA - * @param input + * @param input - The input value + * @returns The value, or undefined if not available */ parseString(input: string): IRgba | undefined { if (!this.accepts(input)) { diff --git a/plugins/easings/back/CHANGELOG.md b/plugins/easings/back/CHANGELOG.md index db185453099..5c9f48dd234 100644 --- a/plugins/easings/back/CHANGELOG.md +++ b/plugins/easings/back/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-back diff --git a/plugins/easings/back/package.dist.json b/plugins/easings/back/package.dist.json index b044c16ae31..e520e700a4f 100644 --- a/plugins/easings/back/package.dist.json +++ b/plugins/easings/back/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-back", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing back plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/back/package.json b/plugins/easings/back/package.json index e73de6cd82a..545b8ad234c 100644 --- a/plugins/easings/back/package.json +++ b/plugins/easings/back/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-back", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing back plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/back/src/easingsFunctions.ts b/plugins/easings/back/src/easingsFunctions.ts index 6dd167cddef..3f8dee6deaf 100644 --- a/plugins/easings/back/src/easingsFunctions.ts +++ b/plugins/easings/back/src/easingsFunctions.ts @@ -1,23 +1,23 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInBack, value => { +easingsFunctions.set("ease-in-back", value => { const c1 = 1.70158, c3 = c1 + 1; return c3 * value ** 3 - c1 * value ** 2; }); -easingsFunctions.set(EasingType.easeOutBack, value => { +easingsFunctions.set("ease-out-back", value => { const c1 = 1.70158, c3 = c1 + 1; return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2); }); -easingsFunctions.set(EasingType.easeInOutBack, value => { +easingsFunctions.set("ease-in-out-back", value => { const c1 = 1.70158, c2 = c1 * 1.525; diff --git a/plugins/easings/back/src/index.lazy.ts b/plugins/easings/back/src/index.lazy.ts index bd82d783a40..7c5d8d764af 100644 --- a/plugins/easings/back/src/index.lazy.ts +++ b/plugins/easings/back/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingBackPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/back/src/index.ts b/plugins/easings/back/src/index.ts index e0d00da5187..2aab645e5d2 100644 --- a/plugins/easings/back/src/index.ts +++ b/plugins/easings/back/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing back plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingBackPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/bounce/CHANGELOG.md b/plugins/easings/bounce/CHANGELOG.md index 294a440e6d9..e2a46efec6c 100644 --- a/plugins/easings/bounce/CHANGELOG.md +++ b/plugins/easings/bounce/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-bounce diff --git a/plugins/easings/bounce/package.dist.json b/plugins/easings/bounce/package.dist.json index 5a9053703b9..d05c22cd60d 100644 --- a/plugins/easings/bounce/package.dist.json +++ b/plugins/easings/bounce/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-bounce", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing bounce plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/bounce/package.json b/plugins/easings/bounce/package.json index a024da5db62..dcc6402f448 100644 --- a/plugins/easings/bounce/package.json +++ b/plugins/easings/bounce/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-bounce", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing bounce plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/bounce/src/easingsFunctions.ts b/plugins/easings/bounce/src/easingsFunctions.ts index b5eb15897fc..9d80e3e7f5e 100644 --- a/plugins/easings/bounce/src/easingsFunctions.ts +++ b/plugins/easings/bounce/src/easingsFunctions.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(), +const easingsFunctions = new Map(), bounceOut = (t: number): number => { const n1 = 7.5625, d1 = 2.75; @@ -20,9 +20,9 @@ const easingsFunctions = new Map(), } }; -easingsFunctions.set(EasingType.easeOutBounce, value => bounceOut(value)); -easingsFunctions.set(EasingType.easeInBounce, value => 1 - bounceOut(1 - value)); -easingsFunctions.set(EasingType.easeInOutBounce, value => +easingsFunctions.set("ease-out-bounce", value => bounceOut(value)); +easingsFunctions.set("ease-in-bounce", value => 1 - bounceOut(1 - value)); +easingsFunctions.set("ease-in-out-bounce", value => value < 0.5 ? (1 - bounceOut(1 - value * 2)) / 2 : (1 + bounceOut(value * 2 - 1)) / 2, ); diff --git a/plugins/easings/bounce/src/index.lazy.ts b/plugins/easings/bounce/src/index.lazy.ts index ffe4627cc2c..6c7daa493d6 100644 --- a/plugins/easings/bounce/src/index.lazy.ts +++ b/plugins/easings/bounce/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingBouncePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/bounce/src/index.ts b/plugins/easings/bounce/src/index.ts index 6edd903d096..d21592caa5f 100644 --- a/plugins/easings/bounce/src/index.ts +++ b/plugins/easings/bounce/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing bounce plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingBouncePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/circ/CHANGELOG.md b/plugins/easings/circ/CHANGELOG.md index fd9715d7235..5a1af465319 100644 --- a/plugins/easings/circ/CHANGELOG.md +++ b/plugins/easings/circ/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-circ diff --git a/plugins/easings/circ/package.dist.json b/plugins/easings/circ/package.dist.json index 9413b7b94f0..7a34612088f 100644 --- a/plugins/easings/circ/package.dist.json +++ b/plugins/easings/circ/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-circ", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing circ plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/circ/package.json b/plugins/easings/circ/package.json index e39806b38e2..f02324c3732 100644 --- a/plugins/easings/circ/package.json +++ b/plugins/easings/circ/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-circ", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing circ plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/circ/src/easingsFunctions.ts b/plugins/easings/circ/src/easingsFunctions.ts index d728d6fdca2..f2e595019bf 100644 --- a/plugins/easings/circ/src/easingsFunctions.ts +++ b/plugins/easings/circ/src/easingsFunctions.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInCirc, value => 1 - Math.sqrt(1 - value ** 2)); -easingsFunctions.set(EasingType.easeOutCirc, value => Math.sqrt(1 - (value - 1) ** 2)); -easingsFunctions.set(EasingType.easeInOutCirc, value => +easingsFunctions.set("ease-in-circ", value => 1 - Math.sqrt(1 - value ** 2)); +easingsFunctions.set("ease-out-circ", value => Math.sqrt(1 - (value - 1) ** 2)); +easingsFunctions.set("ease-in-out-circ", value => value < 0.5 ? (1 - Math.sqrt(1 - (2 * value) ** 2)) / 2 : (Math.sqrt(1 - (-2 * value + 2) ** 2) + 1) / 2, ); diff --git a/plugins/easings/circ/src/index.lazy.ts b/plugins/easings/circ/src/index.lazy.ts index e890241fbd8..c0104a063c2 100644 --- a/plugins/easings/circ/src/index.lazy.ts +++ b/plugins/easings/circ/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingCircPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/circ/src/index.ts b/plugins/easings/circ/src/index.ts index b556dd120ad..caaff340c30 100644 --- a/plugins/easings/circ/src/index.ts +++ b/plugins/easings/circ/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing circ plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingCircPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/cubic/CHANGELOG.md b/plugins/easings/cubic/CHANGELOG.md index 539f2084072..be4958641ec 100644 --- a/plugins/easings/cubic/CHANGELOG.md +++ b/plugins/easings/cubic/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-cubic diff --git a/plugins/easings/cubic/package.dist.json b/plugins/easings/cubic/package.dist.json index c5c87b42db4..e6fdc7880b2 100644 --- a/plugins/easings/cubic/package.dist.json +++ b/plugins/easings/cubic/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-cubic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing cubic plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/cubic/package.json b/plugins/easings/cubic/package.json index b12a980f47b..93cb34a13e5 100644 --- a/plugins/easings/cubic/package.json +++ b/plugins/easings/cubic/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-cubic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing cubic plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/cubic/src/easingsFunctions.ts b/plugins/easings/cubic/src/easingsFunctions.ts index 0617cea2628..26e09159017 100644 --- a/plugins/easings/cubic/src/easingsFunctions.ts +++ b/plugins/easings/cubic/src/easingsFunctions.ts @@ -1,12 +1,10 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInCubic, value => value ** 3); -easingsFunctions.set(EasingType.easeOutCubic, value => 1 - (1 - value) ** 3); -easingsFunctions.set(EasingType.easeInOutCubic, value => - value < 0.5 ? 4 * value ** 3 : 1 - (-2 * value + 2) ** 3 / 2, -); +easingsFunctions.set("ease-in-cubic", value => value ** 3); +easingsFunctions.set("ease-out-cubic", value => 1 - (1 - value) ** 3); +easingsFunctions.set("ease-in-out-cubic", value => (value < 0.5 ? 4 * value ** 3 : 1 - (-2 * value + 2) ** 3 / 2)); export { easingsFunctions }; diff --git a/plugins/easings/cubic/src/index.lazy.ts b/plugins/easings/cubic/src/index.lazy.ts index 4fc44303bfc..658f39c42c6 100644 --- a/plugins/easings/cubic/src/index.lazy.ts +++ b/plugins/easings/cubic/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingCubicPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/cubic/src/index.ts b/plugins/easings/cubic/src/index.ts index 37b376fa95e..7daf31535ed 100644 --- a/plugins/easings/cubic/src/index.ts +++ b/plugins/easings/cubic/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing cubic plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingCubicPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/elastic/CHANGELOG.md b/plugins/easings/elastic/CHANGELOG.md index b6ce9b0cab2..441effd391e 100644 --- a/plugins/easings/elastic/CHANGELOG.md +++ b/plugins/easings/elastic/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-elastic diff --git a/plugins/easings/elastic/package.dist.json b/plugins/easings/elastic/package.dist.json index 9efc258d10f..30d23bf2bef 100644 --- a/plugins/easings/elastic/package.dist.json +++ b/plugins/easings/elastic/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-elastic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing elastic plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/elastic/package.json b/plugins/easings/elastic/package.json index fbba759e355..6dd68bfc545 100644 --- a/plugins/easings/elastic/package.json +++ b/plugins/easings/elastic/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-elastic", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing elastic plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/elastic/src/easingsFunctions.ts b/plugins/easings/elastic/src/easingsFunctions.ts index e098fe9a1b7..fad7d1c0023 100644 --- a/plugins/easings/elastic/src/easingsFunctions.ts +++ b/plugins/easings/elastic/src/easingsFunctions.ts @@ -1,23 +1,23 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInElastic, value => { +easingsFunctions.set("ease-in-elastic", value => { if (value === 0 || value === 1) { return value; } return -Math.pow(2, 10 * (value - 1)) * Math.sin(((value - 1.075) * (2 * Math.PI)) / 0.3); }); -easingsFunctions.set(EasingType.easeOutElastic, value => { +easingsFunctions.set("ease-out-elastic", value => { if (value === 0 || value === 1) { return value; } return Math.pow(2, -10 * value) * Math.sin(((value - 0.075) * (2 * Math.PI)) / 0.3) + 1; }); -easingsFunctions.set(EasingType.easeInOutElastic, value => { +easingsFunctions.set("ease-in-out-elastic", value => { if (value === 0 || value === 1) { return value; } diff --git a/plugins/easings/elastic/src/index.lazy.ts b/plugins/easings/elastic/src/index.lazy.ts index 4eac42fff43..3c9aa50771a 100644 --- a/plugins/easings/elastic/src/index.lazy.ts +++ b/plugins/easings/elastic/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingElasticPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/elastic/src/index.ts b/plugins/easings/elastic/src/index.ts index 4082feda3f7..486499c9357 100644 --- a/plugins/easings/elastic/src/index.ts +++ b/plugins/easings/elastic/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing elastic plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingElasticPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/expo/CHANGELOG.md b/plugins/easings/expo/CHANGELOG.md index a5144d79c2e..c92a970736c 100644 --- a/plugins/easings/expo/CHANGELOG.md +++ b/plugins/easings/expo/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-expo diff --git a/plugins/easings/expo/package.dist.json b/plugins/easings/expo/package.dist.json index 17ef1953a36..0ab434870a6 100644 --- a/plugins/easings/expo/package.dist.json +++ b/plugins/easings/expo/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-expo", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing expo plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/expo/package.json b/plugins/easings/expo/package.json index 43a073986a3..3f6f5cfcf03 100644 --- a/plugins/easings/expo/package.json +++ b/plugins/easings/expo/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-expo", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing expo plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/expo/src/easingsFunctions.ts b/plugins/easings/expo/src/easingsFunctions.ts index 387e54140ad..e7e42506aa9 100644 --- a/plugins/easings/expo/src/easingsFunctions.ts +++ b/plugins/easings/expo/src/easingsFunctions.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInExpo, value => (value ? 2 ** (10 * value - 10) : 0)); -easingsFunctions.set(EasingType.easeOutExpo, value => (value === 1 ? 1 : 1 - Math.pow(2, -10 * value))); -easingsFunctions.set(EasingType.easeInOutExpo, value => { +easingsFunctions.set("ease-in-expo", value => (value ? 2 ** (10 * value - 10) : 0)); +easingsFunctions.set("ease-out-expo", value => (value === 1 ? 1 : 1 - Math.pow(2, -10 * value))); +easingsFunctions.set("ease-in-out-expo", value => { if (value === 1) { return 1; } else if (value) { diff --git a/plugins/easings/expo/src/index.lazy.ts b/plugins/easings/expo/src/index.lazy.ts index 8bd2d4cff72..ccb5f772fa0 100644 --- a/plugins/easings/expo/src/index.lazy.ts +++ b/plugins/easings/expo/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingExpoPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/expo/src/index.ts b/plugins/easings/expo/src/index.ts index a42a95115ce..6350432dfeb 100644 --- a/plugins/easings/expo/src/index.ts +++ b/plugins/easings/expo/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing expo plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingExpoPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/gaussian/CHANGELOG.md b/plugins/easings/gaussian/CHANGELOG.md index 671e0224d1f..5086b28a572 100644 --- a/plugins/easings/gaussian/CHANGELOG.md +++ b/plugins/easings/gaussian/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-gaussian diff --git a/plugins/easings/gaussian/package.dist.json b/plugins/easings/gaussian/package.dist.json index fbd75beb082..b2c482fd5f8 100644 --- a/plugins/easings/gaussian/package.dist.json +++ b/plugins/easings/gaussian/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-gaussian", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing gaussian plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "devDependencies": { "@tsparticles/engine": "workspace:*" diff --git a/plugins/easings/gaussian/package.json b/plugins/easings/gaussian/package.json index c2554bd02f3..77b507a1019 100644 --- a/plugins/easings/gaussian/package.json +++ b/plugins/easings/gaussian/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-gaussian", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing gaussian plugin", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/plugins/easings/gaussian/src/easingsFunctions.ts b/plugins/easings/gaussian/src/easingsFunctions.ts index 54245b14e78..8297360a28a 100644 --- a/plugins/easings/gaussian/src/easingsFunctions.ts +++ b/plugins/easings/gaussian/src/easingsFunctions.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(), +const easingsFunctions = new Map(), gaussian = (t: number): number => Math.exp(-4 * (1 - t) * (1 - t)); -easingsFunctions.set(EasingType.easeInGaussian, value => gaussian(value)); -easingsFunctions.set(EasingType.easeOutGaussian, value => gaussian(value)); -easingsFunctions.set(EasingType.easeInOutGaussian, value => gaussian(value)); +easingsFunctions.set("ease-in-gaussian", value => gaussian(value)); +easingsFunctions.set("ease-out-gaussian", value => gaussian(value)); +easingsFunctions.set("ease-in-out-gaussian", value => gaussian(value)); export { easingsFunctions }; diff --git a/plugins/easings/gaussian/src/index.lazy.ts b/plugins/easings/gaussian/src/index.lazy.ts index 430bd0b0d43..ab174aafffd 100644 --- a/plugins/easings/gaussian/src/index.lazy.ts +++ b/plugins/easings/gaussian/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingGaussianPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/gaussian/src/index.ts b/plugins/easings/gaussian/src/index.ts index b80c26ab437..4faf43108ef 100644 --- a/plugins/easings/gaussian/src/index.ts +++ b/plugins/easings/gaussian/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing gaussian plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingGaussianPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/linear/CHANGELOG.md b/plugins/easings/linear/CHANGELOG.md index 9fda85c1920..7a2cad3c3a0 100644 --- a/plugins/easings/linear/CHANGELOG.md +++ b/plugins/easings/linear/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-linear diff --git a/plugins/easings/linear/package.dist.json b/plugins/easings/linear/package.dist.json index 4b2ef8024ac..dac34689993 100644 --- a/plugins/easings/linear/package.dist.json +++ b/plugins/easings/linear/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-linear", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing linear plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "devDependencies": { "@tsparticles/engine": "workspace:*" diff --git a/plugins/easings/linear/package.json b/plugins/easings/linear/package.json index 9346adfec9e..30ff712a7ea 100644 --- a/plugins/easings/linear/package.json +++ b/plugins/easings/linear/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-linear", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing linear plugin", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/plugins/easings/linear/src/easingsFunctions.ts b/plugins/easings/linear/src/easingsFunctions.ts index a7ecce6699e..5a3ae1decb6 100644 --- a/plugins/easings/linear/src/easingsFunctions.ts +++ b/plugins/easings/linear/src/easingsFunctions.ts @@ -1,9 +1,9 @@ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInLinear, value => value); -easingsFunctions.set(EasingType.easeOutLinear, value => value); -easingsFunctions.set(EasingType.easeInOutLinear, value => value); +easingsFunctions.set("ease-in-linear", value => value); +easingsFunctions.set("ease-out-linear", value => value); +easingsFunctions.set("ease-in-out-linear", value => value); export { easingsFunctions }; diff --git a/plugins/easings/linear/src/index.lazy.ts b/plugins/easings/linear/src/index.lazy.ts index 60ef1d5e417..788097b8ed7 100644 --- a/plugins/easings/linear/src/index.lazy.ts +++ b/plugins/easings/linear/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingLinearPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/linear/src/index.ts b/plugins/easings/linear/src/index.ts index 75e9ce1664e..f663c657871 100644 --- a/plugins/easings/linear/src/index.ts +++ b/plugins/easings/linear/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing linear plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingLinearPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quad/CHANGELOG.md b/plugins/easings/quad/CHANGELOG.md index e6fda2a961c..96117f4de80 100644 --- a/plugins/easings/quad/CHANGELOG.md +++ b/plugins/easings/quad/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-quad diff --git a/plugins/easings/quad/package.dist.json b/plugins/easings/quad/package.dist.json index d6740d6eb56..69715be2065 100644 --- a/plugins/easings/quad/package.dist.json +++ b/plugins/easings/quad/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quad plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "devDependencies": { "@tsparticles/engine": "workspace:*" diff --git a/plugins/easings/quad/package.json b/plugins/easings/quad/package.json index 0348251ccaa..96ee2f5a1a4 100644 --- a/plugins/easings/quad/package.json +++ b/plugins/easings/quad/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quad", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quad plugin", "homepage": "https://particles.js.org", "scripts": { @@ -122,7 +122,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/plugins/easings/quad/src/easingsFunctions.ts b/plugins/easings/quad/src/easingsFunctions.ts index 8a8705441c6..1b0e6ce7b7c 100644 --- a/plugins/easings/quad/src/easingsFunctions.ts +++ b/plugins/easings/quad/src/easingsFunctions.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInQuad, value => value ** 2); -easingsFunctions.set(EasingType.easeOutQuad, value => 1 - (1 - value) ** 2); -easingsFunctions.set(EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2)); +easingsFunctions.set("ease-in-quad", value => value ** 2); +easingsFunctions.set("ease-out-quad", value => 1 - (1 - value) ** 2); +easingsFunctions.set("ease-in-out-quad", value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2)); export { easingsFunctions }; diff --git a/plugins/easings/quad/src/index.lazy.ts b/plugins/easings/quad/src/index.lazy.ts index 9f78e91a7b3..ffc0ae7ae1d 100644 --- a/plugins/easings/quad/src/index.lazy.ts +++ b/plugins/easings/quad/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingQuadPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quad/src/index.ts b/plugins/easings/quad/src/index.ts index 99b86f8d276..b2d1b259813 100644 --- a/plugins/easings/quad/src/index.ts +++ b/plugins/easings/quad/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing quad plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingQuadPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quart/CHANGELOG.md b/plugins/easings/quart/CHANGELOG.md index b89e3c3d5e5..98fe2529ba7 100644 --- a/plugins/easings/quart/CHANGELOG.md +++ b/plugins/easings/quart/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-quart diff --git a/plugins/easings/quart/package.dist.json b/plugins/easings/quart/package.dist.json index 3cbbea12f50..023ef65441a 100644 --- a/plugins/easings/quart/package.dist.json +++ b/plugins/easings/quart/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quart", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quart plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/quart/package.json b/plugins/easings/quart/package.json index bdcb1136424..e4e0ad48d38 100644 --- a/plugins/easings/quart/package.json +++ b/plugins/easings/quart/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quart", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quart plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/quart/src/easingsFunctions.ts b/plugins/easings/quart/src/easingsFunctions.ts index 81c5920d75b..9defec1f626 100644 --- a/plugins/easings/quart/src/easingsFunctions.ts +++ b/plugins/easings/quart/src/easingsFunctions.ts @@ -1,12 +1,10 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInQuart, value => value ** 4); -easingsFunctions.set(EasingType.easeOutQuart, value => 1 - (1 - value) ** 4); -easingsFunctions.set(EasingType.easeInOutQuart, value => - value < 0.5 ? 8 * value ** 4 : 1 - (-2 * value + 2) ** 4 / 2, -); +easingsFunctions.set("ease-in-quart", value => value ** 4); +easingsFunctions.set("ease-out-quart", value => 1 - (1 - value) ** 4); +easingsFunctions.set("ease-in-out-quart", value => (value < 0.5 ? 8 * value ** 4 : 1 - (-2 * value + 2) ** 4 / 2)); export { easingsFunctions }; diff --git a/plugins/easings/quart/src/index.lazy.ts b/plugins/easings/quart/src/index.lazy.ts index ff83933a5c1..92e743c52c4 100644 --- a/plugins/easings/quart/src/index.lazy.ts +++ b/plugins/easings/quart/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingQuartPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quart/src/index.ts b/plugins/easings/quart/src/index.ts index fa47bf0a89d..fc27e385f4b 100644 --- a/plugins/easings/quart/src/index.ts +++ b/plugins/easings/quart/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing quart plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingQuartPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quint/CHANGELOG.md b/plugins/easings/quint/CHANGELOG.md index 80b9448ce96..282e6380fcd 100644 --- a/plugins/easings/quint/CHANGELOG.md +++ b/plugins/easings/quint/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-quint diff --git a/plugins/easings/quint/package.dist.json b/plugins/easings/quint/package.dist.json index c990fc8a1ff..5195599e3c3 100644 --- a/plugins/easings/quint/package.dist.json +++ b/plugins/easings/quint/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quint", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quint plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/quint/package.json b/plugins/easings/quint/package.json index 13f478bcd3a..c3f8b11eb46 100644 --- a/plugins/easings/quint/package.json +++ b/plugins/easings/quint/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-quint", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing quint plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/quint/src/easingsFunctions.ts b/plugins/easings/quint/src/easingsFunctions.ts index df6e19f3d7f..b5370214135 100644 --- a/plugins/easings/quint/src/easingsFunctions.ts +++ b/plugins/easings/quint/src/easingsFunctions.ts @@ -1,12 +1,10 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInQuint, value => value ** 5); -easingsFunctions.set(EasingType.easeOutQuint, value => 1 - (1 - value) ** 5); -easingsFunctions.set(EasingType.easeInOutQuint, value => - value < 0.5 ? 16 * value ** 5 : 1 - (-2 * value + 2) ** 5 / 2, -); +easingsFunctions.set("ease-in-quint", value => value ** 5); +easingsFunctions.set("ease-out-quint", value => 1 - (1 - value) ** 5); +easingsFunctions.set("ease-in-out-quint", value => (value < 0.5 ? 16 * value ** 5 : 1 - (-2 * value + 2) ** 5 / 2)); export { easingsFunctions }; diff --git a/plugins/easings/quint/src/index.lazy.ts b/plugins/easings/quint/src/index.lazy.ts index 53ff492be62..88198d2d7ed 100644 --- a/plugins/easings/quint/src/index.lazy.ts +++ b/plugins/easings/quint/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingQuintPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/quint/src/index.ts b/plugins/easings/quint/src/index.ts index e5375d89595..87bcb851acd 100644 --- a/plugins/easings/quint/src/index.ts +++ b/plugins/easings/quint/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing quint plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingQuintPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/sigmoid/CHANGELOG.md b/plugins/easings/sigmoid/CHANGELOG.md index 2257072f356..c5f6d43027e 100644 --- a/plugins/easings/sigmoid/CHANGELOG.md +++ b/plugins/easings/sigmoid/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-sigmoid diff --git a/plugins/easings/sigmoid/package.dist.json b/plugins/easings/sigmoid/package.dist.json index 221fd7dbdfa..3fb6720a010 100644 --- a/plugins/easings/sigmoid/package.dist.json +++ b/plugins/easings/sigmoid/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-sigmoid", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing sigmoid plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/sigmoid/package.json b/plugins/easings/sigmoid/package.json index 49cbcb750d2..8899eae49bd 100644 --- a/plugins/easings/sigmoid/package.json +++ b/plugins/easings/sigmoid/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-sigmoid", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing sigmoid plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/sigmoid/src/easingsFunctions.ts b/plugins/easings/sigmoid/src/easingsFunctions.ts index b39bec88caf..852c81bd4f3 100644 --- a/plugins/easings/sigmoid/src/easingsFunctions.ts +++ b/plugins/easings/sigmoid/src/easingsFunctions.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(), +const easingsFunctions = new Map(), sigmoid = (t: number): number => 1 / (1 + Math.exp(-10 * (t - 0.5))); -easingsFunctions.set(EasingType.easeInSigmoid, value => sigmoid(value)); -easingsFunctions.set(EasingType.easeOutSigmoid, value => sigmoid(value)); -easingsFunctions.set(EasingType.easeInOutSigmoid, value => sigmoid(value)); +easingsFunctions.set("ease-in-sigmoid", value => sigmoid(value)); +easingsFunctions.set("ease-out-sigmoid", value => sigmoid(value)); +easingsFunctions.set("ease-in-out-sigmoid", value => sigmoid(value)); export { easingsFunctions }; diff --git a/plugins/easings/sigmoid/src/index.lazy.ts b/plugins/easings/sigmoid/src/index.lazy.ts index 22589fbd8db..51ab44f7c40 100644 --- a/plugins/easings/sigmoid/src/index.lazy.ts +++ b/plugins/easings/sigmoid/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingSigmoidPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/sigmoid/src/index.ts b/plugins/easings/sigmoid/src/index.ts index 6fd00ad9850..326ee0a46e0 100644 --- a/plugins/easings/sigmoid/src/index.ts +++ b/plugins/easings/sigmoid/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing sigmoid plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingSigmoidPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/sine/CHANGELOG.md b/plugins/easings/sine/CHANGELOG.md index 9ea66fa1023..f84f6ae60aa 100644 --- a/plugins/easings/sine/CHANGELOG.md +++ b/plugins/easings/sine/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-sine diff --git a/plugins/easings/sine/package.dist.json b/plugins/easings/sine/package.dist.json index 3094ecdc95f..de0c8cdf69b 100644 --- a/plugins/easings/sine/package.dist.json +++ b/plugins/easings/sine/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-sine", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing sine plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/sine/package.json b/plugins/easings/sine/package.json index 2b757ba1d49..c823c2977c4 100644 --- a/plugins/easings/sine/package.json +++ b/plugins/easings/sine/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-sine", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing sine plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/sine/src/easingsFunctions.ts b/plugins/easings/sine/src/easingsFunctions.ts index 24ce13cc2f1..5834deb01ac 100644 --- a/plugins/easings/sine/src/easingsFunctions.ts +++ b/plugins/easings/sine/src/easingsFunctions.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(); +const easingsFunctions = new Map(); -easingsFunctions.set(EasingType.easeInSine, value => 1 - Math.cos((value * Math.PI) / 2)); -easingsFunctions.set(EasingType.easeOutSine, value => Math.sin((value * Math.PI) / 2)); -easingsFunctions.set(EasingType.easeInOutSine, value => -(Math.cos(Math.PI * value) - 1) / 2); +easingsFunctions.set("ease-in-sine", value => 1 - Math.cos((value * Math.PI) / 2)); +easingsFunctions.set("ease-out-sine", value => Math.sin((value * Math.PI) / 2)); +easingsFunctions.set("ease-in-out-sine", value => -(Math.cos(Math.PI * value) - 1) / 2); export { easingsFunctions }; diff --git a/plugins/easings/sine/src/index.lazy.ts b/plugins/easings/sine/src/index.lazy.ts index 22e4ab8b7fc..8aa699d011d 100644 --- a/plugins/easings/sine/src/index.lazy.ts +++ b/plugins/easings/sine/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingSinePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/sine/src/index.ts b/plugins/easings/sine/src/index.ts index 5c88d8d59a9..c9109ca8dd5 100644 --- a/plugins/easings/sine/src/index.ts +++ b/plugins/easings/sine/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing sine plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingSinePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/smoothstep/CHANGELOG.md b/plugins/easings/smoothstep/CHANGELOG.md index a88028b6c6d..cb9db58be9f 100644 --- a/plugins/easings/smoothstep/CHANGELOG.md +++ b/plugins/easings/smoothstep/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-easing-smoothstep diff --git a/plugins/easings/smoothstep/package.dist.json b/plugins/easings/smoothstep/package.dist.json index 17f7c9417e6..35f7f2360a7 100644 --- a/plugins/easings/smoothstep/package.dist.json +++ b/plugins/easings/smoothstep/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-smoothstep", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing smoothstep plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/easings/smoothstep/package.json b/plugins/easings/smoothstep/package.json index e3fb7dec06f..d4677c561f7 100644 --- a/plugins/easings/smoothstep/package.json +++ b/plugins/easings/smoothstep/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-easing-smoothstep", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles easing smoothstep plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/easings/smoothstep/src/easingsFunctions.ts b/plugins/easings/smoothstep/src/easingsFunctions.ts index 4962c63cd19..12ffdb496c9 100644 --- a/plugins/easings/smoothstep/src/easingsFunctions.ts +++ b/plugins/easings/smoothstep/src/easingsFunctions.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ -import { type EasingFunction, EasingType, type EasingTypeAlt } from "@tsparticles/engine"; +import { type EasingFunction } from "@tsparticles/engine"; -const easingsFunctions = new Map(), +const easingsFunctions = new Map(), smoothstep = (t: number): number => t * t * (3 - 2 * t); -easingsFunctions.set(EasingType.easeInSmoothstep, value => smoothstep(value)); -easingsFunctions.set(EasingType.easeOutSmoothstep, value => smoothstep(value)); -easingsFunctions.set(EasingType.easeInOutSmoothstep, value => smoothstep(value)); +easingsFunctions.set("ease-in-smoothstep", value => smoothstep(value)); +easingsFunctions.set("ease-out-smoothstep", value => smoothstep(value)); +easingsFunctions.set("ease-in-out-smoothstep", value => smoothstep(value)); export { easingsFunctions }; diff --git a/plugins/easings/smoothstep/src/index.lazy.ts b/plugins/easings/smoothstep/src/index.lazy.ts index 737a79570c1..a8b4f9312c3 100644 --- a/plugins/easings/smoothstep/src/index.lazy.ts +++ b/plugins/easings/smoothstep/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEasingSmoothstepPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/easings/smoothstep/src/index.ts b/plugins/easings/smoothstep/src/index.ts index 61f5065f4eb..503261797cb 100644 --- a/plugins/easings/smoothstep/src/index.ts +++ b/plugins/easings/smoothstep/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the easing smoothstep plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadEasingSmoothstepPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emitters/CHANGELOG.md b/plugins/emitters/CHANGELOG.md index b51ae22b42e..342c207cfbd 100644 --- a/plugins/emitters/CHANGELOG.md +++ b/plugins/emitters/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters diff --git a/plugins/emitters/package.dist.json b/plugins/emitters/package.dist.json index ce1285561da..059fdf7982c 100644 --- a/plugins/emitters/package.dist.json +++ b/plugins/emitters/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters plugin", "homepage": "https://particles.js.org", "repository": { @@ -120,8 +120,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "peerDependenciesMeta": { "@tsparticles/plugin-interactivity": { diff --git a/plugins/emitters/package.json b/plugins/emitters/package.json index ab0f5f62612..23e9ab7c8ca 100644 --- a/plugins/emitters/package.json +++ b/plugins/emitters/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-emitters", - "version": "4.1.3", - "description": "tsParticles emitters plugin", + "version": "4.2.0", + "description": "tsParticles plugin for continuously spawning particles from configurable emitter shapes and positions", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "emitter", + "emitters" ], "author": "Matteo Bruni ", "license": "MIT", @@ -131,7 +98,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/plugins/emitters/src/EmitterInstance.ts b/plugins/emitters/src/EmitterInstance.ts index bbf0550f594..4e0d8d23d14 100644 --- a/plugins/emitters/src/EmitterInstance.ts +++ b/plugins/emitters/src/EmitterInstance.ts @@ -18,13 +18,13 @@ import { deepExtend, defaultOpacity, getRangeValue, - getSize, hMax, half, isPointInside, itemFromSingleOrMultiple, lMax, millisecondsToSeconds, + percentDenominator, randomInRangeValue, rangeColorToHsl, sMax, @@ -48,10 +48,10 @@ const defaultLifeDelay = 0, /** * - * @param particlesOptions - - * @param color - - * @param opacity - - * @param enable - + * @param particlesOptions - The particlesOptions + * @param color - The color + * @param opacity - The opacity value + * @param enable - The enable */ function setParticlesOptionsFillColor( particlesOptions: RecursivePartial, @@ -70,10 +70,10 @@ function setParticlesOptionsFillColor( /** * - * @param particlesOptions - - * @param color - - * @param opacity - - * @param width - + * @param particlesOptions - The particlesOptions + * @param color - The color + * @param opacity - The opacity value + * @param width - The width */ function setParticlesOptionsStrokeColor( particlesOptions: RecursivePartial, @@ -211,7 +211,13 @@ export class EmitterInstance { this.#paused = !this.options.autoPlay; this.#particlesOptions = particlesOptions; this.#size = this.#calcSize(); - this.size = getSize(this.#size, this.#container.canvas.size); + this.size = + this.#size.mode === PixelMode.percent + ? { + width: (this.#size.width / percentDenominator) * this.#container.canvas.size.width, + height: (this.#size.height / percentDenominator) * this.#container.canvas.size.height, + } + : { width: this.#size.width, height: this.#size.height }; this.#lifeCount = this.options.life.count ?? defaultLifeCount; this.#immortal = this.#lifeCount <= minLifeCount; @@ -330,7 +336,13 @@ export class EmitterInstance { : this.#calcPosition(); this.#size = this.#calcSize(); - this.size = getSize(this.#size, container.canvas.size); + this.size = + this.#size.mode === PixelMode.percent + ? { + width: (this.#size.width / percentDenominator) * container.canvas.size.width, + height: (this.#size.height / percentDenominator) * container.canvas.size.height, + } + : { width: this.#size.width, height: this.#size.height }; this.#shape?.resize(this.position, this.size); } @@ -472,7 +484,7 @@ export class EmitterInstance { ); } - readonly #destroy: () => void = () => { + #destroy(): void { this.#mutationObserver?.disconnect(); this.#mutationObserver = undefined; @@ -484,7 +496,7 @@ export class EmitterInstance { this.#container.dispatchEvent("emitterDestroyed", { emitter: this, }); - }; + } #emit(): void { if (this.#paused) { @@ -602,7 +614,7 @@ export class EmitterInstance { } } - readonly #prepareToDie: () => void = () => { + #prepareToDie(): void { if (this.#paused) { return; } @@ -614,14 +626,14 @@ export class EmitterInstance { if ((this.#lifeCount > minLifeCount || this.#immortal) && duration !== undefined && duration > minDuration) { this.#duration = duration * millisecondsToSeconds; } - }; + } - readonly #setColorAnimation = ( + #setColorAnimation( animation: IColorAnimation, initValue: number, maxValue: number, factor: number = defaultColorAnimationFactor, - ): number => { + ): number { const container = this.#container; if (!animation.enable) { @@ -636,5 +648,5 @@ export class EmitterInstance { colorSpeed = getRangeValue(animation.speed); return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * factor) % maxValue; - }; + } } diff --git a/plugins/emitters/src/EmittersInteractor.ts b/plugins/emitters/src/EmittersInteractor.ts index be200101dcb..a76d71303fa 100644 --- a/plugins/emitters/src/EmittersInteractor.ts +++ b/plugins/emitters/src/EmittersInteractor.ts @@ -10,8 +10,8 @@ import { type IDelta, type RecursivePartial, type SingleOrMultiple, - arrayRandomIndex, executeOnSingleOrMultiple, + getRandom, isArray, isInArray, itemFromArray, @@ -68,7 +68,7 @@ export class EmittersInteractor extends ExternalInteractorBase const usedIndexes = new Set(); for (let i = 0; i < modeEmitters.random.count; i++) { - const idx = arrayRandomIndex(modeEmitters.value); + const idx = Math.floor(getRandom() * modeEmitters.value.length); if (usedIndexes.has(idx) && usedIndexes.size < modeEmittersCount) { i--; diff --git a/plugins/emitters/src/Options/Classes/Emitter.ts b/plugins/emitters/src/Options/Classes/Emitter.ts index 6845a590c32..f250f037f41 100644 --- a/plugins/emitters/src/Options/Classes/Emitter.ts +++ b/plugins/emitters/src/Options/Classes/Emitter.ts @@ -10,6 +10,7 @@ import { deepExtend, executeOnSingleOrMultiple, isNull, + loadProperty, setRangeValue, } from "@tsparticles/engine"; import { EmitterLife } from "./EmitterLife.js"; @@ -26,7 +27,7 @@ export class Emitter implements IEmitter, IOptionLoader { /** * Starts the emitter automatically */ - autoPlay; + autoPlay = true; /** * The direction of the emitted particles */ @@ -38,11 +39,11 @@ export class Emitter implements IEmitter, IOptionLoader { /** * Sets if the particles will spawn at the emitter perimeter or inside the area */ - fill; + fill = true; /** * The emitter life options */ - life; + readonly life = new EmitterLife(); /** * The emitter name */ @@ -58,11 +59,11 @@ export class Emitter implements IEmitter, IOptionLoader { /** * The particles emitting rate options */ - rate; + readonly rate = new EmitterRate(); /** * The emitter shape options */ - shape; + readonly shape = new EmitterShape(); /** * The size of the particles emitter area */ @@ -70,7 +71,7 @@ export class Emitter implements IEmitter, IOptionLoader { /** * The emitter spawn options */ - spawn; + readonly spawn = new EmitterSpawn(); /** * The particle spawn fill color */ @@ -80,17 +81,7 @@ export class Emitter implements IEmitter, IOptionLoader { */ spawnStrokeColor?: AnimatableColor; /** The number of starting particles of the emitter */ - startCount; - - constructor() { - this.autoPlay = true; - this.fill = true; - this.life = new EmitterLife(); - this.rate = new EmitterRate(); - this.shape = new EmitterShape(); - this.spawn = new EmitterSpawn(); - this.startCount = 0; - } + startCount = 0; /** * Loads the emitter options from the given data @@ -101,9 +92,7 @@ export class Emitter implements IEmitter, IOptionLoader { return; } - if (data.autoPlay !== undefined) { - this.autoPlay = data.autoPlay; - } + loadProperty(this, "autoPlay", data.autoPlay); if (data.size !== undefined) { this.size ??= new EmitterSize(); @@ -111,19 +100,15 @@ export class Emitter implements IEmitter, IOptionLoader { this.size.load(data.size); } - if (data.direction !== undefined) { - this.direction = data.direction; - } + loadProperty(this, "direction", data.direction); - this.domId = data.domId; + loadProperty(this, "domId", data.domId); - if (data.fill !== undefined) { - this.fill = data.fill; - } + loadProperty(this, "fill", data.fill); this.life.load(data.life); - this.name = data.name; + loadProperty(this, "name", data.name); this.particles = executeOnSingleOrMultiple(data.particles, particles => { return deepExtend({}, particles) as RecursivePartial; @@ -157,8 +142,6 @@ export class Emitter implements IEmitter, IOptionLoader { this.spawnStrokeColor.load(data.spawnStrokeColor); } - if (data.startCount !== undefined) { - this.startCount = data.startCount; - } + loadProperty(this, "startCount", data.startCount); } } diff --git a/plugins/emitters/src/Options/Classes/EmitterLife.ts b/plugins/emitters/src/Options/Classes/EmitterLife.ts index 89ba132b918..214bf668cba 100644 --- a/plugins/emitters/src/Options/Classes/EmitterLife.ts +++ b/plugins/emitters/src/Options/Classes/EmitterLife.ts @@ -1,4 +1,11 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadProperty, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IEmitterLife } from "../Interfaces/IEmitterLife.js"; /** @@ -20,11 +27,7 @@ export class EmitterLife implements IEmitterLife, IOptionLoader { /** * If enabled the first delay will be applied */ - wait; - - constructor() { - this.wait = false; - } + wait = false; /** * Loads the emitter life options from the given data @@ -35,20 +38,9 @@ export class EmitterLife implements IEmitterLife, IOptionLoader { return; } - if (data.count !== undefined) { - this.count = data.count; - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } - - if (data.duration !== undefined) { - this.duration = setRangeValue(data.duration); - } - - if (data.wait !== undefined) { - this.wait = data.wait; - } + loadProperty(this, "count", data.count); + loadRangeProperty(this, "delay", data.delay); + loadRangeProperty(this, "duration", data.duration); + loadProperty(this, "wait", data.wait); } } diff --git a/plugins/emitters/src/Options/Classes/EmitterRate.ts b/plugins/emitters/src/Options/Classes/EmitterRate.ts index 3034b260226..279a3e6b5a5 100644 --- a/plugins/emitters/src/Options/Classes/EmitterRate.ts +++ b/plugins/emitters/src/Options/Classes/EmitterRate.ts @@ -1,4 +1,10 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IEmitterRate } from "../Interfaces/IEmitterRate.js"; /** @@ -8,16 +14,11 @@ export class EmitterRate implements IEmitterRate, IOptionLoader { /** * The delay between emissions in seconds */ - delay: RangeValue; + delay: RangeValue = 0.1; /** * The quantity of particles emitted per emission event */ - quantity: RangeValue; - - constructor() { - this.quantity = 1; - this.delay = 0.1; - } + quantity: RangeValue = 1; /** * Loads the emitter rate options from the given data @@ -28,12 +29,7 @@ export class EmitterRate implements IEmitterRate, IOptionLoader { return; } - if (data.quantity !== undefined) { - this.quantity = setRangeValue(data.quantity); - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } + loadRangeProperty(this, "quantity", data.quantity); + loadRangeProperty(this, "delay", data.delay); } } diff --git a/plugins/emitters/src/Options/Classes/EmitterShape.ts b/plugins/emitters/src/Options/Classes/EmitterShape.ts index 52c7b8aac6a..a49d306c848 100644 --- a/plugins/emitters/src/Options/Classes/EmitterShape.ts +++ b/plugins/emitters/src/Options/Classes/EmitterShape.ts @@ -1,17 +1,11 @@ -import { type IOptionLoader, type RecursivePartial, deepExtend, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, deepExtend, isNull, loadProperty } from "@tsparticles/engine"; import { EmitterShapeReplace } from "./EmitterShapeReplace.js"; import type { IEmitterShape } from "../Interfaces/IEmitterShape.js"; export class EmitterShape implements IEmitterShape, IOptionLoader { - options: Record; - replace; - type: string; - - constructor() { - this.options = {}; - this.replace = new EmitterShapeReplace(); - this.type = "square"; - } + options: Record = {}; + readonly replace = new EmitterShapeReplace(); + type = "square"; load(data?: RecursivePartial): void { if (isNull(data)) { @@ -24,8 +18,6 @@ export class EmitterShape implements IEmitterShape, IOptionLoader this.replace.load(data.replace); - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "type", data.type); } } diff --git a/plugins/emitters/src/Options/Classes/EmitterShapeReplace.ts b/plugins/emitters/src/Options/Classes/EmitterShapeReplace.ts index 53bef843404..aa680bed46f 100644 --- a/plugins/emitters/src/Options/Classes/EmitterShapeReplace.ts +++ b/plugins/emitters/src/Options/Classes/EmitterShapeReplace.ts @@ -1,26 +1,16 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IEmitterShapeReplace } from "../Interfaces/IEmitterShapeReplace.js"; export class EmitterShapeReplace implements IEmitterShapeReplace, IOptionLoader { - color: boolean; - opacity: boolean; - - constructor() { - this.color = false; - this.opacity = false; - } + color = false; + opacity = false; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.color !== undefined) { - this.color = data.color; - } - - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } + loadProperty(this, "color", data.color); + loadProperty(this, "opacity", data.opacity); } } diff --git a/plugins/emitters/src/Options/Classes/EmitterSize.ts b/plugins/emitters/src/Options/Classes/EmitterSize.ts index 658a85bd5b3..41a9f8ffbd5 100644 --- a/plugins/emitters/src/Options/Classes/EmitterSize.ts +++ b/plugins/emitters/src/Options/Classes/EmitterSize.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, PixelMode, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, PixelMode, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IEmitterSize } from "../Interfaces/IEmitterSize.js"; /** @@ -8,21 +8,15 @@ export class EmitterSize implements IEmitterSize, IOptionLoader { /** * The emitter area height */ - height; + height = 0; /** * The emitter size mode (percent or precise) */ - mode: PixelMode | keyof typeof PixelMode; + mode: PixelMode | keyof typeof PixelMode = PixelMode.percent; /** * The emitter area width */ - width; - - constructor() { - this.mode = PixelMode.percent; - this.height = 0; - this.width = 0; - } + width = 0; /** * Loads the emitter size options from the given data @@ -33,16 +27,8 @@ export class EmitterSize implements IEmitterSize, IOptionLoader { return; } - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.height !== undefined) { - this.height = data.height; - } - - if (data.width !== undefined) { - this.width = data.width; - } + loadProperty(this, "mode", data.mode); + loadProperty(this, "height", data.height); + loadProperty(this, "width", data.width); } } diff --git a/plugins/emitters/src/addEmittersShapesManager.ts b/plugins/emitters/src/addEmittersShapesManager.ts index 1e274981fa2..28ae230ded8 100644 --- a/plugins/emitters/src/addEmittersShapesManager.ts +++ b/plugins/emitters/src/addEmittersShapesManager.ts @@ -3,7 +3,7 @@ import type { IEmitterShapeGenerator } from "./IEmitterShapeGenerator.js"; /** * - * @param e - + * @param e - The event object */ export async function addEmittersShapesManager(e: EmittersEngine): Promise { const { ShapeManager } = await import("./ShapeManager.js"), diff --git a/plugins/emitters/src/ensureEmittersPluginLoaded.ts b/plugins/emitters/src/ensureEmittersPluginLoaded.ts index 4b40303b2c9..6c6587197dd 100644 --- a/plugins/emitters/src/ensureEmittersPluginLoaded.ts +++ b/plugins/emitters/src/ensureEmittersPluginLoaded.ts @@ -1,7 +1,7 @@ import type { EmittersEngine } from "./EmittersEngine.js"; /** - * @param e - + * @param e - The event object */ export function ensureEmittersPluginLoaded(e: EmittersEngine): void { if (!e.pluginManager.addEmitterShapeGenerator) { diff --git a/plugins/emittersShapes/canvas/CHANGELOG.md b/plugins/emittersShapes/canvas/CHANGELOG.md index a3a2949d682..6c1b572ff66 100644 --- a/plugins/emittersShapes/canvas/CHANGELOG.md +++ b/plugins/emittersShapes/canvas/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters-shape-canvas diff --git a/plugins/emittersShapes/canvas/package.dist.json b/plugins/emittersShapes/canvas/package.dist.json index acb0283a0cb..1075d550659 100644 --- a/plugins/emittersShapes/canvas/package.dist.json +++ b/plugins/emittersShapes/canvas/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-canvas", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape canvas plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,14 +106,14 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/plugins/emittersShapes/canvas/package.json b/plugins/emittersShapes/canvas/package.json index 5863aa31f36..a6de256b5a5 100644 --- a/plugins/emittersShapes/canvas/package.json +++ b/plugins/emittersShapes/canvas/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-canvas", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape canvas plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-emitters": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*" }, diff --git a/plugins/emittersShapes/canvas/src/Options/Classes/EmittersCanvasShapeOptions.ts b/plugins/emittersShapes/canvas/src/Options/Classes/EmittersCanvasShapeOptions.ts index 0c5fce24041..cd28d0ea861 100644 --- a/plugins/emittersShapes/canvas/src/Options/Classes/EmittersCanvasShapeOptions.ts +++ b/plugins/emittersShapes/canvas/src/Options/Classes/EmittersCanvasShapeOptions.ts @@ -15,10 +15,6 @@ export class EmittersCanvasShapeOptions * The canvas element to use as the shape source */ element?: HTMLCanvasElement; - /** - * A filter function or string to apply to pixels - */ - filter: string | ((pixel: IRgba) => boolean); /** * The image element to use as the shape source */ @@ -26,27 +22,25 @@ export class EmittersCanvasShapeOptions /** * The pixels options */ - pixels: PixelsOptions; + readonly pixels: PixelsOptions = new PixelsOptions(); /** * The scale factor for the shape */ - scale: number; + scale = 1; /** * The CSS selector for the canvas element */ - selector: string; + selector = ""; /** * The text options for rendering text as the shape */ - text: TextOptions; - - constructor() { - this.filter = (pixel): boolean => pixel.a > minAlpha; - this.pixels = new PixelsOptions(); - this.scale = 1; - this.selector = ""; - this.text = new TextOptions(); - } + readonly text: TextOptions = new TextOptions(); + /** + * A filter function or string to apply to pixels + * @param pixel - The pixel + * @returns The boolean value + */ + filter: string | ((pixel: IRgba) => boolean) = (pixel): boolean => pixel.a > minAlpha; /** * Loads the canvas shape options from the given data diff --git a/plugins/emittersShapes/canvas/src/Options/Classes/PixelsOptions.ts b/plugins/emittersShapes/canvas/src/Options/Classes/PixelsOptions.ts index cc428151ad2..687fd2c6a0b 100644 --- a/plugins/emittersShapes/canvas/src/Options/Classes/PixelsOptions.ts +++ b/plugins/emittersShapes/canvas/src/Options/Classes/PixelsOptions.ts @@ -2,11 +2,7 @@ import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/ import type { IPixelsOptions } from "../Interfaces/IPixelsOptions.js"; export class PixelsOptions implements IPixelsOptions, IOptionLoader { - offset: number; - - constructor() { - this.offset = 4; - } + offset = 4; load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/emittersShapes/canvas/src/Options/Classes/TextFontOptions.ts b/plugins/emittersShapes/canvas/src/Options/Classes/TextFontOptions.ts index 3cc1fed0046..6e5fa682472 100644 --- a/plugins/emittersShapes/canvas/src/Options/Classes/TextFontOptions.ts +++ b/plugins/emittersShapes/canvas/src/Options/Classes/TextFontOptions.ts @@ -2,19 +2,11 @@ import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/ import type { ITextFontOptions } from "../Interfaces/ITextFontOptions.js"; export class TextFontOptions implements ITextFontOptions, IOptionLoader { - family: string; - size: string | number; - style: string; - variant: string; - weight: string; - - constructor() { - this.family = "Verdana"; - this.size = 32; - this.style = ""; - this.variant = ""; - this.weight = ""; - } + family = "Verdana"; + size: string | number = 32; + style = ""; + variant = ""; + weight = ""; load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/emittersShapes/canvas/src/Options/Classes/TextLinesOptions.ts b/plugins/emittersShapes/canvas/src/Options/Classes/TextLinesOptions.ts index fabf62fd0d2..e78928fce5a 100644 --- a/plugins/emittersShapes/canvas/src/Options/Classes/TextLinesOptions.ts +++ b/plugins/emittersShapes/canvas/src/Options/Classes/TextLinesOptions.ts @@ -2,13 +2,8 @@ import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/ import type { ITextLinesOptions } from "../Interfaces/ITextLinesOptions.js"; export class TextLinesOptions implements ITextLinesOptions, IOptionLoader { - separator: string; - spacing: number; - - constructor() { - this.separator = "\n"; - this.spacing = 0; - } + separator = "\n"; + spacing = 0; load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/emittersShapes/canvas/src/Options/Classes/TextOptions.ts b/plugins/emittersShapes/canvas/src/Options/Classes/TextOptions.ts index 01c8523b193..1322fb38d0a 100644 --- a/plugins/emittersShapes/canvas/src/Options/Classes/TextOptions.ts +++ b/plugins/emittersShapes/canvas/src/Options/Classes/TextOptions.ts @@ -4,17 +4,10 @@ import { TextFontOptions } from "./TextFontOptions.js"; import { TextLinesOptions } from "./TextLinesOptions.js"; export class TextOptions implements ITextOptions, IOptionLoader { - color; - font; - lines; - text; - - constructor() { - this.color = "#000000"; - this.font = new TextFontOptions(); - this.lines = new TextLinesOptions(); - this.text = ""; - } + color = "#000000"; + readonly font = new TextFontOptions(); + readonly lines = new TextLinesOptions(); + text = ""; load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/emittersShapes/canvas/src/index.lazy.ts b/plugins/emittersShapes/canvas/src/index.lazy.ts index 2848029bc44..b7687fbb1a3 100644 --- a/plugins/emittersShapes/canvas/src/index.lazy.ts +++ b/plugins/emittersShapes/canvas/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeCanvas(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/canvas/src/index.ts b/plugins/emittersShapes/canvas/src/index.ts index fd83f97a5e5..6bf39f441a7 100644 --- a/plugins/emittersShapes/canvas/src/index.ts +++ b/plugins/emittersShapes/canvas/src/index.ts @@ -5,7 +5,7 @@ import type { Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeCanvas(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/circle/CHANGELOG.md b/plugins/emittersShapes/circle/CHANGELOG.md index d5622449fef..01911be8821 100644 --- a/plugins/emittersShapes/circle/CHANGELOG.md +++ b/plugins/emittersShapes/circle/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters-shape-circle diff --git a/plugins/emittersShapes/circle/package.dist.json b/plugins/emittersShapes/circle/package.dist.json index c62b3c3aa17..e832939e3cd 100644 --- a/plugins/emittersShapes/circle/package.dist.json +++ b/plugins/emittersShapes/circle/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-circle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape circle plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/emittersShapes/circle/package.json b/plugins/emittersShapes/circle/package.json index 7d596119cd6..9baa3657c53 100644 --- a/plugins/emittersShapes/circle/package.json +++ b/plugins/emittersShapes/circle/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-circle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape circle plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-emitters": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*" }, diff --git a/plugins/emittersShapes/circle/src/EmittersCircleShape.ts b/plugins/emittersShapes/circle/src/EmittersCircleShape.ts index 0e40c65c53d..d699cce6968 100644 --- a/plugins/emittersShapes/circle/src/EmittersCircleShape.ts +++ b/plugins/emittersShapes/circle/src/EmittersCircleShape.ts @@ -1,7 +1,14 @@ import { EmitterShapeBase, type IRandomPositionData } from "@tsparticles/plugin-emitters"; -import { type ICoordinates, type IDimension, double, doublePI, getRandom, half, quarter } from "@tsparticles/engine"; - -const squareExp = 2; +import { + type ICoordinates, + type IDimension, + double, + doublePI, + getRandom, + half, + quarter, + squareExp, +} from "@tsparticles/engine"; export class EmittersCircleShape extends EmitterShapeBase { // eslint-disable-next-line @typescript-eslint/no-useless-constructor diff --git a/plugins/emittersShapes/circle/src/index.lazy.ts b/plugins/emittersShapes/circle/src/index.lazy.ts index aa1394d7f0c..a81820d52a9 100644 --- a/plugins/emittersShapes/circle/src/index.lazy.ts +++ b/plugins/emittersShapes/circle/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeCircle(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/circle/src/index.ts b/plugins/emittersShapes/circle/src/index.ts index 047764ff113..1736aeaf6dc 100644 --- a/plugins/emittersShapes/circle/src/index.ts +++ b/plugins/emittersShapes/circle/src/index.ts @@ -5,7 +5,7 @@ import type { Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeCircle(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/path/CHANGELOG.md b/plugins/emittersShapes/path/CHANGELOG.md index da35212095d..0a8d382adcd 100644 --- a/plugins/emittersShapes/path/CHANGELOG.md +++ b/plugins/emittersShapes/path/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters-shape-path diff --git a/plugins/emittersShapes/path/package.dist.json b/plugins/emittersShapes/path/package.dist.json index a2f27581f36..90c60f451b2 100644 --- a/plugins/emittersShapes/path/package.dist.json +++ b/plugins/emittersShapes/path/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-path", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape path plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/emittersShapes/path/package.json b/plugins/emittersShapes/path/package.json index 7ed5aabc0e6..fdb02fbabb2 100644 --- a/plugins/emittersShapes/path/package.json +++ b/plugins/emittersShapes/path/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-path", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape path plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-emitters": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*" }, diff --git a/plugins/emittersShapes/path/src/Options/Classes/EmittersPathShapeOptions.ts b/plugins/emittersShapes/path/src/Options/Classes/EmittersPathShapeOptions.ts index 0f1fcded31a..2bb0d66856d 100644 --- a/plugins/emittersShapes/path/src/Options/Classes/EmittersPathShapeOptions.ts +++ b/plugins/emittersShapes/path/src/Options/Classes/EmittersPathShapeOptions.ts @@ -10,11 +10,7 @@ export class EmittersPathShapeOptions implements IEmittersPathShapeOptions, IOpt /** * The points defining the path */ - points: ICoordinates[]; - - constructor() { - this.points = []; - } + points: ICoordinates[] = []; /** * Loads the path shape options from the given data diff --git a/plugins/emittersShapes/path/src/index.lazy.ts b/plugins/emittersShapes/path/src/index.lazy.ts index 356ea91ef24..f34850ffbdd 100644 --- a/plugins/emittersShapes/path/src/index.lazy.ts +++ b/plugins/emittersShapes/path/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/path/src/index.ts b/plugins/emittersShapes/path/src/index.ts index 165d31563e2..2549e531960 100644 --- a/plugins/emittersShapes/path/src/index.ts +++ b/plugins/emittersShapes/path/src/index.ts @@ -6,7 +6,7 @@ declare const __VERSION__: string; /** * - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapePath(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/path/src/utils.ts b/plugins/emittersShapes/path/src/utils.ts index b950826258d..bc59b530546 100644 --- a/plugins/emittersShapes/path/src/utils.ts +++ b/plugins/emittersShapes/path/src/utils.ts @@ -4,10 +4,10 @@ const maxAttempts = 100; /** * - * @param ctx - - * @param path - - * @param center - - * @param size - + * @param ctx - The rendering context + * @param path - The path + * @param center - The center point + * @param size - The size * @returns the random point within the path */ export function generateRandomPointWithinPath( @@ -36,10 +36,10 @@ export function generateRandomPointWithinPath( /** * - * @param ctx - - * @param path - - * @param center - - * @param size - + * @param ctx - The rendering context + * @param path - The path + * @param center - The center point + * @param size - The size * @returns the random point on the perimeter of the path */ export function generateRandomPointOnPathPerimeter( diff --git a/plugins/emittersShapes/polygon/CHANGELOG.md b/plugins/emittersShapes/polygon/CHANGELOG.md index 954416deeb9..7fdcc8b274a 100644 --- a/plugins/emittersShapes/polygon/CHANGELOG.md +++ b/plugins/emittersShapes/polygon/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters-shape-polygon diff --git a/plugins/emittersShapes/polygon/package.dist.json b/plugins/emittersShapes/polygon/package.dist.json index fdce695e6c4..30842125b99 100644 --- a/plugins/emittersShapes/polygon/package.dist.json +++ b/plugins/emittersShapes/polygon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-polygon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape polygon plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/emittersShapes/polygon/package.json b/plugins/emittersShapes/polygon/package.json index 1e050dad9ec..542c651ca9d 100644 --- a/plugins/emittersShapes/polygon/package.json +++ b/plugins/emittersShapes/polygon/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-polygon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape polygon plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-emitters": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*" }, diff --git a/plugins/emittersShapes/polygon/src/Options/Classes/EmittersPolygonShapeOptions.ts b/plugins/emittersShapes/polygon/src/Options/Classes/EmittersPolygonShapeOptions.ts index 16b1a32ad21..c1966afb560 100644 --- a/plugins/emittersShapes/polygon/src/Options/Classes/EmittersPolygonShapeOptions.ts +++ b/plugins/emittersShapes/polygon/src/Options/Classes/EmittersPolygonShapeOptions.ts @@ -10,16 +10,11 @@ export class EmittersPolygonShapeOptions /** * The rotation angle of the polygon in radians */ - angle: number; + angle = 0; /** * The number of sides of the polygon */ - sides: number; - - constructor() { - this.angle = 0; - this.sides = 5; - } + sides = 5; /** * Loads the polygon shape options from the given data diff --git a/plugins/emittersShapes/polygon/src/index.lazy.ts b/plugins/emittersShapes/polygon/src/index.lazy.ts index b2c8cd858c7..ae0f183f1fc 100644 --- a/plugins/emittersShapes/polygon/src/index.lazy.ts +++ b/plugins/emittersShapes/polygon/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapePolygon(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/polygon/src/index.ts b/plugins/emittersShapes/polygon/src/index.ts index f607e5c1065..df94fdd41c8 100644 --- a/plugins/emittersShapes/polygon/src/index.ts +++ b/plugins/emittersShapes/polygon/src/index.ts @@ -5,7 +5,7 @@ import type { Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapePolygon(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/polygon/src/utils.ts b/plugins/emittersShapes/polygon/src/utils.ts index da67f6bf6cb..f5d0006d66d 100644 --- a/plugins/emittersShapes/polygon/src/utils.ts +++ b/plugins/emittersShapes/polygon/src/utils.ts @@ -5,10 +5,10 @@ const defaultRotation = 0, /** * - * @param position - - * @param sides - - * @param radius - - * @param rotationAngle - + * @param position - The position + * @param sides - The sides + * @param radius - The radius + * @param rotationAngle - The rotationAngle * @returns the polygon coordinates */ export function generateRandomPolygon( @@ -34,7 +34,7 @@ export function generateRandomPolygon( /** * - * @param polygon - + * @param polygon - The polygon * @returns a random point within the polygon */ export function generateRandomPointWithinPolygon(polygon: ICoordinates[]): ICoordinates | null { @@ -86,7 +86,7 @@ export function generateRandomPointWithinPolygon(polygon: ICoordinates[]): ICoor /** * - * @param polygon - + * @param polygon - The polygon * @returns a random point on the perimeter of the polygon */ export function generateRandomPointOnPolygonPerimeter(polygon: ICoordinates[]): ICoordinates | undefined { @@ -111,8 +111,8 @@ export function generateRandomPointOnPolygonPerimeter(polygon: ICoordinates[]): /** * - * @param point - - * @param polygon - + * @param point - The point + * @param polygon - The polygon * @returns whether the point is within the polygon */ export function isPointInPolygon(point: ICoordinates, polygon: ICoordinates[]): boolean { diff --git a/plugins/emittersShapes/square/CHANGELOG.md b/plugins/emittersShapes/square/CHANGELOG.md index 8593945bacf..1deaac6eb47 100644 --- a/plugins/emittersShapes/square/CHANGELOG.md +++ b/plugins/emittersShapes/square/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-emitters-shape-square diff --git a/plugins/emittersShapes/square/package.dist.json b/plugins/emittersShapes/square/package.dist.json index c0bb70f2fca..eb204b1587f 100644 --- a/plugins/emittersShapes/square/package.dist.json +++ b/plugins/emittersShapes/square/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-square", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape square plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/emittersShapes/square/package.json b/plugins/emittersShapes/square/package.json index 5e5047d9e68..9b021720735 100644 --- a/plugins/emittersShapes/square/package.json +++ b/plugins/emittersShapes/square/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-emitters-shape-square", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emitters shape square plugin", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-emitters": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*" }, diff --git a/plugins/emittersShapes/square/src/EmittersSquareShape.ts b/plugins/emittersShapes/square/src/EmittersSquareShape.ts index 9592e763b43..d984011001a 100644 --- a/plugins/emittersShapes/square/src/EmittersSquareShape.ts +++ b/plugins/emittersShapes/square/src/EmittersSquareShape.ts @@ -11,8 +11,8 @@ enum Sides { } /** - * @param position - - * @param offset - + * @param position - The position + * @param offset - The offset * @returns the offset */ function randomSquareCoordinate(position: number, offset: number): number { @@ -20,7 +20,7 @@ function randomSquareCoordinate(position: number, offset: number): number { } /** - * @param sides - + * @param sides - The sides * @returns the number of sides */ function getRandomSize(sides: number): Sides { diff --git a/plugins/emittersShapes/square/src/index.lazy.ts b/plugins/emittersShapes/square/src/index.lazy.ts index 346f6f93c7f..87b583c7275 100644 --- a/plugins/emittersShapes/square/src/index.lazy.ts +++ b/plugins/emittersShapes/square/src/index.lazy.ts @@ -4,7 +4,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeSquare(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/emittersShapes/square/src/index.ts b/plugins/emittersShapes/square/src/index.ts index e63ac81d98b..9fc3a843979 100644 --- a/plugins/emittersShapes/square/src/index.ts +++ b/plugins/emittersShapes/square/src/index.ts @@ -5,7 +5,7 @@ import type { Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmittersShapeSquare(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/image/CHANGELOG.md b/plugins/exports/image/CHANGELOG.md index 428dd853680..cc0628150d8 100644 --- a/plugins/exports/image/CHANGELOG.md +++ b/plugins/exports/image/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-export-image diff --git a/plugins/exports/image/package.dist.json b/plugins/exports/image/package.dist.json index d8f5d91f54f..3e620610418 100644 --- a/plugins/exports/image/package.dist.json +++ b/plugins/exports/image/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-image", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export image plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/exports/image/package.json b/plugins/exports/image/package.json index 0fd028bb326..523e74c512a 100644 --- a/plugins/exports/image/package.json +++ b/plugins/exports/image/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-image", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export image plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/exports/image/src/ExportImagePlugin.ts b/plugins/exports/image/src/ExportImagePlugin.ts index 0f604353862..f72cef9798f 100644 --- a/plugins/exports/image/src/ExportImagePlugin.ts +++ b/plugins/exports/image/src/ExportImagePlugin.ts @@ -15,7 +15,10 @@ export class ExportImagePlugin implements IPlugin { // do nothing } - /** Checks if the plugin is needed */ + /** + * Checks if the plugin is needed + * @returns The boolean value + */ needsPlugin(): boolean { return true; } diff --git a/plugins/exports/image/src/ExportImagePluginInstance.ts b/plugins/exports/image/src/ExportImagePluginInstance.ts index 0c9079d6124..a0b524ab5b2 100644 --- a/plugins/exports/image/src/ExportImagePluginInstance.ts +++ b/plugins/exports/image/src/ExportImagePluginInstance.ts @@ -25,7 +25,7 @@ export class ExportImagePluginInstance implements IContainerPlugin { return res; } - readonly #exportImage: (data: IExportImageData) => Promise = async data => { + async #exportImage(data: IExportImageData): Promise { const element = this.#container.canvas.domElement; if (!element) { @@ -47,5 +47,5 @@ export class ExportImagePluginInstance implements IContainerPlugin { data.quality, ); }); - }; + } } diff --git a/plugins/exports/image/src/index.lazy.ts b/plugins/exports/image/src/index.lazy.ts index c983e9b75dc..c8656345b9e 100644 --- a/plugins/exports/image/src/index.lazy.ts +++ b/plugins/exports/image/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExportImagePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/image/src/index.ts b/plugins/exports/image/src/index.ts index ddba3dfd09f..44ae4d3be4e 100644 --- a/plugins/exports/image/src/index.ts +++ b/plugins/exports/image/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the image export plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadExportImagePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/json/CHANGELOG.md b/plugins/exports/json/CHANGELOG.md index 33433af8914..5d2efb10652 100644 --- a/plugins/exports/json/CHANGELOG.md +++ b/plugins/exports/json/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-export-json diff --git a/plugins/exports/json/package.dist.json b/plugins/exports/json/package.dist.json index cbc977dbd1b..6160a3d8f5a 100644 --- a/plugins/exports/json/package.dist.json +++ b/plugins/exports/json/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-json", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export json plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/exports/json/package.json b/plugins/exports/json/package.json index ec24414b271..c47356208a7 100644 --- a/plugins/exports/json/package.json +++ b/plugins/exports/json/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-json", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export json plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/exports/json/src/ExportJSONPlugin.ts b/plugins/exports/json/src/ExportJSONPlugin.ts index 8413cb28f4e..3471e2cbe0d 100644 --- a/plugins/exports/json/src/ExportJSONPlugin.ts +++ b/plugins/exports/json/src/ExportJSONPlugin.ts @@ -15,7 +15,10 @@ export class ExportJSONPlugin implements IPlugin { // do nothing } - /** Checks if the plugin is needed */ + /** + * Checks if the plugin is needed + * @returns The boolean value + */ needsPlugin(): boolean { return true; } diff --git a/plugins/exports/json/src/index.lazy.ts b/plugins/exports/json/src/index.lazy.ts index 0fc8ab9e063..b070436b0dc 100644 --- a/plugins/exports/json/src/index.lazy.ts +++ b/plugins/exports/json/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExportJSONPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/json/src/index.ts b/plugins/exports/json/src/index.ts index 5dc2c405dfa..c54a51fdda4 100644 --- a/plugins/exports/json/src/index.ts +++ b/plugins/exports/json/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the JSON export plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadExportJSONPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/video/CHANGELOG.md b/plugins/exports/video/CHANGELOG.md index e62dcd89cc3..f4ea2e47e96 100644 --- a/plugins/exports/video/CHANGELOG.md +++ b/plugins/exports/video/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-export-video diff --git a/plugins/exports/video/package.dist.json b/plugins/exports/video/package.dist.json index 1447833130e..5d081245e2b 100644 --- a/plugins/exports/video/package.dist.json +++ b/plugins/exports/video/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-video", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export video plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/exports/video/package.json b/plugins/exports/video/package.json index 032fc1956b9..460c53b0f6c 100644 --- a/plugins/exports/video/package.json +++ b/plugins/exports/video/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-export-video", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles export video plugin", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/exports/video/src/ExportVideoPlugin.ts b/plugins/exports/video/src/ExportVideoPlugin.ts index 81c5fcbd85c..898c641fab7 100644 --- a/plugins/exports/video/src/ExportVideoPlugin.ts +++ b/plugins/exports/video/src/ExportVideoPlugin.ts @@ -15,7 +15,10 @@ export class ExportVideoPlugin implements IPlugin { // do nothing } - /** Checks if the plugin is needed */ + /** + * Checks if the plugin is needed + * @returns The boolean value + */ needsPlugin(): boolean { return true; } diff --git a/plugins/exports/video/src/ExportVideoPluginInstance.ts b/plugins/exports/video/src/ExportVideoPluginInstance.ts index 5334e357bf2..3134c9c7a88 100644 --- a/plugins/exports/video/src/ExportVideoPluginInstance.ts +++ b/plugins/exports/video/src/ExportVideoPluginInstance.ts @@ -79,7 +79,7 @@ export class ExportVideoPluginInstance implements IContainerPlugin { return res; } - readonly #exportVideo: (data: IExportVideoData) => Promise = async data => { + async #exportVideo(data: IExportVideoData): Promise { const element = this.#container.canvas.domElement; if (!element) { @@ -113,5 +113,5 @@ export class ExportVideoPluginInstance implements IContainerPlugin { data.duration ?? defaultDuration * millisecondsToSeconds, ); }); - }; + } } diff --git a/plugins/exports/video/src/index.lazy.ts b/plugins/exports/video/src/index.lazy.ts index d9420ea7b24..2084b0b407c 100644 --- a/plugins/exports/video/src/index.lazy.ts +++ b/plugins/exports/video/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadExportVideoPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/exports/video/src/index.ts b/plugins/exports/video/src/index.ts index 4149980edb2..d433384d2ac 100644 --- a/plugins/exports/video/src/index.ts +++ b/plugins/exports/video/src/index.ts @@ -5,7 +5,7 @@ declare const __VERSION__: string; /** * Loads the video export plugin for tsParticles - * @param engine + * @param engine - The engine to load the shape in */ export async function loadExportVideoPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/infection/CHANGELOG.md b/plugins/infection/CHANGELOG.md index 4a9d384c7ba..2407959bb1c 100644 --- a/plugins/infection/CHANGELOG.md +++ b/plugins/infection/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-infection diff --git a/plugins/infection/package.dist.json b/plugins/infection/package.dist.json index 6a2e918f30b..4ed03bf802a 100644 --- a/plugins/infection/package.dist.json +++ b/plugins/infection/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-infection", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles infection plugin", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/infection/package.json b/plugins/infection/package.json index b8a2ca191e5..9ee61a75552 100644 --- a/plugins/infection/package.json +++ b/plugins/infection/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-infection", - "version": "4.1.3", - "description": "tsParticles infection plugin", + "version": "4.2.0", + "description": "tsParticles plugin for infecting particles with color or state changes when they touch each other", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "infection" ], "author": "Matteo Bruni ", "license": "MIT", @@ -117,7 +83,7 @@ "@tsparticles/plugin-interactivity": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-interactivity": "workspace:*" }, diff --git a/plugins/infection/src/Infecter.ts b/plugins/infection/src/Infecter.ts index 32fae78fc11..91797d946b6 100644 --- a/plugins/infection/src/Infecter.ts +++ b/plugins/infection/src/Infecter.ts @@ -100,7 +100,7 @@ export class Infecter { infection.time = 0; } - readonly #nextInfectionStage: (particle: InfectableParticle) => void = particle => { + #nextInfectionStage(particle: InfectableParticle): void { const infectionOptions = this.#container.actualOptions.infection, { infection } = particle; @@ -125,5 +125,5 @@ export class Infecter { infection.time = 0; } } - }; + } } diff --git a/plugins/infection/src/InfectionPluginInstance.ts b/plugins/infection/src/InfectionPluginInstance.ts index 2a8f284f9f3..6475ed97a9f 100644 --- a/plugins/infection/src/InfectionPluginInstance.ts +++ b/plugins/infection/src/InfectionPluginInstance.ts @@ -17,7 +17,6 @@ export class InfectionPluginInstance implements IContainerPlugin { this.#container.infecter = new Infecter(this.#container); } - /** @inheritDoc */ particleFillColor(particle: InfectableParticle): string | IOptionsColor | undefined { const options = this.#container.actualOptions; @@ -32,12 +31,10 @@ export class InfectionPluginInstance implements IContainerPlugin { return infectionStage === undefined ? undefined : infectionStages[infectionStage]?.color; } - /** @inheritDoc */ particleStrokeColor(particle: Particle): string | IOptionsColor | undefined { return this.particleFillColor(particle); } - /** @inheritDoc */ particlesSetup(): void { const options = this.#container.actualOptions; diff --git a/plugins/infection/src/Options/Classes/Infection.ts b/plugins/infection/src/Options/Classes/Infection.ts index 1683b0ec1fa..9cb46eaaf2a 100644 --- a/plugins/infection/src/Options/Classes/Infection.ts +++ b/plugins/infection/src/Options/Classes/Infection.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IInfection } from "../Interfaces/IInfection.js"; import { InfectionStage } from "./InfectionStage.js"; @@ -30,21 +30,10 @@ export class Infection implements IInfection, IOptionLoader { return; } - if (data.cure !== undefined) { - this.cure = data.cure; - } - - if (data.delay !== undefined) { - this.delay = data.delay; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.infections !== undefined) { - this.infections = data.infections; - } + loadProperty(this, "cure", data.cure); + loadProperty(this, "delay", data.delay); + loadProperty(this, "enable", data.enable); + loadProperty(this, "infections", data.infections); if (data.stages === undefined) { return; diff --git a/plugins/infection/src/Options/Classes/InfectionStage.ts b/plugins/infection/src/Options/Classes/InfectionStage.ts index 3162f2c52f8..1277b30d827 100644 --- a/plugins/infection/src/Options/Classes/InfectionStage.ts +++ b/plugins/infection/src/Options/Classes/InfectionStage.ts @@ -1,24 +1,21 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IInfectionStage } from "../Interfaces/IInfectionStage.js"; /** Infection stage options */ export class InfectionStage implements IInfectionStage, IOptionLoader { /** Infection stage particle color */ - color; + color = new OptionsColor(); /** Infection stage duration, after this time has passed it will go to the next stage */ duration?: number; /** The infected stage set to the infected particles by the current stage */ infectedStage?: number; /** Infection stage contagious area radius, if 0 only particles touching would be affected */ - radius; + radius = 0; /** Infection rate, the higher it is, the more particles will be infected */ - rate; + rate = 1; constructor() { - this.color = new OptionsColor(); this.color.value = "#ff0000"; - this.radius = 0; - this.rate = 1; } load(data?: RecursivePartial): void { @@ -33,12 +30,7 @@ export class InfectionStage implements IInfectionStage, IOptionLoader { engine.checkVersion(__VERSION__); diff --git a/plugins/infection/src/index.ts b/plugins/infection/src/index.ts index 0f846640a46..07b75fd73d6 100644 --- a/plugins/infection/src/index.ts +++ b/plugins/infection/src/index.ts @@ -7,7 +7,7 @@ import { ParticlesInfecter } from "./ParticlesInfecter.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadInfectionPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/interactivity/CHANGELOG.md b/plugins/interactivity/CHANGELOG.md index 43233b22631..afd38cf3b02 100644 --- a/plugins/interactivity/CHANGELOG.md +++ b/plugins/interactivity/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-interactivity diff --git a/plugins/interactivity/package.dist.json b/plugins/interactivity/package.dist.json index b30f494b223..46aa4a7da06 100644 --- a/plugins/interactivity/package.dist.json +++ b/plugins/interactivity/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-interactivity", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles interactivity sickness plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/interactivity/package.json b/plugins/interactivity/package.json index 4ce10f96052..8e0a6dc6ea5 100644 --- a/plugins/interactivity/package.json +++ b/plugins/interactivity/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-interactivity", - "version": "4.1.3", - "description": "tsParticles interactivity sickness plugin", + "version": "4.2.0", + "description": "tsParticles plugin for creating custom interaction behaviors beyond built-in interactions", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "interactivity" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/interactivity/src/InteractionManager.ts b/plugins/interactivity/src/InteractionManager.ts index 4b13fe6b132..a591228c85c 100644 --- a/plugins/interactivity/src/InteractionManager.ts +++ b/plugins/interactivity/src/InteractionManager.ts @@ -1,10 +1,4 @@ -import { - type Container, - type ICoordinates, - type IDelta, - type Particle, - safeIntersectionObserver, -} from "@tsparticles/engine"; +import { type Container, type ICoordinates, type IDelta, type Particle } from "@tsparticles/engine"; import { clickEvent, touchCancelEvent, @@ -17,7 +11,7 @@ import type { IInteractivityData } from "./Interfaces/IInteractivityData.js"; import type { IInteractor } from "./Interfaces/IInteractor.js"; import type { IParticlesInteractor } from "./Interfaces/IParticlesInteractor.js"; import { InteractivityEventListeners } from "./InteractivityEventListeners.js"; -import type { InteractivityPluginManager } from "./types.js"; +import type { InteractivityPluginManager } from "./InteractivityPluginManagerTypes.js"; import { InteractorType } from "./Enums/InteractorType.js"; const clickRadius = 1, @@ -27,6 +21,21 @@ const clickRadius = 1, /** Container click handler type */ type ContainerClickHandler = (evt: Event) => void; +/** + * Safely creates an IntersectionObserver if supported + * @param callback - the observer callback + * @returns the intersection observer, if supported + */ +function safeIntersectionObserver( + callback: (records: IntersectionObserverEntry[]) => void, +): IntersectionObserver | undefined { + if (typeof IntersectionObserver === "undefined") { + return; + } + + return new IntersectionObserver(callback); +} + export class InteractionManager { /** The current interactivity state data */ interactivityData: IInteractivityData; @@ -362,7 +371,7 @@ export class InteractionManager { container.particles.grid.setCellSize(maxTotalDistance * container.retina.pixelRatio); } - readonly #intersectionManager: (entries: IntersectionObserverEntry[]) => void = entries => { + #intersectionManager(entries: IntersectionObserverEntry[]): void { const container = this.#container; if (container.destroyed || !container.actualOptions.pauseOnOutsideViewport) { @@ -380,5 +389,5 @@ export class InteractionManager { container.pause(); } } - }; + } } diff --git a/plugins/interactivity/src/InteractivityEventListeners.ts b/plugins/interactivity/src/InteractivityEventListeners.ts index 04a94af3117..f44b82716f7 100644 --- a/plugins/interactivity/src/InteractivityEventListeners.ts +++ b/plugins/interactivity/src/InteractivityEventListeners.ts @@ -18,12 +18,17 @@ import { touchMoveEvent, touchStartEvent, } from "./InteractivityConstants.js"; -import type { InteractionManager } from "./InteractionManager.js"; +import type { IInteractivityData } from "./Interfaces/IInteractivityData.js"; import type { InteractivityContainer } from "./types.js"; import { InteractivityDetect } from "./Enums/InteractivityDetect.js"; const touchDelay = 500; +interface IInteractionManager { + handleClickMode: (mode: string) => void; + interactivityData: IInteractivityData; +} + interface InteractivityEventListenersHandlers { readonly mouseDown: EventListenerOrEventListenerObject; readonly mouseLeave: EventListenerOrEventListenerObject; @@ -45,7 +50,7 @@ export class InteractivityEventListeners { readonly #clickPositionPlugins: IContainerPlugin[]; readonly #container; readonly #handlers: InteractivityEventListenersHandlers; - readonly #interactionManager: InteractionManager; + readonly #interactionManager: IInteractionManager; readonly #touches: Map; /** @@ -53,7 +58,7 @@ export class InteractivityEventListeners { * @param container - the calling container * @param interactionManager - the interaction manager instance */ - constructor(container: InteractivityContainer, interactionManager: InteractionManager) { + constructor(container: InteractivityContainer, interactionManager: IInteractionManager) { this.#container = container; this.#clickPositionPlugins = []; this.#interactionManager = interactionManager; @@ -118,7 +123,7 @@ export class InteractivityEventListeners { * Mouse/Touch click/tap event implementation * @param e - the click event arguments */ - readonly #doMouseTouchClick: (e: Event) => void = e => { + #doMouseTouchClick(e: Event): void { const container = this.#container, interactionManager = this.#interactionManager, options = container.actualOptions; @@ -150,17 +155,17 @@ export class InteractivityEventListeners { this.#mouseTouchFinish(); }, touchDelay); } - }; + } /** * Handles blur event * @internal */ - readonly #handleVisibilityChange: () => void = () => { + #handleVisibilityChange(): void { this.#mouseTouchFinish(); - }; + } - readonly #manageInteractivityListeners: (add: boolean) => void = add => { + #manageInteractivityListeners(add: boolean): void { const handlers = this.#handlers, container = this.#container, interactionManager = this.#interactionManager, @@ -203,13 +208,13 @@ export class InteractivityEventListeners { manageListener(interactivityEl, mouseLeaveEvent, handlers.mouseLeave, add); manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add); - }; + } /** * Initializing event listeners - * @param add - + * @param add - The add */ - readonly #manageListeners: (add: boolean) => void = add => { + #manageListeners(add: boolean): void { const handlers = this.#handlers, container = this.#container, interactionManager = this.#interactionManager, @@ -229,25 +234,25 @@ export class InteractivityEventListeners { this.#manageInteractivityListeners(add); manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false); - }; + } /** * Handle mouse down event * @internal */ - readonly #mouseDown: () => void = () => { + #mouseDown(): void { const { interactivityData } = this.#interactionManager, { mouse } = interactivityData; mouse.clicking = true; mouse.downPosition = mouse.position; - }; + } /** * Mouse/Touch click/tap event * @param e - the click event arguments */ - readonly #mouseTouchClick: (e: Event) => void = e => { + #mouseTouchClick(e: Event): void { const container = this.#container, interactionManager = this.#interactionManager, options = container.actualOptions, @@ -276,12 +281,12 @@ export class InteractivityEventListeners { } mouse.clicking = false; - }; + } /** * Mouse/Touch event finish */ - readonly #mouseTouchFinish: () => void = () => { + #mouseTouchFinish(): void { const { interactivityData } = this.#interactionManager, { mouse } = interactivityData; @@ -293,13 +298,13 @@ export class InteractivityEventListeners { mouse.inside = false; mouse.clicking = false; - }; + } /** * Mouse/Touch move event * @param e - the event arguments */ - readonly #mouseTouchMove: (e: Event) => void = e => { + #mouseTouchMove(e: Event): void { const container = this.#container, interactionManager = this.#interactionManager, options = container.actualOptions, @@ -381,9 +386,9 @@ export class InteractivityEventListeners { interactivity.mouse.position = pos; interactivity.status = mouseMoveEvent; - }; + } - readonly #touchEnd: (e: Event) => void = e => { + #touchEnd(e: Event): void { const evt = e as TouchEvent, touches = Array.from(evt.changedTouches); @@ -392,9 +397,9 @@ export class InteractivityEventListeners { } this.#mouseTouchFinish(); - }; + } - readonly #touchEndClick: (e: Event) => void = e => { + #touchEndClick(e: Event): void { const evt = e as TouchEvent, touches = Array.from(evt.changedTouches); @@ -403,9 +408,9 @@ export class InteractivityEventListeners { } this.#mouseTouchClick(e); - }; + } - readonly #touchStart: (e: Event) => void = e => { + #touchStart(e: Event): void { const evt = e as TouchEvent, touches = Array.from(evt.changedTouches); @@ -414,5 +419,5 @@ export class InteractivityEventListeners { } this.#mouseTouchMove(e); - }; + } } diff --git a/plugins/interactivity/src/InteractivityPluginInstance.ts b/plugins/interactivity/src/InteractivityPluginInstance.ts index 5141169b7fc..daec9a0ae55 100644 --- a/plugins/interactivity/src/InteractivityPluginInstance.ts +++ b/plugins/interactivity/src/InteractivityPluginInstance.ts @@ -40,14 +40,12 @@ export class InteractivityPluginInstance implements IContainerPlugin { this.interactionManager.clearClickHandlers(); } - /** @inheritDoc */ destroy(): void { this.clearClickHandlers(); this.#pluginManager.interactors?.delete(this.#container); } - /** @inheritDoc */ particleCreated(particle: Particle): void { const interactivityParticle = particle as InteractivityParticle, interactivity = new Interactivity(this.#pluginManager, this.#container); @@ -58,35 +56,29 @@ export class InteractivityPluginInstance implements IContainerPlugin { interactivityParticle.interactivity = interactivity; } - /** @inheritDoc */ particleReset(particle: Particle): void { this.interactionManager.reset(particle); } - /** @inheritDoc */ postParticleUpdate(particle: Particle, delta: IDelta): void { this.interactionManager.particlesInteract(particle, delta); } - /** @inheritDoc */ postUpdate(delta: IDelta): void { this.interactionManager.externalInteract(delta); this.interactionManager.updateMaxDistance(); } - /** @inheritDoc */ async preInit(): Promise { await this.interactionManager.initInteractors(); this.interactionManager.init(); } - /** @inheritDoc */ async redrawInit(): Promise { await this.interactionManager.initInteractors(); this.interactionManager.init(); } - /** @inheritDoc */ start(): Promise { this.interactionManager.addListeners(); this.interactionManager.startObserving(); @@ -94,7 +86,6 @@ export class InteractivityPluginInstance implements IContainerPlugin { return Promise.resolve(); } - /** @inheritDoc */ stop(): void { this.interactionManager.removeListeners(); this.interactionManager.stopObserving(); diff --git a/plugins/interactivity/src/InteractivityPluginManagerTypes.ts b/plugins/interactivity/src/InteractivityPluginManagerTypes.ts new file mode 100644 index 00000000000..26a8474c9b2 --- /dev/null +++ b/plugins/interactivity/src/InteractivityPluginManagerTypes.ts @@ -0,0 +1,18 @@ +import type { Container, Engine, GenericInitializer, Particle, PluginManager } from "@tsparticles/engine"; +import type { IInteractor } from "./Interfaces/IInteractor.js"; + +export type InteractorInitializer = GenericInitializer; + +export type InteractivityPluginManager = PluginManager & { + addInteractor?: (name: string, interactorInitializer: InteractorInitializer) => void; + getInteractors?: (container: Container, force?: boolean) => Promise; + initializers: { + interactors?: Map; + }; + interactors?: Map; + setOnClickHandler?: (callback: (e: Event, particles?: Particle[]) => void) => void; +}; + +export type InteractivityEngine = Engine & { + pluginManager: InteractivityPluginManager; +}; diff --git a/plugins/interactivity/src/Interfaces/IExternalInteractor.ts b/plugins/interactivity/src/Interfaces/IExternalInteractor.ts index 32654f4e9fc..08fdf3ea7aa 100644 --- a/plugins/interactivity/src/Interfaces/IExternalInteractor.ts +++ b/plugins/interactivity/src/Interfaces/IExternalInteractor.ts @@ -1,8 +1,7 @@ -import type { IDelta, Particle, RecursivePartial } from "@tsparticles/engine"; +import type { IDelta, IOptionLoader, Particle, RecursivePartial } from "@tsparticles/engine"; import type { IInteractivityData } from "./IInteractivityData.js"; import type { IModes } from "../Options/Interfaces/Modes/IModes.js"; import type { IParticleInteractorBase } from "./IParticleInteractorBase.js"; -import type { Modes } from "../Options/Classes/Modes/Modes.js"; /** External interactor interface @@ -10,7 +9,10 @@ import type { Modes } from "../Options/Classes/Modes/Modes.js"; export interface IExternalInteractor extends IParticleInteractorBase { handleClickMode?: (mode: string, interactivityData: IInteractivityData) => void; - loadModeOptions?: (options: Modes, ...sources: RecursivePartial[]) => void; + loadModeOptions?: ( + options: IModes & IOptionLoader, + ...sources: RecursivePartial[] + ) => void; interact(interactivityData: IInteractivityData, delta: IDelta): void; diff --git a/plugins/interactivity/src/Interfaces/IParticleInteractorBase.ts b/plugins/interactivity/src/Interfaces/IParticleInteractorBase.ts index cda6fec451d..1c5db5bcfc2 100644 --- a/plugins/interactivity/src/Interfaces/IParticleInteractorBase.ts +++ b/plugins/interactivity/src/Interfaces/IParticleInteractorBase.ts @@ -1,8 +1,16 @@ -import type { IDelta, Particle, RecursivePartial } from "@tsparticles/engine"; -import type { IInteractivityParticlesOptions, InteractivityParticlesOptions } from "../types.js"; +import type { IDelta, IParticlesOptions, Particle, ParticlesOptions, RecursivePartial } from "@tsparticles/engine"; +import type { IInteractivity } from "../Options/Interfaces/IInteractivity.js"; import type { IInteractivityData } from "./IInteractivityData.js"; import type { IInteractor } from "./IInteractor.js"; +type IInteractivityParticlesOptions = IParticlesOptions & { + interactivity?: RecursivePartial; +}; + +type InteractivityParticlesOptions = RecursivePartial & { + interactivity?: RecursivePartial; +}; + /** Particle interactor base interface */ export interface IParticleInteractorBase extends IInteractor { /** Loads particles options from source options */ diff --git a/plugins/interactivity/src/Options/Classes/Events/ClickEvent.ts b/plugins/interactivity/src/Options/Classes/Events/ClickEvent.ts index 8c2ab2d9c52..6c2a6c38f41 100644 --- a/plugins/interactivity/src/Options/Classes/Events/ClickEvent.ts +++ b/plugins/interactivity/src/Options/Classes/Events/ClickEvent.ts @@ -1,4 +1,10 @@ -import { type IOptionLoader, type RecursivePartial, type SingleOrMultiple, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + type SingleOrMultiple, + isNull, + loadProperty, +} from "@tsparticles/engine"; import type { IClickEvent } from "../../Interfaces/Events/IClickEvent.js"; /** @@ -8,29 +14,18 @@ export class ClickEvent implements IClickEvent, IOptionLoader { /** * The click event handler enabling setting */ - enable; - + enable = false; /** * Click modes used by the event */ - mode: SingleOrMultiple; - - constructor() { - this.enable = false; - this.mode = []; - } + mode: SingleOrMultiple = []; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "mode", data.mode); } } diff --git a/plugins/interactivity/src/Options/Classes/Events/DivEvent.ts b/plugins/interactivity/src/Options/Classes/Events/DivEvent.ts index f7205deb049..0fad47cf118 100644 --- a/plugins/interactivity/src/Options/Classes/Events/DivEvent.ts +++ b/plugins/interactivity/src/Options/Classes/Events/DivEvent.ts @@ -1,4 +1,10 @@ -import { type IOptionLoader, type RecursivePartial, type SingleOrMultiple, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + type SingleOrMultiple, + isNull, + loadProperty, +} from "@tsparticles/engine"; import { DivType } from "../../../Enums/DivType.js"; import type { IDivEvent } from "../../Interfaces/Events/IDivEvent.js"; @@ -9,43 +15,22 @@ export class DivEvent implements IDivEvent, IOptionLoader { /** * The div event handler enabling mode */ - enable; - + enable = false; /** * Div mode values used by the event */ - mode: SingleOrMultiple; - - selectors: SingleOrMultiple; - - type: DivType | keyof typeof DivType; - - constructor() { - this.selectors = []; - this.enable = false; - this.mode = []; - this.type = DivType.circle; - } + mode: SingleOrMultiple = []; + selectors: SingleOrMultiple = []; + type: DivType | keyof typeof DivType = DivType.circle; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.selectors !== undefined) { - this.selectors = data.selectors; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "selectors", data.selectors); + loadProperty(this, "enable", data.enable); + loadProperty(this, "mode", data.mode); + loadProperty(this, "type", data.type); } } diff --git a/plugins/interactivity/src/Options/Classes/Events/Events.ts b/plugins/interactivity/src/Options/Classes/Events/Events.ts index acd3beab481..72c1a36c611 100644 --- a/plugins/interactivity/src/Options/Classes/Events/Events.ts +++ b/plugins/interactivity/src/Options/Classes/Events/Events.ts @@ -14,15 +14,9 @@ import type { IEvents } from "../../Interfaces/Events/IEvents.js"; * [[include:Options/Interactivity/Events.md]] */ export class Events implements IEvents, IOptionLoader { - readonly onClick; - onDiv: SingleOrMultiple; - readonly onHover; - - constructor() { - this.onClick = new ClickEvent(); - this.onDiv = new DivEvent(); - this.onHover = new HoverEvent(); - } + readonly onClick = new ClickEvent(); + onDiv: SingleOrMultiple = new DivEvent(); + readonly onHover = new HoverEvent(); load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/interactivity/src/Options/Classes/Events/HoverEvent.ts b/plugins/interactivity/src/Options/Classes/Events/HoverEvent.ts index 71082c0038f..f47b44bfdd3 100644 --- a/plugins/interactivity/src/Options/Classes/Events/HoverEvent.ts +++ b/plugins/interactivity/src/Options/Classes/Events/HoverEvent.ts @@ -1,29 +1,25 @@ -import { type IOptionLoader, type RecursivePartial, type SingleOrMultiple, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + type SingleOrMultiple, + isNull, + loadProperty, +} from "@tsparticles/engine"; import type { IHoverEvent } from "../../Interfaces/Events/IHoverEvent.js"; /** * [[include:Options/Interactivity/Hover.md]] */ export class HoverEvent implements IHoverEvent, IOptionLoader { - enable; - mode: SingleOrMultiple; - - constructor() { - this.enable = false; - this.mode = []; - } + enable = false; + mode: SingleOrMultiple = []; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "mode", data.mode); } } diff --git a/plugins/interactivity/src/Options/Classes/Interactivity.ts b/plugins/interactivity/src/Options/Classes/Interactivity.ts index a50de567dc3..f04b8dac4e0 100644 --- a/plugins/interactivity/src/Options/Classes/Interactivity.ts +++ b/plugins/interactivity/src/Options/Classes/Interactivity.ts @@ -2,7 +2,7 @@ import { type Container, type IOptionLoader, type RecursivePartial, isNull } fro import { Events } from "./Events/Events.js"; import type { IInteractivity } from "../Interfaces/IInteractivity.js"; import { InteractivityDetect } from "../../Enums/InteractivityDetect.js"; -import type { InteractivityPluginManager } from "../../types.js"; +import type { InteractivityPluginManager } from "../../InteractivityPluginManagerTypes.js"; import { Modes } from "./Modes/Modes.js"; /** @@ -11,14 +11,12 @@ import { Modes } from "./Modes/Modes.js"; export class Interactivity implements IInteractivity, IOptionLoader { [name: string]: unknown; - detectsOn: InteractivityDetect | keyof typeof InteractivityDetect; + detectsOn: InteractivityDetect | keyof typeof InteractivityDetect = InteractivityDetect.window; - readonly events; + readonly events = new Events(); readonly modes; constructor(pluginManager: InteractivityPluginManager, container?: Container) { - this.detectsOn = InteractivityDetect.window; - this.events = new Events(); this.modes = new Modes(pluginManager, container); } diff --git a/plugins/interactivity/src/Options/Classes/Modes/Modes.ts b/plugins/interactivity/src/Options/Classes/Modes/Modes.ts index 6ccdfa19569..75af45de58a 100644 --- a/plugins/interactivity/src/Options/Classes/Modes/Modes.ts +++ b/plugins/interactivity/src/Options/Classes/Modes/Modes.ts @@ -1,7 +1,7 @@ import { type Container, type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; import type { IExternalInteractor } from "../../../Interfaces/IExternalInteractor.js"; import type { IModes } from "../../Interfaces/Modes/IModes.js"; -import type { InteractivityPluginManager } from "../../../types.js"; +import type { InteractivityPluginManager } from "../../../InteractivityPluginManagerTypes.js"; /** * [[include:Options/Interactivity/Modes.md]] diff --git a/plugins/interactivity/src/index.lazy.ts b/plugins/interactivity/src/index.lazy.ts index ccf87357552..b3a2b342ab2 100644 --- a/plugins/interactivity/src/index.lazy.ts +++ b/plugins/interactivity/src/index.lazy.ts @@ -70,7 +70,7 @@ export async function loadInteractivityPlugin(engine: Engine): Promise { } /** - * @param e - + * @param e - The event object */ export function ensureInteractivityPluginLoaded(e: InteractivityEngine): void { if (!e.pluginManager.addInteractor) { diff --git a/plugins/interactivity/src/index.ts b/plugins/interactivity/src/index.ts index 3bf2f5fd61c..e9e63a76dce 100644 --- a/plugins/interactivity/src/index.ts +++ b/plugins/interactivity/src/index.ts @@ -70,7 +70,7 @@ export async function loadInteractivityPlugin(engine: Engine): Promise { } /** - * @param e - + * @param e - The event object */ export function ensureInteractivityPluginLoaded(e: InteractivityEngine): void { if (!e.pluginManager.addInteractor) { diff --git a/plugins/interactivity/src/types.ts b/plugins/interactivity/src/types.ts index 0978e5d9a89..3811664a8aa 100644 --- a/plugins/interactivity/src/types.ts +++ b/plugins/interactivity/src/types.ts @@ -1,17 +1,13 @@ import type { Container, - Engine, - GenericInitializer, IOptions, IParticlesOptions, Options, Particle, ParticlesOptions, - PluginManager, RecursivePartial, } from "@tsparticles/engine"; import type { IInteractivity } from "./Options/Interfaces/IInteractivity.js"; -import type { IInteractor } from "./Interfaces/IInteractor.js"; import type { Interactivity } from "./Options/Classes/Interactivity.js"; /** Interactivity plugin options interface */ @@ -54,34 +50,8 @@ export type InteractivityParticlesOptions = RecursivePartial & interactivity?: RecursivePartial; }; -/** - * Alias for interactivity manager initializer function - */ -export type InteractorInitializer = GenericInitializer; - -/** Interactivity plugin manager */ -export type InteractivityPluginManager = PluginManager & { - /** Adds an interactor by name */ - addInteractor?: (name: string, interactorInitializer: InteractorInitializer) => void; - - /** Gets all interactors for the container */ - getInteractors?: (container: Container, force?: boolean) => Promise; - - /** The interactor initializers */ - initializers: { - /** Map of interactor initializers */ - interactors?: Map; - }; - - /** Map of containers to their interactors */ - interactors?: Map; - - /** Sets a click handler for interactivity */ - setOnClickHandler?: (callback: (e: Event, particles?: Particle[]) => void) => void; -}; - -/** Engine with interactivity plugin manager */ -export type InteractivityEngine = Engine & { - /** The interactivity plugin manager */ - pluginManager: InteractivityPluginManager; -}; +export type { + InteractorInitializer, + InteractivityEngine, + InteractivityPluginManager, +} from "./InteractivityPluginManagerTypes.js"; diff --git a/plugins/interactivity/src/utils.ts b/plugins/interactivity/src/utils.ts index 589b487db86..38f328fce91 100644 --- a/plugins/interactivity/src/utils.ts +++ b/plugins/interactivity/src/utils.ts @@ -1,13 +1,25 @@ -import { - type SingleOrMultiple, - executeOnSingleOrMultiple, - findItemFromSingleOrMultiple, - isArray, - isInArray, -} from "@tsparticles/engine"; +import { type SingleOrMultiple, executeOnSingleOrMultiple, isArray, isInArray } from "@tsparticles/engine"; import type { DivEvent } from "./Options/Classes/Events/DivEvent.js"; import type { IModeDiv } from "./Options/Interfaces/Modes/IModeDiv.js"; +/** + * @param obj - The object + * @param callback - The callback + * @returns the item found, if present + */ +function findItemFromSingleOrMultiple( + obj: SingleOrMultiple, + callback: (obj: T, index: number) => boolean, +): T | undefined { + if (isArray(obj)) { + return obj.find((t, index) => callback(t, index)); + } + + const defaultIndex = 0; + + return callback(obj, defaultIndex) ? obj : undefined; +} + /** * Checks if the given selectors matches the element * @param element - element to check diff --git a/plugins/manualParticles/CHANGELOG.md b/plugins/manualParticles/CHANGELOG.md index 22b77d6676c..e59747d6bc8 100644 --- a/plugins/manualParticles/CHANGELOG.md +++ b/plugins/manualParticles/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/plugin-manual-particles + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-manual-particles diff --git a/plugins/manualParticles/package.dist.json b/plugins/manualParticles/package.dist.json index 3212693b7b5..58d5eea796f 100644 --- a/plugins/manualParticles/package.dist.json +++ b/plugins/manualParticles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-manual-particles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles manual particles plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/manualParticles/package.json b/plugins/manualParticles/package.json index 9fb156243f7..80cee731330 100644 --- a/plugins/manualParticles/package.json +++ b/plugins/manualParticles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-manual-particles", - "version": "4.1.3", - "description": "tsParticles manual particles plugin", + "version": "4.2.0", + "description": "tsParticles plugin for placing particles at specific manual coordinates on the canvas", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "manual-particles" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/motion/CHANGELOG.md b/plugins/motion/CHANGELOG.md index 3b39332f8cb..05b66093d4e 100644 --- a/plugins/motion/CHANGELOG.md +++ b/plugins/motion/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-motion diff --git a/plugins/motion/package.dist.json b/plugins/motion/package.dist.json index f5e981a96ea..789678bb823 100644 --- a/plugins/motion/package.dist.json +++ b/plugins/motion/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-motion", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles motion sickness plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/motion/package.json b/plugins/motion/package.json index 764c527fad3..92d39a566a9 100644 --- a/plugins/motion/package.json +++ b/plugins/motion/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-motion", - "version": "4.1.3", - "description": "tsParticles motion sickness plugin", + "version": "4.2.0", + "description": "tsParticles plugin for respecting user reduced-motion preferences and browser motion settings", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "motion" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/motion/src/MotionPluginInstance.ts b/plugins/motion/src/MotionPluginInstance.ts index 848b89399d8..36aa1bee657 100644 --- a/plugins/motion/src/MotionPluginInstance.ts +++ b/plugins/motion/src/MotionPluginInstance.ts @@ -18,7 +18,6 @@ export class MotionPluginInstance implements IContainerPlugin { this.#container = container; } - /** @inheritDoc */ async init(): Promise { const container = this.#container, options = container.actualOptions.motion; @@ -58,7 +57,7 @@ export class MotionPluginInstance implements IContainerPlugin { await Promise.resolve(); } - readonly #handleMotionChange: (mediaQuery: MediaQueryList) => void = mediaQuery => { + #handleMotionChange(mediaQuery: MediaQueryList): void { const container = this.#container, motion = container.actualOptions.motion; @@ -75,5 +74,5 @@ export class MotionPluginInstance implements IContainerPlugin { } else { container.retina.reduceFactor = defaultReduce; } - }; + } } diff --git a/plugins/motion/src/Options/Classes/Motion.ts b/plugins/motion/src/Options/Classes/Motion.ts index 7868cb231a2..7df1925a937 100644 --- a/plugins/motion/src/Options/Classes/Motion.ts +++ b/plugins/motion/src/Options/Classes/Motion.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IMotion } from "../Interfaces/IMotion.js"; import { MotionReduce } from "./MotionReduce.js"; @@ -9,27 +9,19 @@ export class Motion implements IMotion, IOptionLoader { /** * Disables motions for users with `prefer-reduced-motion` enabled */ - disable; - + disable = true; /** * Reduce motion settings for users with `prefer-reduced-motion` enabled * If {@link disable} is `true` these values will be ignored */ - reduce; - - constructor() { - this.disable = true; - this.reduce = new MotionReduce(); - } + readonly reduce = new MotionReduce(); load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.disable !== undefined) { - this.disable = data.disable; - } + loadProperty(this, "disable", data.disable); this.reduce.load(data.reduce); } diff --git a/plugins/motion/src/Options/Classes/MotionReduce.ts b/plugins/motion/src/Options/Classes/MotionReduce.ts index adf0506ad3c..84dd1f8646a 100644 --- a/plugins/motion/src/Options/Classes/MotionReduce.ts +++ b/plugins/motion/src/Options/Classes/MotionReduce.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IMotionReduce } from "../Interfaces/IMotionReduce.js"; /** @@ -7,29 +7,18 @@ export class MotionReduce implements IMotionReduce, IOptionLoader /** * Factor used to reduce motion, the higher the value, the higher the motion reduction */ - factor; - + factor = 4; /** * Reduces motion settings for users with `prefer-reduced-motion` enabled */ - value; - - constructor() { - this.factor = 4; - this.value = true; - } + value = true; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.factor !== undefined) { - this.factor = data.factor; - } - - if (data.value !== undefined) { - this.value = data.value; - } + loadProperty(this, "factor", data.factor); + loadProperty(this, "value", data.value); } } diff --git a/plugins/move/CHANGELOG.md b/plugins/move/CHANGELOG.md index f8970e41e33..beac843cf43 100644 --- a/plugins/move/CHANGELOG.md +++ b/plugins/move/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-move diff --git a/plugins/move/package.dist.json b/plugins/move/package.dist.json index 3895d15499f..b7f24e977aa 100644 --- a/plugins/move/package.dist.json +++ b/plugins/move/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-move", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles Move plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/move/package.json b/plugins/move/package.json index a9b3d585b41..b83cd40a769 100644 --- a/plugins/move/package.json +++ b/plugins/move/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-move", - "version": "4.1.3", - "description": "tsParticles Move plugin", + "version": "4.2.0", + "description": "tsParticles plugin for defining custom particle movement behaviors and path generators", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "move" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/move/src/MovePluginInstance.ts b/plugins/move/src/MovePluginInstance.ts index 6c2fb65817b..ff723b2522b 100644 --- a/plugins/move/src/MovePluginInstance.ts +++ b/plugins/move/src/MovePluginInstance.ts @@ -38,21 +38,19 @@ export class MovePluginInstance implements IContainerPlugin { this.pathGenerators = new Map(); } - /** {@inheritDoc IContainerPlugin.destroy} */ destroy(): void { this.availablePathGenerators = new Map(); this.pathGenerators = new Map(); } /** - * @param particle - + * @param particle - The particle to process * @returns check if mover is enabled */ isEnabled(particle: MoveParticle): boolean { return !particle.destroyed && particle.options.move.enable; } - /** @inheritDoc */ particleCreated(particle: MoveParticle): void { const options = particle.options, moveOptions = options.move, @@ -87,14 +85,12 @@ export class MovePluginInstance implements IContainerPlugin { initSpin(this.#container, particle); } - /** @inheritDoc */ particleDestroyed(particle: MoveParticle): void { const pathGenerator = particle.pathGenerator; pathGenerator?.reset(particle); } - /** @inheritDoc */ particleUpdate(particle: MoveParticle, delta: IDelta): void { const particleOptions = particle.options, moveOptions = particleOptions.move; @@ -123,12 +119,10 @@ export class MovePluginInstance implements IContainerPlugin { applyDistance(particle); } - /** @inheritDoc */ preInit(): Promise { return this.#init(); } - /** @inheritDoc */ redrawInit(): Promise { return this.#init(); } diff --git a/plugins/move/src/Utils.ts b/plugins/move/src/Utils.ts index 2f8dc6a042a..d60e3ba3ad5 100644 --- a/plugins/move/src/Utils.ts +++ b/plugins/move/src/Utils.ts @@ -11,19 +11,19 @@ import { getRandom, getRangeValue, half, + identity, + minVelocity, } from "@tsparticles/engine"; import type { MoveParticle } from "./Types.js"; -const minVelocity = 0, - identity = 1, - moveSpeedFactor = 60, +const moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, defaultPathDelay = 0, noDecay = 1; /** - * @param particle - + * @param particle - The particle to process */ export function applyDistance(particle: MoveParticle): void { const initialPosition = particle.initialPosition, @@ -75,13 +75,13 @@ export function applyDistance(particle: MoveParticle): void { /** * - * @param particle - - * @param moveOptions - - * @param moveSpeed - - * @param maxSpeed - - * @param moveDrift - - * @param reduceFactor - - * @param delta - + * @param particle - The particle to process + * @param moveOptions - The moveOptions + * @param moveSpeed - The moveSpeed + * @param maxSpeed - The maxSpeed + * @param moveDrift - The moveDrift + * @param reduceFactor - The reduceFactor + * @param delta - The delta time */ export function move( particle: MoveParticle, @@ -142,10 +142,10 @@ export function move( } /** - * @param container - - * @param particle - - * @param moveSpeed - - * @param reduceFactor - + * @param container - The container to handle + * @param particle - The particle to process + * @param moveSpeed - The moveSpeed + * @param reduceFactor - The reduceFactor */ export function spin(container: Container, particle: MoveParticle, moveSpeed: number, reduceFactor: number): void { if (!particle.spin) { @@ -179,8 +179,8 @@ export function spin(container: Container, particle: MoveParticle, moveSpeed: nu } /** - * @param particle - - * @param delta - + * @param particle - The particle to process + * @param delta - The delta time */ export function applyPath(particle: MoveParticle, delta: IDelta): void { const particlesOptions = particle.options, @@ -214,7 +214,7 @@ export function applyPath(particle: MoveParticle, delta: IDelta): void { } /** - * @param particle - + * @param particle - The particle to process * @returns proximity speed factor */ export function getProximitySpeedFactor(particle: Particle): number { @@ -222,8 +222,8 @@ export function getProximitySpeedFactor(particle: Particle): number { } /** - * @param container - - * @param particle - + * @param container - The container to handle + * @param particle - The particle to process */ export function initSpin(container: Container, particle: MoveParticle): void { const options = particle.options, diff --git a/plugins/move/src/index.lazy.ts b/plugins/move/src/index.lazy.ts index 63aa1ce4383..8c2929a9866 100644 --- a/plugins/move/src/index.lazy.ts +++ b/plugins/move/src/index.lazy.ts @@ -5,7 +5,7 @@ import type { IMovePathGenerator } from "./IMovePathGenerator.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMovePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -50,7 +50,7 @@ export async function loadMovePlugin(engine: Engine): Promise { } /** - * @param e - + * @param e - The event object */ export function ensureBaseMoverLoaded(e: MoveEngine): void { if (!e.pluginManager.addPathGenerator) { diff --git a/plugins/move/src/index.ts b/plugins/move/src/index.ts index c35b4527124..68a31309696 100644 --- a/plugins/move/src/index.ts +++ b/plugins/move/src/index.ts @@ -6,7 +6,7 @@ import { MovePlugin } from "./MovePlugin.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMovePlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -49,7 +49,7 @@ export async function loadMovePlugin(engine: Engine): Promise { } /** - * @param e - + * @param e - The event object */ export function ensureBaseMoverLoaded(e: MoveEngine): void { if (!e.pluginManager.addPathGenerator) { diff --git a/plugins/poisson/CHANGELOG.md b/plugins/poisson/CHANGELOG.md index 620ea2bbfa4..89badb7e16a 100644 --- a/plugins/poisson/CHANGELOG.md +++ b/plugins/poisson/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-poisson-disc diff --git a/plugins/poisson/package.dist.json b/plugins/poisson/package.dist.json index f39d684bed8..ff92754bb71 100644 --- a/plugins/poisson/package.dist.json +++ b/plugins/poisson/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-poisson-disc", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles poisson disc plugin", "homepage": "https://particles.js.org", "repository": { @@ -91,7 +91,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/poisson/package.json b/plugins/poisson/package.json index 92961d788e7..0910f452844 100644 --- a/plugins/poisson/package.json +++ b/plugins/poisson/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-poisson-disc", - "version": "4.1.3", - "description": "tsParticles poisson disc plugin", + "version": "4.2.0", + "description": "tsParticles plugin for Poisson disc sampling to distribute particles with natural spacing", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "poisson-disc", + "poisson" ], "author": "Matteo Bruni ", "license": "MIT", @@ -97,7 +64,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/poisson/src/Options/Classes/Poisson.ts b/plugins/poisson/src/Options/Classes/Poisson.ts index 220977f14e6..10dde69d236 100644 --- a/plugins/poisson/src/Options/Classes/Poisson.ts +++ b/plugins/poisson/src/Options/Classes/Poisson.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IPoisson } from "../Interfaces/IPoisson.js"; /** @@ -6,43 +6,24 @@ import type { IPoisson } from "../Interfaces/IPoisson.js"; */ export class Poisson implements IPoisson, IOptionLoader { /** The poisson dimensions */ - dimensions; + dimensions = 2; /** Enables the poisson disc sampling */ - enable; + enable = false; /** The poisson radius */ - radius; + radius = 0; /** The poisson retries */ - retries; + retries = 30; /** The poisson steps */ - steps; - - constructor() { - this.enable = false; - this.dimensions = 2; - this.radius = 0; - this.retries = 30; - this.steps = 0; - } + steps = 0; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.dimensions !== undefined) { - this.dimensions = data.dimensions; - } - - if (data.radius !== undefined) { - this.radius = data.radius; - } - - if (data.retries !== undefined) { - this.retries = data.retries; - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "dimensions", data.dimensions); + loadProperty(this, "radius", data.radius); + loadProperty(this, "retries", data.retries); } } diff --git a/plugins/poisson/src/PoissonDiscPluginInstance.ts b/plugins/poisson/src/PoissonDiscPluginInstance.ts index 7f8e0e6c7cd..19bc7bcb577 100644 --- a/plugins/poisson/src/PoissonDiscPluginInstance.ts +++ b/plugins/poisson/src/PoissonDiscPluginInstance.ts @@ -27,7 +27,6 @@ export class PoissonDiscPluginInstance implements IContainerPlugin { this.#currentIndex = 0; } - /** @inheritDoc */ async init(): Promise { await this.#initData(); } diff --git a/plugins/polygonMask/CHANGELOG.md b/plugins/polygonMask/CHANGELOG.md index 26abbae6839..e8e592fe260 100644 --- a/plugins/polygonMask/CHANGELOG.md +++ b/plugins/polygonMask/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-polygon-mask diff --git a/plugins/polygonMask/package.dist.json b/plugins/polygonMask/package.dist.json index 3e8f219157e..35b730ed617 100644 --- a/plugins/polygonMask/package.dist.json +++ b/plugins/polygonMask/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-polygon-mask", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles polygon mask plugin", "homepage": "https://particles.js.org", "repository": { @@ -94,7 +94,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/polygonMask/package.json b/plugins/polygonMask/package.json index 6ca07d7ffcf..d182396516c 100644 --- a/plugins/polygonMask/package.json +++ b/plugins/polygonMask/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-polygon-mask", - "version": "4.1.3", - "description": "tsParticles polygon mask plugin", + "version": "4.2.0", + "description": "tsParticles plugin for constraining particles within SVG or image-based polygon mask shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "polygon-mask" ], "author": "Matteo Bruni ", "license": "MIT", @@ -83,7 +49,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "exports": { diff --git a/plugins/polygonMask/src/Options/Classes/PolygonMask.ts b/plugins/polygonMask/src/Options/Classes/PolygonMask.ts index 26b7de85131..c673ace4806 100644 --- a/plugins/polygonMask/src/Options/Classes/PolygonMask.ts +++ b/plugins/polygonMask/src/Options/Classes/PolygonMask.ts @@ -6,6 +6,7 @@ import { deepExtend, isNull, isString, + loadProperty, } from "@tsparticles/engine"; import type { IPolygonMask } from "../Interfaces/IPolygonMask.js"; import { PolygonMaskDraw } from "./PolygonMaskDraw.js"; @@ -23,27 +24,22 @@ export class PolygonMask implements IPolygonMask, IOptionLoader { /** The polygon mask draw options */ draw; /** Enables the polygon mask */ - enable; + enable = false; /** The polygon mask inline options */ - inline; + inline = new PolygonMaskInline(); /** The polygon mask move options */ - move; + move = new PolygonMaskMove(); /** The polygon mask position */ position?: ICoordinates; /** The polygon mask scale */ - scale; + scale = 1; /** The polygon mask type */ - type; + type = PolygonMaskType.none; /** The polygon mask SVG url */ url?: string; constructor(pluginManager: PluginManager) { this.draw = new PolygonMaskDraw(pluginManager); - this.enable = false; - this.inline = new PolygonMaskInline(); - this.move = new PolygonMaskMove(); - this.scale = 1; - this.type = PolygonMaskType.none; } load(data?: RecursivePartial): void { @@ -55,13 +51,8 @@ export class PolygonMask implements IPolygonMask, IOptionLoader { this.inline.load(data.inline); this.move.load(data.move); - if (data.scale !== undefined) { - this.scale = data.scale; - } - - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "scale", data.scale); + loadProperty(this, "type", data.type); if (data.enable !== undefined) { this.enable = data.enable; @@ -69,9 +60,7 @@ export class PolygonMask implements IPolygonMask, IOptionLoader { this.enable = this.type !== PolygonMaskType.none; } - if (data.url !== undefined) { - this.url = data.url; - } + loadProperty(this, "url", data.url); if (data.data !== undefined) { if (isString(data.data)) { diff --git a/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts b/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts index 5494023149f..12666db3dda 100644 --- a/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts +++ b/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts @@ -1,16 +1,21 @@ -import { type IOptionLoader, type PluginManager, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type PluginManager, + type RecursivePartial, + isNull, + loadProperty, +} from "@tsparticles/engine"; import type { IPolygonMaskDraw } from "../Interfaces/IPolygonMaskDraw.js"; import { PolygonMaskDrawStroke } from "./PolygonMaskDrawStroke.js"; /** The polygon mask draw options */ export class PolygonMaskDraw implements IPolygonMaskDraw, IOptionLoader { /** Enables the polygon mask drawing */ - enable; + enable = false; /** The polygon mask draw stroke options */ stroke; constructor(pluginManager: PluginManager) { - this.enable = false; this.stroke = new PolygonMaskDrawStroke(pluginManager); } @@ -19,9 +24,7 @@ export class PolygonMaskDraw implements IPolygonMaskDraw, IOptionLoader { /** The polygon mask draw stroke color */ - color; + color = new OptionsColor(); /** The polygon mask draw stroke opacity */ - opacity; + opacity = 1; /** The polygon mask draw stroke width */ - width; + width = 0.5; /** The plugin manager */ readonly #pluginManager; constructor(pluginManager: PluginManager) { this.#pluginManager = pluginManager; - this.color = new OptionsColor(); - this.width = 0.5; - this.opacity = 1; } load(data?: RecursivePartial): void { @@ -39,12 +37,7 @@ export class PolygonMaskDrawStroke implements IPolygonMaskDrawStroke, IOptionLoa this.opacity = stringToAlpha(this.#pluginManager, this.color.value) ?? this.opacity; } - if (data.opacity !== undefined) { - this.opacity = data.opacity; - } - - if (data.width !== undefined) { - this.width = data.width; - } + loadProperty(this, "opacity", data.opacity); + loadProperty(this, "width", data.width); } } diff --git a/plugins/polygonMask/src/Options/Classes/PolygonMaskInline.ts b/plugins/polygonMask/src/Options/Classes/PolygonMaskInline.ts index 3755c439f98..156c506e574 100644 --- a/plugins/polygonMask/src/Options/Classes/PolygonMaskInline.ts +++ b/plugins/polygonMask/src/Options/Classes/PolygonMaskInline.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { PolygonMaskInlineArrangement, type PolygonMaskInlineArrangementAlt, @@ -22,8 +22,6 @@ export class PolygonMaskInline implements IPolygonMaskInline, IOptionLoader { /** The svg path */ - path: SingleOrMultiple; + path: SingleOrMultiple = []; /** The svg size */ size: IDimension; constructor() { - this.path = []; this.size = { height: 0, width: 0, @@ -27,9 +27,7 @@ export class PolygonMaskLocalSvg implements IPolygonMaskLocalSvg, IOptionLoader< return; } - if (data.path !== undefined) { - this.path = data.path; - } + loadProperty(this, "path", data.path); if (data.size !== undefined) { if (data.size.width !== undefined) { diff --git a/plugins/polygonMask/src/Options/Classes/PolygonMaskMove.ts b/plugins/polygonMask/src/Options/Classes/PolygonMaskMove.ts index 4c22e4b9112..f78d7f30af1 100644 --- a/plugins/polygonMask/src/Options/Classes/PolygonMaskMove.ts +++ b/plugins/polygonMask/src/Options/Classes/PolygonMaskMove.ts @@ -1,30 +1,20 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IPolygonMaskMove } from "../Interfaces/IPolygonMaskMove.js"; import { PolygonMaskMoveType } from "../../Enums/PolygonMaskMoveType.js"; /** The polygon mask move options */ export class PolygonMaskMove implements IPolygonMaskMove, IOptionLoader { /** The polygon mask move radius */ - radius; + radius = 10; /** The polygon mask move type */ - type: PolygonMaskMoveType | keyof typeof PolygonMaskMoveType; - - constructor() { - this.radius = 10; - this.type = PolygonMaskMoveType.path; - } + type: PolygonMaskMoveType | keyof typeof PolygonMaskMoveType = PolygonMaskMoveType.path; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.radius !== undefined) { - this.radius = data.radius; - } - - if (data.type !== undefined) { - this.type = data.type; - } + loadProperty(this, "radius", data.radius); + loadProperty(this, "type", data.type); } } diff --git a/plugins/polygonMask/src/PolygonMaskInstance.ts b/plugins/polygonMask/src/PolygonMaskInstance.ts index ecc8489c8cf..2d8dcd12ab9 100644 --- a/plugins/polygonMask/src/PolygonMaskInstance.ts +++ b/plugins/polygonMask/src/PolygonMaskInstance.ts @@ -85,7 +85,6 @@ export class PolygonMaskInstance implements IContainerPlugin { ); } - /** @inheritDoc */ draw(context: OffscreenCanvasRenderingContext2D): void { if (!this.paths?.length) { return; @@ -116,7 +115,6 @@ export class PolygonMaskInstance implements IContainerPlugin { } } - /** @inheritDoc */ async init(): Promise { const container = this.#container, polygonMaskOptions = container.actualOptions.polygon, @@ -135,12 +133,10 @@ export class PolygonMaskInstance implements IContainerPlugin { } } - /** @inheritDoc */ particleBounce(particle: Particle, delta: IDelta, direction: OutModeDirection): boolean { return this.#polygonBounce(particle, delta, direction); } - /** @inheritDoc */ particlePosition(position?: ICoordinates): ICoordinates | undefined { const options = this.#container.actualOptions.polygon, defaultLength = 0; @@ -152,7 +148,6 @@ export class PolygonMaskInstance implements IContainerPlugin { return deepExtend({}, position ?? this.#randomPoint()) as ICoordinates; } - /** @inheritDoc */ particlesInitialization(): boolean { const options = this.#container.actualOptions.polygon; @@ -170,7 +165,6 @@ export class PolygonMaskInstance implements IContainerPlugin { return false; } - /** @inheritDoc */ resize(): void { const container = this.#container, options = container.actualOptions.polygon; @@ -194,13 +188,12 @@ export class PolygonMaskInstance implements IContainerPlugin { }, timeout); } - /** @inheritDoc */ stop(): void { delete this.raw; delete this.paths; } - readonly #checkInsidePolygon: (position?: ICoordinates) => boolean = position => { + #checkInsidePolygon(position?: ICoordinates): boolean { const container = this.#container, options = container.actualOptions.polygon; @@ -246,9 +239,9 @@ export class PolygonMaskInstance implements IContainerPlugin { } else { return !inside; } - }; + } - readonly #createPath2D: () => void = () => { + #createPath2D(): void { const container = this.#container, options = container.actualOptions.polygon; @@ -295,7 +288,7 @@ export class PolygonMaskInstance implements IContainerPlugin { path.path2d.closePath(); } - }; + } /** * Deprecate SVGPathElement.getPathSegAtLength removed in: @@ -304,14 +297,11 @@ export class PolygonMaskInstance implements IContainerPlugin { * Android WebView release 62 * Opera release 49 * Opera for Android release 49 - * @param svgUrl - - * @param force - + * @param svgUrl - The svgUrl + * @param force - The force * @returns the coordinates of the polygon */ - readonly #downloadSvgPath: (svgUrl?: string, force?: boolean) => Promise = async ( - svgUrl, - force, - ) => { + async #downloadSvgPath(svgUrl?: string, force?: boolean): Promise { const options = this.#container.actualOptions.polygon; if (!options) { @@ -333,9 +323,9 @@ export class PolygonMaskInstance implements IContainerPlugin { } return this.#parseSvgPath(await req.text(), force); - }; + } - readonly #drawPoints: () => void = () => { + #drawPoints(): void { if (!this.raw) { return; } @@ -346,9 +336,9 @@ export class PolygonMaskInstance implements IContainerPlugin { y: item.y, }); } - }; + } - readonly #getEquidistantPointByIndex: (index: number) => ICoordinates | undefined = index => { + #getEquidistantPointByIndex(index: number): ICoordinates | undefined { const container = this.#container, options = container.actualOptions, polygonMaskOptions = options.polygon; @@ -386,9 +376,9 @@ export class PolygonMaskInstance implements IContainerPlugin { x: (point?.x ?? originPoint.x) * scale + (this.offset?.x ?? originPoint.x), y: (point?.y ?? originPoint.y) * scale + (this.offset?.y ?? originPoint.y), }; - }; + } - readonly #getPointByIndex: (index: number) => ICoordinates | undefined = index => { + #getPointByIndex(index: number): ICoordinates | undefined { if (!this.raw?.length) { throw new Error(noPolygonDataLoaded); } @@ -403,9 +393,9 @@ export class PolygonMaskInstance implements IContainerPlugin { x: coords.x, y: coords.y, }; - }; + } - readonly #getRandomPoint: () => ICoordinates | undefined = () => { + #getRandomPoint(): ICoordinates | undefined { if (!this.raw?.length) { throw new Error(noPolygonDataLoaded); } @@ -420,9 +410,9 @@ export class PolygonMaskInstance implements IContainerPlugin { x: coords.x, y: coords.y, }; - }; + } - readonly #getRandomPointByLength: () => ICoordinates | undefined = () => { + #getRandomPointByLength(): ICoordinates | undefined { const container = this.#container, options = container.actualOptions.polygon; @@ -449,9 +439,9 @@ export class PolygonMaskInstance implements IContainerPlugin { x: point.x * scale + (this.offset?.x ?? originPoint.x), y: point.y * scale + (this.offset?.y ?? originPoint.y), }; - }; + } - readonly #initRawData = async (force?: boolean): Promise => { + async #initRawData(force?: boolean): Promise { const options = this.#container.actualOptions.polygon; if (!options) { @@ -481,9 +471,9 @@ export class PolygonMaskInstance implements IContainerPlugin { this.#createPath2D(); this.#container.dispatchEvent("polygonMaskLoaded"); - }; + } - readonly #parseSvgPath = (xml: string, force?: boolean): ICoordinates[] | undefined => { + #parseSvgPath(xml: string, force?: boolean): ICoordinates[] | undefined { const forceDownload = force ?? false; if (this.paths !== undefined && !forceDownload) { @@ -543,9 +533,9 @@ export class PolygonMaskInstance implements IContainerPlugin { }; return parsePaths(this.paths, scale, this.offset); - }; + } - readonly #polygonBounce = (particle: Particle, _delta: IDelta, direction: OutModeDirection): boolean => { + #polygonBounce(particle: Particle, _delta: IDelta, direction: OutModeDirection): boolean { const options = this.#container.actualOptions.polygon; if (!this.raw || !options?.enable || direction !== OutModeDirection.top) { @@ -612,9 +602,9 @@ export class PolygonMaskInstance implements IContainerPlugin { } return false; - }; + } - readonly #randomPoint: () => ICoordinates | undefined = () => { + #randomPoint(): ICoordinates | undefined { const container = this.#container, options = container.actualOptions.polygon; @@ -654,5 +644,5 @@ export class PolygonMaskInstance implements IContainerPlugin { } else { return this.#randomPoint(); } - }; + } } diff --git a/plugins/polygonMask/src/pathseg.d.ts b/plugins/polygonMask/src/pathseg.d.ts index 7a189e0ad6a..0b026e6807f 100644 --- a/plugins/polygonMask/src/pathseg.d.ts +++ b/plugins/polygonMask/src/pathseg.d.ts @@ -12,7 +12,10 @@ interface SVGElementInstanceList { /** Length value */ readonly length: number; - /** Item value */ + /** + * Item value + * @returns The result + */ item(index: number): SVGElementInstance; } @@ -68,7 +71,10 @@ interface SVGPathSeg { declare var SVGPathSeg: { /** Prototype value */ prototype: SVGPathSeg; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSeg; /** Absolute arcto path segment type */ readonly PATHSEG_ARC_ABS: number; @@ -134,7 +140,10 @@ interface SVGPathSegArcAbs extends SVGPathSeg { declare var SVGPathSegArcAbs: { /** Prototype value */ prototype: SVGPathSegArcAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegArcAbs; }; @@ -160,7 +169,10 @@ interface SVGPathSegArcRel extends SVGPathSeg { declare var SVGPathSegArcRel: { /** Prototype value */ prototype: SVGPathSegArcRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegArcRel; }; @@ -171,7 +183,10 @@ type SVGPathSegClosePath = SVGPathSeg; declare var SVGPathSegClosePath: { /** Prototype value */ prototype: SVGPathSegClosePath; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegClosePath; }; @@ -195,7 +210,10 @@ interface SVGPathSegCurvetoCubicAbs extends SVGPathSeg { declare var SVGPathSegCurvetoCubicAbs: { /** Prototype value */ prototype: SVGPathSegCurvetoCubicAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoCubicAbs; }; @@ -219,7 +237,10 @@ interface SVGPathSegCurvetoCubicRel extends SVGPathSeg { declare var SVGPathSegCurvetoCubicRel: { /** Prototype value */ prototype: SVGPathSegCurvetoCubicRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoCubicRel; }; @@ -239,7 +260,10 @@ interface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg { declare var SVGPathSegCurvetoCubicSmoothAbs: { /** Prototype value */ prototype: SVGPathSegCurvetoCubicSmoothAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoCubicSmoothAbs; }; @@ -259,7 +283,10 @@ interface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg { declare var SVGPathSegCurvetoCubicSmoothRel: { /** Prototype value */ prototype: SVGPathSegCurvetoCubicSmoothRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoCubicSmoothRel; }; @@ -279,7 +306,10 @@ interface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg { declare var SVGPathSegCurvetoQuadraticAbs: { /** Prototype value */ prototype: SVGPathSegCurvetoQuadraticAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoQuadraticAbs; }; @@ -299,7 +329,10 @@ interface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg { declare var SVGPathSegCurvetoQuadraticRel: { /** Prototype value */ prototype: SVGPathSegCurvetoQuadraticRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoQuadraticRel; }; @@ -315,7 +348,10 @@ interface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg { declare var SVGPathSegCurvetoQuadraticSmoothAbs: { /** Prototype value */ prototype: SVGPathSegCurvetoQuadraticSmoothAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoQuadraticSmoothAbs; }; @@ -331,7 +367,10 @@ interface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg { declare var SVGPathSegCurvetoQuadraticSmoothRel: { /** Prototype value */ prototype: SVGPathSegCurvetoQuadraticSmoothRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegCurvetoQuadraticSmoothRel; }; @@ -347,7 +386,10 @@ interface SVGPathSegLinetoAbs extends SVGPathSeg { declare var SVGPathSegLinetoAbs: { /** Prototype value */ prototype: SVGPathSegLinetoAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoAbs; }; @@ -361,7 +403,10 @@ interface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg { declare var SVGPathSegLinetoHorizontalAbs: { /** Prototype value */ prototype: SVGPathSegLinetoHorizontalAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoHorizontalAbs; }; @@ -375,7 +420,10 @@ interface SVGPathSegLinetoHorizontalRel extends SVGPathSeg { declare var SVGPathSegLinetoHorizontalRel: { /** Prototype value */ prototype: SVGPathSegLinetoHorizontalRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoHorizontalRel; }; @@ -391,7 +439,10 @@ interface SVGPathSegLinetoRel extends SVGPathSeg { declare var SVGPathSegLinetoRel: { /** Prototype value */ prototype: SVGPathSegLinetoRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoRel; }; @@ -405,7 +456,10 @@ interface SVGPathSegLinetoVerticalAbs extends SVGPathSeg { declare var SVGPathSegLinetoVerticalAbs: { /** Prototype value */ prototype: SVGPathSegLinetoVerticalAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoVerticalAbs; }; @@ -419,7 +473,10 @@ interface SVGPathSegLinetoVerticalRel extends SVGPathSeg { declare var SVGPathSegLinetoVerticalRel: { /** Prototype value */ prototype: SVGPathSegLinetoVerticalRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegLinetoVerticalRel; }; @@ -428,25 +485,43 @@ interface SVGPathSegList { /** Numberofitems value */ readonly numberOfItems: number; - /** Appenditem value */ + /** + * Appenditem value + * @returns The result + */ appendItem(newItem: SVGPathSeg): SVGPathSeg; /** Clear value */ clear(): void; - /** Getitem value */ + /** + * Getitem value + * @returns The result + */ getItem(index: number): SVGPathSeg; - /** Initialize value */ + /** + * Initialize value + * @returns The result + */ initialize(newItem: SVGPathSeg): SVGPathSeg; - /** Insertitembefore value */ + /** + * Insertitembefore value + * @returns The result + */ insertItemBefore(newItem: SVGPathSeg, index: number): SVGPathSeg; - /** Removeitem value */ + /** + * Removeitem value + * @returns The result + */ removeItem(index: number): SVGPathSeg; - /** Replaceitem value */ + /** + * Replaceitem value + * @returns The result + */ replaceItem(newItem: SVGPathSeg, index: number): SVGPathSeg; } @@ -454,7 +529,10 @@ interface SVGPathSegList { declare var SVGPathSegList: { /** Prototype value */ prototype: SVGPathSegList; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegList; }; @@ -470,7 +548,10 @@ interface SVGPathSegMovetoAbs extends SVGPathSeg { declare var SVGPathSegMovetoAbs: { /** Prototype value */ prototype: SVGPathSegMovetoAbs; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegMovetoAbs; }; @@ -486,7 +567,10 @@ interface SVGPathSegMovetoRel extends SVGPathSeg { declare var SVGPathSegMovetoRel: { /** Prototype value */ prototype: SVGPathSegMovetoRel; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathSegMovetoRel; }; @@ -520,7 +604,10 @@ interface SVGZoomEvent extends UIEvent { declare var SVGZoomEvent: { /** Prototype value */ prototype: SVGZoomEvent; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGZoomEvent; }; @@ -529,10 +616,16 @@ interface SVGPathElement extends SVGGraphicsElement { /** Pathseglist value */ readonly pathSegList?: SVGPathSegList; - /** Getpointatlength value */ + /** + * Getpointatlength value + * @returns The result + */ getPointAtLength(distance: number): SVGPoint; - /** Gettotallength value */ + /** + * Gettotallength value + * @returns The numeric value + */ getTotalLength(): number; } @@ -540,7 +633,10 @@ interface SVGPathElement extends SVGGraphicsElement { declare var SVGPathElement: { /** Prototype value */ prototype: SVGPathElement; - /** New value */ + /** + * New value + * @returns The result + */ new (): SVGPathElement; }; diff --git a/plugins/polygonMask/src/utils.ts b/plugins/polygonMask/src/utils.ts index d5d981798cd..fc02fcb0639 100644 --- a/plugins/polygonMask/src/utils.ts +++ b/plugins/polygonMask/src/utils.ts @@ -6,6 +6,7 @@ import { getDistances, getStyleFromRgb, rangeColorToRgb, + squareExp, } from "@tsparticles/engine"; import type { SVGPathSeg, @@ -18,18 +19,17 @@ import type { SvgAbsoluteCoordinatesTypes, SvgRelativeCoordinatesTypes } from ". import type { IPolygonMaskDrawStroke } from "./Options/Interfaces/IPolygonMaskDrawStroke.js"; import type { ISvgPath } from "./Interfaces/ISvgPath.js"; -const squareExp = 2, - inSegmentRange = { - min: 0, - max: 1, - }; +const inSegmentRange = { + min: 0, + max: 1, +}; /** - * @param pluginManager - - * @param context - - * @param rawData - - * @param stroke - - * @param hdr - + * @param pluginManager - The plugin manager + * @param context - The rendering context + * @param rawData - The rawData + * @param stroke - The stroke flag + * @param hdr - The hdr */ export function drawPolygonMask( pluginManager: PluginManager, @@ -65,12 +65,12 @@ export function drawPolygonMask( } /** - * @param pluginManager - - * @param context - - * @param path - - * @param stroke - - * @param position - - * @param hdr - + * @param pluginManager - The plugin manager + * @param context - The rendering context + * @param path - The path + * @param stroke - The stroke flag + * @param position - The position + * @param hdr - The hdr */ export function drawPolygonMaskPath( pluginManager: PluginManager, @@ -109,9 +109,9 @@ export function drawPolygonMaskPath( } /** - * @param paths - - * @param scale - - * @param offset - + * @param paths - The paths + * @param scale - The scale + * @param offset - The offset * @returns the coordinates of the points */ export function parsePaths(paths: ISvgPath[], scale: number, offset: ICoordinates): ICoordinates[] { @@ -199,9 +199,9 @@ export function parsePaths(paths: ISvgPath[], scale: number, offset: ICoordinate } /** - * @param s1 - - * @param s2 - - * @param pos - + * @param s1 - The s1 + * @param s2 - The s2 + * @param pos - The pos * @returns the closest point on the segment */ export function calcClosestPointOnSegment( @@ -236,9 +236,9 @@ export function calcClosestPointOnSegment( } /** - * @param start - - * @param stop - - * @param velocity - + * @param start - The start value + * @param stop - The stop + * @param velocity - The velocity */ export function segmentBounce(start: ICoordinates, stop: ICoordinates, velocity: Vector): void { const { dx, dy } = getDistances(start, stop), diff --git a/plugins/responsive/CHANGELOG.md b/plugins/responsive/CHANGELOG.md index baed1bf4bce..6b03fb41c4b 100644 --- a/plugins/responsive/CHANGELOG.md +++ b/plugins/responsive/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/plugin-responsive + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-responsive diff --git a/plugins/responsive/package.dist.json b/plugins/responsive/package.dist.json index 330bf98f7a0..f1ecdd0e8c9 100644 --- a/plugins/responsive/package.dist.json +++ b/plugins/responsive/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-responsive", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles responsive plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/responsive/package.json b/plugins/responsive/package.json index cb8c93cb969..78fed93ff0c 100644 --- a/plugins/responsive/package.json +++ b/plugins/responsive/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-responsive", - "version": "4.1.3", - "description": "tsParticles responsive plugin", + "version": "4.2.0", + "description": "tsParticles plugin for configuring responsive breakpoints that adapt particle settings to screen size", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "responsive" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/responsive/src/Options/Classes/Responsive.ts b/plugins/responsive/src/Options/Classes/Responsive.ts index 7e8aa9810dc..115a43a3e36 100644 --- a/plugins/responsive/src/Options/Classes/Responsive.ts +++ b/plugins/responsive/src/Options/Classes/Responsive.ts @@ -13,15 +13,9 @@ import { ResponsiveMode } from "../../ResponsiveMode.js"; * [[include:Options/Plugins/Responsive.md]] */ export class Responsive implements IResponsive, IOptionLoader { - maxWidth: number; - mode: ResponsiveMode | keyof typeof ResponsiveMode; - options: ISourceOptions; - - constructor() { - this.maxWidth = Infinity; - this.options = {}; - this.mode = ResponsiveMode.canvas; - } + maxWidth = Infinity; + mode: ResponsiveMode | keyof typeof ResponsiveMode = ResponsiveMode.canvas; + options: ISourceOptions = {}; load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/plugins/sounds/CHANGELOG.md b/plugins/sounds/CHANGELOG.md index cf59a9a0cf6..ffe5b9bfdfa 100644 --- a/plugins/sounds/CHANGELOG.md +++ b/plugins/sounds/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some circular deps ([88b7b76](https://github.com/tsparticles/tsparticles/commit/88b7b76e6d23393922f1c90893e689ac4b1ebcd3)) +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-sounds diff --git a/plugins/sounds/package.dist.json b/plugins/sounds/package.dist.json index 537e89ee651..7a45cb65d32 100644 --- a/plugins/sounds/package.dist.json +++ b/plugins/sounds/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-sounds", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sounds plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/sounds/package.json b/plugins/sounds/package.json index b3e2164ff94..2602100448d 100644 --- a/plugins/sounds/package.json +++ b/plugins/sounds/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-sounds", - "version": "4.1.3", - "description": "tsParticles sounds plugin", + "version": "4.2.0", + "description": "tsParticles plugin for adding sound effects triggered by particle events and interactions", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "sounds" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/sounds/src/FilterFunctionTypes.ts b/plugins/sounds/src/FilterFunctionTypes.ts new file mode 100644 index 00000000000..36a1d7af74e --- /dev/null +++ b/plugins/sounds/src/FilterFunctionTypes.ts @@ -0,0 +1,3 @@ +import type { CustomEventArgs } from "@tsparticles/engine"; + +export type FilterFunction = (args: CustomEventArgs) => boolean; diff --git a/plugins/sounds/src/Options/Classes/Sounds.ts b/plugins/sounds/src/Options/Classes/Sounds.ts index 19b312e2c96..30b370d0e5b 100644 --- a/plugins/sounds/src/Options/Classes/Sounds.ts +++ b/plugins/sounds/src/Options/Classes/Sounds.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ISounds } from "../Interfaces/ISounds.js"; import { SoundsEvent } from "./SoundsEvent.js"; import { SoundsIcons } from "./SoundsIcons.js"; @@ -10,36 +10,23 @@ import { SoundsVolume } from "./SoundsVolume.js"; */ export class Sounds implements ISounds, IOptionLoader { /** Enables auto play */ - autoPlay: boolean; + autoPlay = true; /** Enables the sounds */ - enable; + enable = false; /** The sounds events */ - events: SoundsEvent[]; + events: SoundsEvent[] = []; /** The sounds icons */ - icons; + readonly icons = new SoundsIcons(); /** The sounds volume */ - volume; - - constructor() { - this.autoPlay = true; - this.enable = false; - this.events = []; - this.icons = new SoundsIcons(); - this.volume = new SoundsVolume(); - } + readonly volume = new SoundsVolume(); load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.autoPlay !== undefined) { - this.autoPlay = data.autoPlay; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "autoPlay", data.autoPlay); + loadProperty(this, "enable", data.enable); if (data.events !== undefined) { this.events = data.events.map(t => { diff --git a/plugins/sounds/src/Options/Classes/SoundsAudio.ts b/plugins/sounds/src/Options/Classes/SoundsAudio.ts index 5f8141ae782..28fedd8971b 100644 --- a/plugins/sounds/src/Options/Classes/SoundsAudio.ts +++ b/plugins/sounds/src/Options/Classes/SoundsAudio.ts @@ -1,14 +1,9 @@ -import { type IOptionLoader, type RecursivePartial, isNull, isObject } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, isObject, loadProperty } from "@tsparticles/engine"; import type { ISoundsAudio } from "../Interfaces/ISoundsAudio.js"; export class SoundsAudio implements ISoundsAudio, IOptionLoader { - loop: boolean; - source: string; - - constructor() { - this.loop = false; - this.source = ""; - } + loop = false; + source = ""; load(data?: RecursivePartial): void { if (isNull(data)) { @@ -16,9 +11,7 @@ export class SoundsAudio implements ISoundsAudio, IOptionLoader { } if (isObject(data)) { - if (data.loop !== undefined) { - this.loop = data.loop; - } + loadProperty(this, "loop", data.loop); if (data.source !== undefined) { this.source = data.source; diff --git a/plugins/sounds/src/Options/Classes/SoundsEvent.ts b/plugins/sounds/src/Options/Classes/SoundsEvent.ts index 932172d9d5c..11f51371205 100644 --- a/plugins/sounds/src/Options/Classes/SoundsEvent.ts +++ b/plugins/sounds/src/Options/Classes/SoundsEvent.ts @@ -6,8 +6,9 @@ import { isFunction, isNull, isString, + loadProperty, } from "@tsparticles/engine"; -import type { FilterFunction } from "../../types.js"; +import type { FilterFunction } from "../../FilterFunctionTypes.js"; import type { ISoundsEvent } from "../Interfaces/ISoundsEvent.js"; import { SoundsAudio } from "./SoundsAudio.js"; import { SoundsMelody } from "./SoundsMelody.js"; @@ -18,8 +19,7 @@ export class SoundsEvent implements ISoundsEvent, IOptionLoader { audio?: SingleOrMultiple; /** The sounds event name */ - event: SingleOrMultiple; - + event: SingleOrMultiple = []; /** The sounds event filter */ filter?: FilterFunction; @@ -27,21 +27,14 @@ export class SoundsEvent implements ISoundsEvent, IOptionLoader { melodies?: SoundsMelody[]; /** The sounds event notes */ - notes?: SoundsNote[]; - - constructor() { - this.event = []; - this.notes = []; - } + notes?: SoundsNote[] = []; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.event !== undefined) { - this.event = data.event; - } + loadProperty(this, "event", data.event); if (data.audio !== undefined) { if (isArray(data.audio)) { diff --git a/plugins/sounds/src/Options/Classes/SoundsIcon.ts b/plugins/sounds/src/Options/Classes/SoundsIcon.ts index b09e20ea851..d8e58908ab4 100644 --- a/plugins/sounds/src/Options/Classes/SoundsIcon.ts +++ b/plugins/sounds/src/Options/Classes/SoundsIcon.ts @@ -1,38 +1,21 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ISoundsIcon } from "../Interfaces/ISoundsIcon.js"; export class SoundsIcon implements ISoundsIcon, IOptionLoader { - height; + height = 24; path?: string; - style: string; + style = ""; svg?: string; - width; - - constructor() { - this.width = 24; - this.height = 24; - this.style = ""; - } + width = 24; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.path !== undefined) { - this.path = data.path; - } - - if (data.svg !== undefined) { - this.svg = data.svg; - } - - if (data.width !== undefined) { - this.width = data.width; - } - - if (data.height !== undefined) { - this.height = data.height; - } + loadProperty(this, "path", data.path); + loadProperty(this, "svg", data.svg); + loadProperty(this, "width", data.width); + loadProperty(this, "height", data.height); } } diff --git a/plugins/sounds/src/Options/Classes/SoundsIcons.ts b/plugins/sounds/src/Options/Classes/SoundsIcons.ts index 10e108afd04..13ce36aa7a6 100644 --- a/plugins/sounds/src/Options/Classes/SoundsIcons.ts +++ b/plugins/sounds/src/Options/Classes/SoundsIcons.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ISoundsIcons } from "../Interfaces/ISoundsIcons.js"; import { SoundsIcon } from "./SoundsIcon.js"; @@ -59,9 +59,7 @@ export class SoundsIcons implements ISoundsIcons, IOptionLoader { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); this.mute.load(data.mute); this.unmute.load(data.unmute); diff --git a/plugins/sounds/src/Options/Classes/SoundsMelody.ts b/plugins/sounds/src/Options/Classes/SoundsMelody.ts index 45ea518f32b..1da5f275991 100644 --- a/plugins/sounds/src/Options/Classes/SoundsMelody.ts +++ b/plugins/sounds/src/Options/Classes/SoundsMelody.ts @@ -1,26 +1,18 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ISoundsMelody } from "../Interfaces/ISoundsMelody.js"; import { SoundsNote } from "./SoundsNote.js"; export class SoundsMelody implements ISoundsMelody, IOptionLoader { - loop; - melodies: SoundsMelody[]; - notes: SoundsNote[]; - - constructor() { - this.loop = false; - this.melodies = []; - this.notes = []; - } + loop = false; + melodies: SoundsMelody[] = []; + notes: SoundsNote[] = []; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.loop !== undefined) { - this.loop = data.loop; - } + loadProperty(this, "loop", data.loop); if (data.melodies !== undefined) { this.melodies = data.melodies.map(s => { diff --git a/plugins/sounds/src/Options/Classes/SoundsNote.ts b/plugins/sounds/src/Options/Classes/SoundsNote.ts index d6b52329a3b..ccbae267569 100644 --- a/plugins/sounds/src/Options/Classes/SoundsNote.ts +++ b/plugins/sounds/src/Options/Classes/SoundsNote.ts @@ -1,26 +1,22 @@ -import { type IOptionLoader, type RecursivePartial, type SingleOrMultiple, isNull } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RecursivePartial, + type SingleOrMultiple, + isNull, + loadProperty, +} from "@tsparticles/engine"; import type { ISoundsNote } from "../Interfaces/ISoundsNote.js"; export class SoundsNote implements ISoundsNote, IOptionLoader { - duration: number; - value: SingleOrMultiple; - - constructor() { - this.duration = 500; - this.value = []; - } + duration = 500; + value: SingleOrMultiple = []; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.duration !== undefined) { - this.duration = data.duration; - } - - if (data.value !== undefined) { - this.value = data.value; - } + loadProperty(this, "duration", data.duration); + loadProperty(this, "value", data.value); } } diff --git a/plugins/sounds/src/Options/Classes/SoundsVolume.ts b/plugins/sounds/src/Options/Classes/SoundsVolume.ts index b3df496fa1f..0006f271176 100644 --- a/plugins/sounds/src/Options/Classes/SoundsVolume.ts +++ b/plugins/sounds/src/Options/Classes/SoundsVolume.ts @@ -1,22 +1,15 @@ -import { type IOptionLoader, type RecursivePartial, isNull, isObject } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, isObject, loadProperty } from "@tsparticles/engine"; import type { ISoundsVolume } from "../Interfaces/ISoundsVolume.js"; export class SoundsVolume implements ISoundsVolume, IOptionLoader { /** The maximum volume */ - max: number; + max = 100; /** The minimum volume */ - min: number; + min = 0; /** The volume step */ - step: number; + step = 10; /** The default volume */ - value: number; - - constructor() { - this.value = 100; - this.max = 100; - this.min = 0; - this.step = 10; - } + value = 100; load(data?: RecursivePartial): void { if (isNull(data)) { @@ -24,17 +17,9 @@ export class SoundsVolume implements ISoundsVolume, IOptionLoader } if (isObject(data)) { - if (data.max !== undefined) { - this.max = data.max; - } - - if (data.min !== undefined) { - this.min = data.min; - } - - if (data.step !== undefined) { - this.step = data.step; - } + loadProperty(this, "max", data.max); + loadProperty(this, "min", data.min); + loadProperty(this, "step", data.step); if (data.value !== undefined) { this.value = data.value; diff --git a/plugins/sounds/src/Options/Interfaces/ISoundsEvent.ts b/plugins/sounds/src/Options/Interfaces/ISoundsEvent.ts index c1d760182eb..0e857af1fe8 100644 --- a/plugins/sounds/src/Options/Interfaces/ISoundsEvent.ts +++ b/plugins/sounds/src/Options/Interfaces/ISoundsEvent.ts @@ -1,4 +1,4 @@ -import type { FilterFunction } from "../../types.js"; +import type { FilterFunction } from "../../FilterFunctionTypes.js"; import type { ISoundsAudio } from "./ISoundsAudio.js"; import type { ISoundsMelody } from "./ISoundsMelody.js"; import type { ISoundsNote } from "./ISoundsNote.js"; diff --git a/plugins/sounds/src/SoundsPluginInstance.ts b/plugins/sounds/src/SoundsPluginInstance.ts index cabffe7d013..0561c6d8941 100644 --- a/plugins/sounds/src/SoundsPluginInstance.ts +++ b/plugins/sounds/src/SoundsPluginInstance.ts @@ -24,7 +24,7 @@ const zIndexOffset = 1, minVolume = 0; /** - * @param data - + * @param data - The data to handle * @returns the image element */ function initImage(data: InitImageData): HTMLImageElement { @@ -60,7 +60,7 @@ function initImage(data: InitImageData): HTMLImageElement { /** * - * @param image - + * @param image - The image */ function removeImage(image?: HTMLImageElement): void { if (!image) { @@ -71,14 +71,14 @@ function removeImage(image?: HTMLImageElement): void { } /** - * @param icon - - * @param top - - * @param left - - * @param display - - * @param zIndex - - * @param width - - * @param margin - - * @param style - + * @param icon - The icon + * @param top - The top + * @param left - The left + * @param display - The display + * @param zIndex - The zIndex + * @param width - The width + * @param margin - The margin + * @param style - The style */ function setIconStyle( icon: HTMLImageElement, @@ -134,7 +134,6 @@ export class SoundsPluginInstance implements IContainerPlugin { this.#audioMap = new Map(); } - /** @inheritDoc */ async init(): Promise { const container = this.#container, options = container.actualOptions, @@ -202,7 +201,6 @@ export class SoundsPluginInstance implements IContainerPlugin { } } - /** @inheritDoc */ async start(): Promise { const container = this.#container, options = container.actualOptions, @@ -280,7 +278,6 @@ export class SoundsPluginInstance implements IContainerPlugin { } } - /** @inheritDoc */ stop(): void { this.#container.muted = true; @@ -343,21 +340,21 @@ export class SoundsPluginInstance implements IContainerPlugin { await this.#updateVolume(); } - readonly #addBuffer: (audioCtx: AudioContext) => AudioBufferSourceNode = audioCtx => { + #addBuffer(audioCtx: AudioContext): AudioBufferSourceNode { const buffer = audioCtx.createBufferSource(); this.#audioSources.push(buffer); return buffer; - }; + } - readonly #addOscillator: (audioCtx: AudioContext) => OscillatorNode = audioCtx => { + #addOscillator(audioCtx: AudioContext): OscillatorNode { const oscillator = audioCtx.createOscillator(); this.#audioSources.push(oscillator); return oscillator; - }; + } #getAudioContext(): AudioContext { const container = this.#container; @@ -367,7 +364,7 @@ export class SoundsPluginInstance implements IContainerPlugin { return container.audioContext; } - readonly #initEvents: () => void = () => { + #initEvents(): void { const container = this.#container, soundsOptions = container.actualOptions.sounds; @@ -440,9 +437,9 @@ export class SoundsPluginInstance implements IContainerPlugin { this.#engine.addEventListener(item, cb); }); } - }; + } - readonly #mute: () => Promise = async () => { + async #mute(): Promise { const container = this.#container, audioContext = this.#getAudioContext(); @@ -459,9 +456,9 @@ export class SoundsPluginInstance implements IContainerPlugin { container.audioContext = undefined; this.#container.dispatchEvent(SoundsEventType.mute); - }; + } - readonly #playBuffer: (audio: SoundsAudio) => void = audio => { + #playBuffer(audio: SoundsAudio): void { const audioBuffer = this.#audioMap.get(audio.source); if (!audioBuffer) { @@ -481,9 +478,9 @@ export class SoundsPluginInstance implements IContainerPlugin { source.connect(this.#gain ?? audioCtx.destination); source.start(); - }; + } - readonly #playFrequency: (frequency: number, duration: number) => Promise = async (frequency, duration) => { + async #playFrequency(frequency: number, duration: number): Promise { if (!this.#gain || this.#container.muted) { return; } @@ -505,9 +502,9 @@ export class SoundsPluginInstance implements IContainerPlugin { resolve(); }, duration); }); - }; + } - readonly #playMuteSound: () => void = () => { + #playMuteSound(): void { if (this.#container.muted) { return; } @@ -530,13 +527,9 @@ export class SoundsPluginInstance implements IContainerPlugin { oscillator.disconnect(); gain.disconnect(); }); - }; + } - readonly #playNote: (notes: SoundsNote[], noteIdx: number, loop: boolean) => Promise = async ( - notes, - noteIdx, - loop, - ) => { + async #playNote(notes: SoundsNote[], noteIdx: number, loop: boolean): Promise { if (this.#container.muted) { return; } @@ -563,13 +556,9 @@ export class SoundsPluginInstance implements IContainerPlugin { } await this.#playNote(notes, nextNoteIdx, loop); - }; + } - readonly #playNoteValue: (notes: SoundsNote[], noteIdx: number, valueIdx: number) => Promise = async ( - notes, - noteIdx, - valueIdx, - ) => { + async #playNoteValue(notes: SoundsNote[], noteIdx: number, valueIdx: number): Promise { const note = notes[noteIdx]; if (!note) { @@ -593,18 +582,18 @@ export class SoundsPluginInstance implements IContainerPlugin { } catch (e) { getLogger().error(e); } - }; + } - readonly #removeAudioSource: (source: AudioScheduledSourceNode) => void = source => { + #removeAudioSource(source: AudioScheduledSourceNode): void { source.stop(); source.disconnect(); const deleteCount = 1; this.#audioSources.splice(this.#audioSources.indexOf(source), deleteCount); - }; + } - readonly #unmute: () => void = () => { + #unmute(): void { const container = this.#container, options = container.actualOptions, soundsOptions = options.sounds; @@ -625,9 +614,9 @@ export class SoundsPluginInstance implements IContainerPlugin { this.#initEvents(); this.#container.dispatchEvent(SoundsEventType.unmute); - }; + } - readonly #updateMuteIcons: () => void = () => { + #updateMuteIcons(): void { const container = this.#container, soundsOptions = container.actualOptions.sounds; @@ -645,9 +634,9 @@ export class SoundsPluginInstance implements IContainerPlugin { if (unmuteImg) { unmuteImg.style.display = container.muted ? "none" : "block"; } - }; + } - readonly #updateMuteStatus: () => Promise = async () => { + async #updateMuteStatus(): Promise { const container = this.#container, audioContext = this.#getAudioContext(); @@ -660,9 +649,9 @@ export class SoundsPluginInstance implements IContainerPlugin { this.#playMuteSound(); } - }; + } - readonly #updateVolume: () => Promise = async () => { + async #updateVolume(): Promise { const container = this.#container, soundsOptions = container.actualOptions.sounds; @@ -692,5 +681,5 @@ export class SoundsPluginInstance implements IContainerPlugin { if (this.#gain?.gain) { this.#gain.gain.value = this.#volume / percentDenominator; } - }; + } } diff --git a/plugins/sounds/src/index.lazy.ts b/plugins/sounds/src/index.lazy.ts index 7b447fcdc2f..814cc36499a 100644 --- a/plugins/sounds/src/index.lazy.ts +++ b/plugins/sounds/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSoundsPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/sounds/src/index.ts b/plugins/sounds/src/index.ts index de9470d477c..7d7b0ab1d73 100644 --- a/plugins/sounds/src/index.ts +++ b/plugins/sounds/src/index.ts @@ -4,7 +4,7 @@ import { SoundsPlugin } from "./SoundsPlugin.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSoundsPlugin(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/plugins/sounds/src/types.ts b/plugins/sounds/src/types.ts index a1bde2b79cb..2f7579bc309 100644 --- a/plugins/sounds/src/types.ts +++ b/plugins/sounds/src/types.ts @@ -1,12 +1,9 @@ -import type { Container, CustomEventArgs, IOptions, Options } from "@tsparticles/engine"; +import type { Container, IOptions, Options } from "@tsparticles/engine"; import type { ISounds } from "./Options/Interfaces/ISounds.js"; import type { ImageDisplay } from "./enums.js"; import type { Sounds } from "./Options/Classes/Sounds.js"; import type { SoundsIcon } from "./Options/Classes/SoundsIcon.js"; -/** Filter function for sound events */ -export type FilterFunction = (args: CustomEventArgs) => boolean; - /** Sounds plugin options interface */ export type ISoundsOptions = IOptions & { /** The sounds options */ diff --git a/plugins/sounds/src/utils.ts b/plugins/sounds/src/utils.ts index 8f1b8beb915..f88acab7b2f 100644 --- a/plugins/sounds/src/utils.ts +++ b/plugins/sounds/src/utils.ts @@ -28,7 +28,7 @@ notes.set("B", [30.87, 61.74, 123.47, 246.94, 493.88, 987.77, 1975.53, 3951.07, notes.set("pause", [0]); /** - * @param note - + * @param note - The note * @returns frequency */ export function getNoteFrequency(note: string): number | undefined { diff --git a/plugins/themes/CHANGELOG.md b/plugins/themes/CHANGELOG.md index f3ef690ba69..910e0c2e327 100644 --- a/plugins/themes/CHANGELOG.md +++ b/plugins/themes/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-themes diff --git a/plugins/themes/package.dist.json b/plugins/themes/package.dist.json index eca442750ad..687baf75962 100644 --- a/plugins/themes/package.dist.json +++ b/plugins/themes/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-themes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles themes plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/themes/package.json b/plugins/themes/package.json index ccb3d82ff6b..be09d20fb6c 100644 --- a/plugins/themes/package.json +++ b/plugins/themes/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-themes", - "version": "4.1.3", - "description": "tsParticles themes plugin", + "version": "4.2.0", + "description": "tsParticles plugin for supporting dark mode, light mode, and custom themes that change particle appearance", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "themes" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/themes/src/Options/Classes/Theme.ts b/plugins/themes/src/Options/Classes/Theme.ts index 9f2a8f3f51f..a8011246b0f 100644 --- a/plugins/themes/src/Options/Classes/Theme.ts +++ b/plugins/themes/src/Options/Classes/Theme.ts @@ -4,31 +4,25 @@ import { type RecursivePartial, deepExtend, isNull, + loadProperty, } from "@tsparticles/engine"; import type { ITheme } from "../Interfaces/ITheme.js"; import { ThemeDefault } from "./ThemeDefault.js"; export class Theme implements ITheme, IOptionLoader { /** Options to set the default theme */ - readonly default; + readonly default = new ThemeDefault(); /** Theme name, use it when changing theme */ - name; + name = ""; /** All options the theme will override */ options?: ISourceOptions; - constructor() { - this.name = ""; - this.default = new ThemeDefault(); - } - load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.name !== undefined) { - this.name = data.name; - } + loadProperty(this, "name", data.name); this.default.load(data.default); diff --git a/plugins/themes/src/Options/Classes/ThemeDefault.ts b/plugins/themes/src/Options/Classes/ThemeDefault.ts index 9ba53a13437..e3a4c8c2de0 100644 --- a/plugins/themes/src/Options/Classes/ThemeDefault.ts +++ b/plugins/themes/src/Options/Classes/ThemeDefault.ts @@ -1,36 +1,22 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IThemeDefault } from "../Interfaces/IThemeDefault.js"; import { ThemeMode } from "../../ThemeMode.js"; export class ThemeDefault implements IThemeDefault, IOptionLoader { /** If set to true, this theme will be switched when the mode matches the user OS theme */ - auto; + auto = false; /** Default theme mode */ - mode: ThemeMode | keyof typeof ThemeMode; + mode: ThemeMode | keyof typeof ThemeMode = ThemeMode.any; /** Sets or unsets the default flag to this theme and mode */ - value; - - constructor() { - this.auto = false; - this.mode = ThemeMode.any; - this.value = false; - } + value = false; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.auto !== undefined) { - this.auto = data.auto; - } - - if (data.mode !== undefined) { - this.mode = data.mode; - } - - if (data.value !== undefined) { - this.value = data.value; - } + loadProperty(this, "auto", data.auto); + loadProperty(this, "mode", data.mode); + loadProperty(this, "value", data.value); } } diff --git a/plugins/themes/src/ThemesPluginInstance.ts b/plugins/themes/src/ThemesPluginInstance.ts index 2c79b0cef00..c2bdde7a3fb 100644 --- a/plugins/themes/src/ThemesPluginInstance.ts +++ b/plugins/themes/src/ThemesPluginInstance.ts @@ -13,7 +13,6 @@ export class ThemesPluginInstance implements IContainerPlugin { this.#container = container; } - /** @inheritDoc */ init(): Promise { const container = this.#container; @@ -59,7 +58,7 @@ export class ThemesPluginInstance implements IContainerPlugin { /** * Manages theme media query listeners - * @param add + * @param add - The add */ manageListeners(add: boolean): void { const container = this.#container; @@ -67,19 +66,16 @@ export class ThemesPluginInstance implements IContainerPlugin { container.manageMediaMatch?.(add); } - /** @inheritDoc */ async start(): Promise { this.manageListeners(true); return Promise.resolve(); } - /** @inheritDoc */ stop(): void { this.manageListeners(false); } - /** @inheritDoc */ updateActualOptions(): boolean { const container = this.#container; @@ -93,7 +89,7 @@ export class ThemesPluginInstance implements IContainerPlugin { * @param e - the media query event * @internal */ - readonly #handleThemeChange = (e: Event): void => { + #handleThemeChange(e: Event): void { const mediaEvent = e as MediaQueryListEvent, container = this.#container, options = container.options, @@ -104,5 +100,5 @@ export class ThemesPluginInstance implements IContainerPlugin { if (theme?.default.auto) { void container.loadTheme?.(themeName); } - }; + } } diff --git a/plugins/trail/CHANGELOG.md b/plugins/trail/CHANGELOG.md index b085de0f5e4..df59600d52f 100644 --- a/plugins/trail/CHANGELOG.md +++ b/plugins/trail/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/plugin-trail + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-trail diff --git a/plugins/trail/package.dist.json b/plugins/trail/package.dist.json index 3647e5aa056..4718c32522a 100644 --- a/plugins/trail/package.dist.json +++ b/plugins/trail/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-trail", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles trail plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/trail/package.json b/plugins/trail/package.json index da4a81b29d8..c6adebbf3fa 100644 --- a/plugins/trail/package.json +++ b/plugins/trail/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-trail", - "version": "4.1.3", - "description": "tsParticles trail plugin", + "version": "4.2.0", + "description": "tsParticles plugin for creating particle motion trail effects that fade behind moving particles", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "trail" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/trail/src/Options/Classes/Trail.ts b/plugins/trail/src/Options/Classes/Trail.ts index 2a171342675..6e084230df5 100644 --- a/plugins/trail/src/Options/Classes/Trail.ts +++ b/plugins/trail/src/Options/Classes/Trail.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { type ITrail } from "../Interfaces/ITrail.js"; import { TrailFill } from "./TrailFill.js"; @@ -8,33 +8,23 @@ import { TrailFill } from "./TrailFill.js"; */ export class Trail implements ITrail, IOptionLoader { /** Enables the trail */ - enable; + enable = false; /** The trail fill options */ - readonly fill; + readonly fill = new TrailFill(); /** The trail length */ - length; - - constructor() { - this.enable = false; - this.length = 10; - this.fill = new TrailFill(); - } + length = 10; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); if (data.fill !== undefined) { this.fill.load(data.fill); } - if (data.length !== undefined) { - this.length = data.length; - } + loadProperty(this, "length", data.length); } } diff --git a/plugins/trail/src/Options/Classes/TrailFill.ts b/plugins/trail/src/Options/Classes/TrailFill.ts index 1ea46f05fc8..f08e3e266bc 100644 --- a/plugins/trail/src/Options/Classes/TrailFill.ts +++ b/plugins/trail/src/Options/Classes/TrailFill.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, OptionsColor, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { type ITrailFill } from "../Interfaces/ITrailFill.js"; export class TrailFill implements ITrailFill, IOptionLoader { @@ -14,8 +14,6 @@ export class TrailFill implements ITrailFill, IOptionLoader { this.color = OptionsColor.create(this.color, data.color); } - if (data.image !== undefined) { - this.image = data.image; - } + loadProperty(this, "image", data.image); } } diff --git a/plugins/trail/src/TrailPluginInstance.ts b/plugins/trail/src/TrailPluginInstance.ts index 004bb0c42ab..a1750ce596e 100644 --- a/plugins/trail/src/TrailPluginInstance.ts +++ b/plugins/trail/src/TrailPluginInstance.ts @@ -74,7 +74,7 @@ export class TrailPluginInstance implements IContainerPlugin { } } - readonly #initTrail: () => Promise = async () => { + async #initTrail(): Promise { const options = this.#container.actualOptions, trail = options.trail; @@ -124,5 +124,5 @@ export class TrailPluginInstance implements IContainerPlugin { img.src = trailFill.image; }); } - }; + } } diff --git a/plugins/zoom/CHANGELOG.md b/plugins/zoom/CHANGELOG.md index 5fd9538dd02..36367e4a255 100644 --- a/plugins/zoom/CHANGELOG.md +++ b/plugins/zoom/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/plugin-zoom diff --git a/plugins/zoom/package.dist.json b/plugins/zoom/package.dist.json index e7e18097905..8486b24d182 100644 --- a/plugins/zoom/package.dist.json +++ b/plugins/zoom/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/plugin-zoom", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles zoom plugin", "homepage": "https://particles.js.org", "repository": { @@ -92,7 +92,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/plugins/zoom/package.json b/plugins/zoom/package.json index af96ec040ce..b819f09c5f5 100644 --- a/plugins/zoom/package.json +++ b/plugins/zoom/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/plugin-zoom", - "version": "4.1.3", - "description": "tsParticles zoom plugin", + "version": "4.2.0", + "description": "tsParticles plugin for enabling zoom and pan interactions on the particle canvas", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin" + "typescript", + "javascript", + "tsparticles-plugin", + "zoom" ], "author": "Matteo Bruni ", "license": "MIT", @@ -102,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/plugins/zoom/src/Options/Classes/Zoom.ts b/plugins/zoom/src/Options/Classes/Zoom.ts index bdef6203704..88dd664caf0 100644 --- a/plugins/zoom/src/Options/Classes/Zoom.ts +++ b/plugins/zoom/src/Options/Classes/Zoom.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { maxZoom, minZoom } from "../../Utils/Constants.js"; import type { IZoom } from "../Interfaces/IZoom.js"; @@ -10,34 +10,20 @@ const defaultZoom = 1; */ export class Zoom implements IZoom, IOptionLoader { /** Enables or disables zoom interactions */ - enable; + enable = false; /** Maximum zoom level */ - max; + max = maxZoom; /** Minimum zoom level */ - min; - - constructor() { - this.enable = false; - this.min = minZoom; - this.max = maxZoom; - } + min = minZoom; load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.min !== undefined) { - this.min = data.min; - } - - if (data.max !== undefined) { - this.max = data.max; - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "min", data.min); + loadProperty(this, "max", data.max); } } diff --git a/plugins/zoom/src/ZoomEventListeners.ts b/plugins/zoom/src/ZoomEventListeners.ts index 6a8093d69fe..8cf3034915e 100644 --- a/plugins/zoom/src/ZoomEventListeners.ts +++ b/plugins/zoom/src/ZoomEventListeners.ts @@ -78,7 +78,7 @@ export class ZoomEventListeners { * @internal * @param event - the gesture event */ - readonly #handleGestureChange = (event: Event): void => { + #handleGestureChange(event: Event): void { const container = this.#container, canvas = container.canvas as { domElement?: HTMLCanvasElement; @@ -126,14 +126,14 @@ export class ZoomEventListeners { canvas.setZoom(newZoom, { x: centerX, y: centerY }); this.#gestureScale = scale; - }; + } /** * Handles trackpad gesture end event (Safari/macOS) * @internal * @param event - the gesture event */ - readonly #handleGestureEnd = (event: Event): void => { + #handleGestureEnd(event: Event): void { const container = this.#container, canvas = container.canvas as { domElement?: HTMLCanvasElement; @@ -157,14 +157,14 @@ export class ZoomEventListeners { event.preventDefault(); this.#gestureScale = defaultZoom; - }; + } /** * Handles trackpad gesture start event (Safari/macOS) * @internal * @param event - the gesture event */ - readonly #handleGestureStart = (event: Event): void => { + #handleGestureStart(event: Event): void { const container = this.#container, canvas = container.canvas as { domElement?: HTMLCanvasElement; @@ -188,14 +188,14 @@ export class ZoomEventListeners { event.preventDefault(); this.#gestureScale = defaultZoom; - }; + } /** * Handles mouse wheel zoom event * @internal * @param event - the wheel event */ - readonly #handleMouseWheel = (event: WheelEvent): void => { + #handleMouseWheel(event: WheelEvent): void { if (!event.ctrlKey && !event.metaKey) { return; } @@ -232,23 +232,22 @@ export class ZoomEventListeners { mouseY = (event.clientY - rect.top) * pixelRatio; canvas.setZoom(newZoom, { x: mouseX, y: mouseY }); - }; + } /** * Handles touch end and touch cancel events to reset touch distance * @internal - * @param event - the touch event */ - readonly #handleTouchEnd = (): void => { + #handleTouchEnd(): void { this.#touchDistance = initialTouchDistance; - }; + } /** * Handles touch pinch to zoom event * @internal * @param event - the touch event */ - readonly #handleTouchZoom = (event: TouchEvent): void => { + #handleTouchZoom(event: TouchEvent): void { if (event.touches.length !== touchPointsCount) { return; } @@ -304,7 +303,7 @@ export class ZoomEventListeners { canvas.setZoom(newZoom, { x: centerX, y: centerY }); this.#touchDistance = distance; - }; + } /** * Check if event is inside canvas bounds @@ -313,7 +312,7 @@ export class ZoomEventListeners { * @param canvasEl - the canvas element * @returns true if event is inside canvas */ - readonly #isEventInsideCanvas = (event: Event, canvasEl: HTMLCanvasElement): boolean => { + #isEventInsideCanvas(event: Event, canvasEl: HTMLCanvasElement): boolean { if (event.target === canvasEl) { return true; } @@ -338,13 +337,13 @@ export class ZoomEventListeners { } return false; - }; + } /** * Managing zoom event listeners * @param add - true to add listeners, false to remove */ - readonly #manageListeners: (add: boolean) => void = add => { + #manageListeners(add: boolean): void { const handlers = this.#handlers, canvas = this.#container.canvas.domElement, options = this.#container.actualOptions, @@ -373,5 +372,5 @@ export class ZoomEventListeners { manageListener(canvas, "touchmove", handlers.touchMove, add, listenerOptions); manageListener(canvas, "touchend", handlers.touchEnd, add, listenerOptions); manageListener(canvas, "touchcancel", handlers.touchEnd, add, listenerOptions); - }; + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a8b83b403b..0e99b23fcf9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,12 +1,12 @@ -lockfileVersion: '9.0' +lockfileVersion: "9.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false overrides: - '@nuxt/vue-app@2.18.1>vue': 2.7.16 - '@nuxt/vue-renderer@2.18.1>vue': 2.7.16 + "@nuxt/vue-app@2.18.1>vue": 2.7.16 + "@nuxt/vue-renderer@2.18.1>vue": 2.7.16 vue-server-renderer@2.7.16>vue: 2.7.16 vue-template-compiler@2.7.16>vue: 2.7.16 @@ -16,58 +16,57 @@ patchedDependencies: vue-server-renderer@2.7.16: 7374e4bf5b7956d7097feec494aaea43bf8f6a02e2b64e8a3cc57e19c2f65132 importers: - .: devDependencies: - '@commitlint/cli': + "@commitlint/cli": specifier: ^21.0.2 - version: 21.0.2(@types/node@25.9.1)(conventional-commits-parser@6.4.0)(typescript@6.0.3) - '@commitlint/config-conventional': + version: 21.0.2(@types/node@25.9.3)(conventional-commits-parser@6.4.0)(typescript@6.0.3) + "@commitlint/config-conventional": specifier: ^21.0.2 version: 21.0.2 - '@nx/devkit': - specifier: ^22.7.5 - version: 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@nx/js': - specifier: ^22.7.5 - version: 22.7.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@swc-node/register': + "@nx/devkit": + specifier: ^23.0.0 + version: 23.0.0(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)) + "@nx/js": + specifier: ^23.0.0 + version: 23.0.0(@babel/traverse@7.29.7)(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)) + "@swc-node/register": specifier: ^1.11.1 - version: 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3) - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/browserslist-config': - specifier: workspace:^ + version: 1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3) + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/browserslist-config": + specifier: workspace:* version: link:cli/utils/browserslist-config - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:cli/packages/cli-build - '@tsparticles/cli-nx-plugin': - specifier: workspace:^ + "@tsparticles/cli-nx-plugin": + specifier: workspace:* version: link:cli/packages/nx-plugin - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:cli/utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:cli/utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:cli/utils/prettier-config - '@tsparticles/rollup-plugin': - specifier: workspace:^ + "@tsparticles/rollup-plugin": + specifier: workspace:* version: link:cli/utils/rollup-plugin - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:cli/utils/tsconfig - '@tsparticles/webpack-plugin': - specifier: workspace:^ + "@tsparticles/webpack-plugin": + specifier: workspace:* version: link:cli/utils/webpack-config - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/webpack-env': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/webpack-env": specifier: ^1.18.8 version: 1.18.8 browserslist: @@ -80,20 +79,20 @@ importers: specifier: ^10.1.0 version: 10.1.0 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)))(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) fs-extra: specifier: ^11.3.5 version: 11.3.5 @@ -105,19 +104,19 @@ importers: version: 9.1.7 lerna: specifier: ^9.0.7 - version: 9.0.7(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)(@types/node@25.9.1)(babel-plugin-macros@3.1.0) + version: 9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@25.9.3)(babel-plugin-macros@3.1.0) nx: - specifier: ^22.7.5 - version: 22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) + specifier: ^23.0.0 + version: 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) nx-cloud: specifier: ^19.1.3 version: 19.1.3 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) puppeteer: specifier: ^25.1.0 version: 25.1.0 @@ -129,718 +128,718 @@ importers: version: 0.5.21 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) terser-webpack-plugin: specifier: ^5.6.1 - version: 5.6.1(@swc/core@1.15.40)(webpack@5.107.2) + version: 5.6.1(@swc/core@1.15.41)(webpack@5.107.2) ts-json-schema-generator: specifier: ^2.9.0 version: 2.9.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) webpack: specifier: ^5.107.2 - version: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) webpack-bundle-analyzer: specifier: ^5.3.0 version: 5.3.0 webpack-cli: specifier: ^7.0.3 - version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) yargs: specifier: ^18.0.0 version: 18.0.0 bundles/all: dependencies: - '@tsparticles/effect-bubble': + "@tsparticles/effect-bubble": specifier: workspace:* version: link:../../effects/bubble/dist - '@tsparticles/effect-filter': + "@tsparticles/effect-filter": specifier: workspace:* version: link:../../effects/filter/dist - '@tsparticles/effect-particles': + "@tsparticles/effect-particles": specifier: workspace:* version: link:../../effects/particles/dist - '@tsparticles/effect-shadow': + "@tsparticles/effect-shadow": specifier: workspace:* version: link:../../effects/shadow/dist - '@tsparticles/effect-trail': + "@tsparticles/effect-trail": specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-cannon': + "@tsparticles/interaction-external-cannon": specifier: workspace:* version: link:../../interactions/external/cannon/dist - '@tsparticles/interaction-external-particle': + "@tsparticles/interaction-external-particle": specifier: workspace:* version: link:../../interactions/external/particle/dist - '@tsparticles/interaction-external-pop': + "@tsparticles/interaction-external-pop": specifier: workspace:* version: link:../../interactions/external/pop/dist - '@tsparticles/interaction-light': + "@tsparticles/interaction-light": specifier: workspace:* version: link:../../interactions/light/dist - '@tsparticles/interaction-particles-repulse': + "@tsparticles/interaction-particles-repulse": specifier: workspace:* version: link:../../interactions/particles/repulse/dist - '@tsparticles/path-branches': + "@tsparticles/path-branches": specifier: workspace:* version: link:../../paths/branches/dist - '@tsparticles/path-brownian': + "@tsparticles/path-brownian": specifier: workspace:* version: link:../../paths/brownian/dist - '@tsparticles/path-curl-noise': + "@tsparticles/path-curl-noise": specifier: workspace:* version: link:../../paths/curlNoise/dist - '@tsparticles/path-curves': + "@tsparticles/path-curves": specifier: workspace:* version: link:../../paths/curves/dist - '@tsparticles/path-fractal-noise': + "@tsparticles/path-fractal-noise": specifier: workspace:* version: link:../../paths/fractalNoise/dist - '@tsparticles/path-grid': + "@tsparticles/path-grid": specifier: workspace:* version: link:../../paths/grid/dist - '@tsparticles/path-levy': + "@tsparticles/path-levy": specifier: workspace:* version: link:../../paths/levy/dist - '@tsparticles/path-perlin-noise': + "@tsparticles/path-perlin-noise": specifier: workspace:* version: link:../../paths/perlinNoise/dist - '@tsparticles/path-polygon': + "@tsparticles/path-polygon": specifier: workspace:* version: link:../../paths/polygon/dist - '@tsparticles/path-random': + "@tsparticles/path-random": specifier: workspace:* version: link:../../paths/random/dist - '@tsparticles/path-simplex-noise': + "@tsparticles/path-simplex-noise": specifier: workspace:* version: link:../../paths/simplexNoise/dist - '@tsparticles/path-spiral': + "@tsparticles/path-spiral": specifier: workspace:* version: link:../../paths/spiral/dist - '@tsparticles/path-svg': + "@tsparticles/path-svg": specifier: workspace:* version: link:../../paths/svg/dist - '@tsparticles/path-zig-zag': + "@tsparticles/path-zig-zag": specifier: workspace:* version: link:../../paths/zigzag/dist - '@tsparticles/plugin-background-mask': + "@tsparticles/plugin-background-mask": specifier: workspace:* version: link:../../plugins/backgroundMask/dist - '@tsparticles/plugin-canvas-mask': + "@tsparticles/plugin-canvas-mask": specifier: workspace:* version: link:../../plugins/canvasMask/dist - '@tsparticles/plugin-easing-back': + "@tsparticles/plugin-easing-back": specifier: workspace:* version: link:../../plugins/easings/back/dist - '@tsparticles/plugin-easing-bounce': + "@tsparticles/plugin-easing-bounce": specifier: workspace:* version: link:../../plugins/easings/bounce/dist - '@tsparticles/plugin-easing-circ': + "@tsparticles/plugin-easing-circ": specifier: workspace:* version: link:../../plugins/easings/circ/dist - '@tsparticles/plugin-easing-cubic': + "@tsparticles/plugin-easing-cubic": specifier: workspace:* version: link:../../plugins/easings/cubic/dist - '@tsparticles/plugin-easing-elastic': + "@tsparticles/plugin-easing-elastic": specifier: workspace:* version: link:../../plugins/easings/elastic/dist - '@tsparticles/plugin-easing-expo': + "@tsparticles/plugin-easing-expo": specifier: workspace:* version: link:../../plugins/easings/expo/dist - '@tsparticles/plugin-easing-gaussian': + "@tsparticles/plugin-easing-gaussian": specifier: workspace:* version: link:../../plugins/easings/gaussian/dist - '@tsparticles/plugin-easing-linear': + "@tsparticles/plugin-easing-linear": specifier: workspace:* version: link:../../plugins/easings/linear/dist - '@tsparticles/plugin-easing-quart': + "@tsparticles/plugin-easing-quart": specifier: workspace:* version: link:../../plugins/easings/quart/dist - '@tsparticles/plugin-easing-quint': + "@tsparticles/plugin-easing-quint": specifier: workspace:* version: link:../../plugins/easings/quint/dist - '@tsparticles/plugin-easing-sigmoid': + "@tsparticles/plugin-easing-sigmoid": specifier: workspace:* version: link:../../plugins/easings/sigmoid/dist - '@tsparticles/plugin-easing-sine': + "@tsparticles/plugin-easing-sine": specifier: workspace:* version: link:../../plugins/easings/sine/dist - '@tsparticles/plugin-easing-smoothstep': + "@tsparticles/plugin-easing-smoothstep": specifier: workspace:* version: link:../../plugins/easings/smoothstep/dist - '@tsparticles/plugin-emitters-shape-canvas': + "@tsparticles/plugin-emitters-shape-canvas": specifier: workspace:* version: link:../../plugins/emittersShapes/canvas/dist - '@tsparticles/plugin-emitters-shape-path': + "@tsparticles/plugin-emitters-shape-path": specifier: workspace:* version: link:../../plugins/emittersShapes/path/dist - '@tsparticles/plugin-emitters-shape-polygon': + "@tsparticles/plugin-emitters-shape-polygon": specifier: workspace:* version: link:../../plugins/emittersShapes/polygon/dist - '@tsparticles/plugin-export-image': + "@tsparticles/plugin-export-image": specifier: workspace:* version: link:../../plugins/exports/image/dist - '@tsparticles/plugin-export-json': + "@tsparticles/plugin-export-json": specifier: workspace:* version: link:../../plugins/exports/json/dist - '@tsparticles/plugin-export-video': + "@tsparticles/plugin-export-video": specifier: workspace:* version: link:../../plugins/exports/video/dist - '@tsparticles/plugin-hsv-color': + "@tsparticles/plugin-hsv-color": specifier: workspace:* version: link:../../plugins/colors/hsv/dist - '@tsparticles/plugin-hwb-color': + "@tsparticles/plugin-hwb-color": specifier: workspace:* version: link:../../plugins/colors/hwb/dist - '@tsparticles/plugin-infection': + "@tsparticles/plugin-infection": specifier: workspace:* version: link:../../plugins/infection/dist - '@tsparticles/plugin-lab-color': + "@tsparticles/plugin-lab-color": specifier: workspace:* version: link:../../plugins/colors/lab/dist - '@tsparticles/plugin-lch-color': + "@tsparticles/plugin-lch-color": specifier: workspace:* version: link:../../plugins/colors/lch/dist - '@tsparticles/plugin-manual-particles': + "@tsparticles/plugin-manual-particles": specifier: workspace:* version: link:../../plugins/manualParticles/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/plugin-named-color': + "@tsparticles/plugin-named-color": specifier: workspace:* version: link:../../plugins/colors/named/dist - '@tsparticles/plugin-oklab-color': + "@tsparticles/plugin-oklab-color": specifier: workspace:* version: link:../../plugins/colors/oklab/dist - '@tsparticles/plugin-oklch-color': + "@tsparticles/plugin-oklch-color": specifier: workspace:* version: link:../../plugins/colors/oklch/dist - '@tsparticles/plugin-poisson-disc': + "@tsparticles/plugin-poisson-disc": specifier: workspace:* version: link:../../plugins/poisson/dist - '@tsparticles/plugin-polygon-mask': + "@tsparticles/plugin-polygon-mask": specifier: workspace:* version: link:../../plugins/polygonMask/dist - '@tsparticles/plugin-responsive': + "@tsparticles/plugin-responsive": specifier: workspace:* version: link:../../plugins/responsive/dist - '@tsparticles/plugin-sounds': + "@tsparticles/plugin-sounds": specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/plugin-themes': + "@tsparticles/plugin-themes": specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/plugin-zoom': + "@tsparticles/plugin-zoom": specifier: workspace:* version: link:../../plugins/zoom/dist - '@tsparticles/shape-arrow': + "@tsparticles/shape-arrow": specifier: workspace:* version: link:../../shapes/arrow/dist - '@tsparticles/shape-cards': + "@tsparticles/shape-cards": specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-cog': + "@tsparticles/shape-cog": specifier: workspace:* version: link:../../shapes/cog/dist - '@tsparticles/shape-heart': + "@tsparticles/shape-heart": specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-infinity': + "@tsparticles/shape-infinity": specifier: workspace:* version: link:../../shapes/infinity/dist - '@tsparticles/shape-matrix': + "@tsparticles/shape-matrix": specifier: workspace:* version: link:../../shapes/matrix/dist - '@tsparticles/shape-path': + "@tsparticles/shape-path": specifier: workspace:* version: link:../../shapes/path/dist - '@tsparticles/shape-ribbon': + "@tsparticles/shape-ribbon": specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/shape-rounded-polygon': + "@tsparticles/shape-rounded-polygon": specifier: workspace:* version: link:../../shapes/rounded-polygon/dist - '@tsparticles/shape-rounded-rect': + "@tsparticles/shape-rounded-rect": specifier: workspace:* version: link:../../shapes/rounded-rect/dist - '@tsparticles/shape-spiral': + "@tsparticles/shape-spiral": specifier: workspace:* version: link:../../shapes/spiral/dist - '@tsparticles/shape-squircle': + "@tsparticles/shape-squircle": specifier: workspace:* version: link:../../shapes/squircle/dist - '@tsparticles/updater-gradient': + "@tsparticles/updater-gradient": specifier: workspace:* version: link:../../updaters/gradient/dist - '@tsparticles/updater-orbit': + "@tsparticles/updater-orbit": specifier: workspace:* version: link:../../updaters/orbit/dist tsparticles: specifier: workspace:* version: link:../full/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/basic: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-blend': + "@tsparticles/plugin-blend": specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-hex-color': + "@tsparticles/plugin-hex-color": specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': + "@tsparticles/plugin-hsl-color": specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-rgb-color': + "@tsparticles/plugin-rgb-color": specifier: workspace:* version: link:../../plugins/colors/rgb/dist - '@tsparticles/shape-circle': + "@tsparticles/shape-circle": specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/updater-opacity': + "@tsparticles/updater-opacity": specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': + "@tsparticles/updater-out-modes": specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-size': + "@tsparticles/updater-size": specifier: workspace:* version: link:../../updaters/size/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/confetti: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-cards': + "@tsparticles/shape-cards": specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-emoji': + "@tsparticles/shape-emoji": specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': + "@tsparticles/shape-heart": specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-image': + "@tsparticles/shape-image": specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-polygon': + "@tsparticles/shape-polygon": specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-star': + "@tsparticles/shape-star": specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/fireworks: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-blend': + "@tsparticles/plugin-blend": specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-sounds': + "@tsparticles/plugin-sounds": specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/shape-line': + "@tsparticles/shape-line": specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/full: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-drag': + "@tsparticles/interaction-external-drag": specifier: workspace:* version: link:../../interactions/external/drag/dist - '@tsparticles/interaction-external-trail': + "@tsparticles/interaction-external-trail": specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/plugin-absorbers': + "@tsparticles/plugin-absorbers": specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-circle': + "@tsparticles/plugin-emitters-shape-circle": specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/shape-text': + "@tsparticles/shape-text": specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../slim/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': + "@tsparticles/updater-twinkle": specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/particles: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-particles-collisions': + "@tsparticles/interaction-particles-collisions": specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/pjs: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-responsive': + "@tsparticles/plugin-responsive": specifier: workspace:* version: link:../../plugins/responsive/dist tsparticles: specifier: workspace:* version: link:../full/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist publishDirectory: dist bundles/ribbons: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-ribbon': + "@tsparticles/shape-ribbon": specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist bundles/slim: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-attract': + "@tsparticles/interaction-external-attract": specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': + "@tsparticles/interaction-external-bounce": specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': + "@tsparticles/interaction-external-bubble": specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-connect': + "@tsparticles/interaction-external-connect": specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-destroy': + "@tsparticles/interaction-external-destroy": specifier: workspace:* version: link:../../interactions/external/destroy/dist - '@tsparticles/interaction-external-grab': + "@tsparticles/interaction-external-grab": specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': + "@tsparticles/interaction-external-parallax": specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-pause': + "@tsparticles/interaction-external-pause": specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-push': + "@tsparticles/interaction-external-push": specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': + "@tsparticles/interaction-external-remove": specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': + "@tsparticles/interaction-external-repulse": specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': + "@tsparticles/interaction-external-slow": specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-particles-attract': + "@tsparticles/interaction-particles-attract": specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': + "@tsparticles/interaction-particles-collisions": specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/plugin-easing-quad': + "@tsparticles/plugin-easing-quad": specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/shape-emoji': + "@tsparticles/shape-emoji": specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-image': + "@tsparticles/shape-image": specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-line': + "@tsparticles/shape-line": specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-polygon': + "@tsparticles/shape-polygon": specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-star': + "@tsparticles/shape-star": specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist cli/commands/build: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/cli-command-build-bundle-rollup': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/cli-command-build-bundle-rollup": + specifier: workspace:* version: link:../build-bundle-rollup - '@tsparticles/cli-command-build-bundle-webpack': - specifier: workspace:^ + "@tsparticles/cli-command-build-bundle-webpack": + specifier: workspace:* version: link:../build-bundle-webpack - '@tsparticles/cli-command-build-circular-deps': - specifier: workspace:^ + "@tsparticles/cli-command-build-circular-deps": + specifier: workspace:* version: link:../build-circular-deps - '@tsparticles/cli-command-build-clear': - specifier: workspace:^ + "@tsparticles/cli-command-build-clear": + specifier: workspace:* version: link:../build-clear - '@tsparticles/cli-command-build-distfiles': - specifier: workspace:^ + "@tsparticles/cli-command-build-distfiles": + specifier: workspace:* version: link:../build-distfiles - '@tsparticles/cli-command-build-diststats': - specifier: workspace:^ + "@tsparticles/cli-command-build-diststats": + specifier: workspace:* version: link:../build-diststats - '@tsparticles/cli-command-build-eslint': - specifier: workspace:^ + "@tsparticles/cli-command-build-eslint": + specifier: workspace:* version: link:../build-eslint - '@tsparticles/cli-command-build-prettier': - specifier: workspace:^ + "@tsparticles/cli-command-build-prettier": + specifier: workspace:* version: link:../build-prettier - '@tsparticles/cli-command-build-tsc': - specifier: workspace:^ + "@tsparticles/cli-command-build-tsc": + specifier: workspace:* version: link:../build-tsc - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig - '@tsparticles/webpack-plugin': - specifier: workspace:^ + "@tsparticles/webpack-plugin": + specifier: workspace:* version: link:../../utils/webpack-config dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -851,11 +850,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -864,30 +863,30 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) webpack: specifier: ^5.107.2 - version: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3) + version: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 - '@types/webpack-env': + "@types/webpack-env": specifier: ^1.18.8 version: 1.18.8 browserslist: @@ -904,58 +903,58 @@ importers: version: 10.1.0 terser-webpack-plugin: specifier: ^5.6.1 - version: 5.6.1(@swc/core@1.15.40)(esbuild@0.28.0)(webpack@5.107.2) + version: 5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.107.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) webpack-bundle-analyzer: specifier: ^5.3.0 version: 5.3.0 webpack-cli: specifier: ^7.0.3 - version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) cli/commands/build-bundle-rollup: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/rollup-plugin': - specifier: workspace:^ + "@tsparticles/rollup-plugin": + specifier: workspace:* version: link:../../utils/rollup-plugin - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -966,11 +965,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -978,28 +977,28 @@ importers: specifier: ^6.1.3 version: 6.1.3 rollup: - specifier: ^4.60.4 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1016,49 +1015,49 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) cli/commands/build-bundle-webpack: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig - '@tsparticles/webpack-plugin': - specifier: workspace:^ + "@tsparticles/webpack-plugin": + specifier: workspace:* version: link:../../utils/webpack-config dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1069,11 +1068,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1082,30 +1081,30 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) webpack: specifier: ^5.107.2 - version: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3) + version: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 - '@types/webpack-env': + "@types/webpack-env": specifier: ^1.18.8 version: 1.18.8 browserslist: @@ -1122,55 +1121,55 @@ importers: version: 10.1.0 terser-webpack-plugin: specifier: ^5.6.1 - version: 5.6.1(@swc/core@1.15.40)(esbuild@0.28.0)(webpack@5.107.2) + version: 5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.107.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) webpack-bundle-analyzer: specifier: ^5.3.0 version: 5.3.0 webpack-cli: specifier: ^7.0.3 - version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) cli/commands/build-circular-deps: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1181,11 +1180,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1194,24 +1193,24 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1228,43 +1227,43 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-clear: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1275,11 +1274,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1288,24 +1287,24 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1322,43 +1321,43 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-distfiles: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1369,11 +1368,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1382,24 +1381,24 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1416,43 +1415,43 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-diststats: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1463,33 +1462,33 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) rimraf: specifier: ^6.1.3 version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -1501,40 +1500,40 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-eslint: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1545,11 +1544,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1558,24 +1557,24 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1591,47 +1590,47 @@ importers: specifier: ^10.1.0 version: 10.1.0 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-prettier: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1641,9 +1640,12 @@ importers: path-scurry: specifier: ^2.0.2 version: 2.0.2 + prettier: + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1652,24 +1654,24 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1684,48 +1686,45 @@ importers: cross-env: specifier: ^10.1.0 version: 10.1.0 - prettier: - specifier: ^3.8.3 - version: 3.8.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) cli/commands/build-tsc: dependencies: - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -1736,11 +1735,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -1749,21 +1748,21 @@ importers: version: 6.1.3 swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1780,76 +1779,79 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create: dependencies: - '@tsparticles/cli-command-create-bundle': - specifier: workspace:^ + "@tsparticles/cli-command-create-app": + specifier: workspace:* + version: link:../create-app + "@tsparticles/cli-command-create-bundle": + specifier: workspace:* version: link:../create-bundle - '@tsparticles/cli-command-create-effect': - specifier: workspace:^ + "@tsparticles/cli-command-create-effect": + specifier: workspace:* version: link:../create-effect - '@tsparticles/cli-command-create-interaction': - specifier: workspace:^ + "@tsparticles/cli-command-create-interaction": + specifier: workspace:* version: link:../create-interaction - '@tsparticles/cli-command-create-palette': - specifier: workspace:^ + "@tsparticles/cli-command-create-palette": + specifier: workspace:* version: link:../create-palette - '@tsparticles/cli-command-create-path': - specifier: workspace:^ + "@tsparticles/cli-command-create-path": + specifier: workspace:* version: link:../create-path - '@tsparticles/cli-command-create-plugin': - specifier: workspace:^ + "@tsparticles/cli-command-create-plugin": + specifier: workspace:* version: link:../create-plugin - '@tsparticles/cli-command-create-preset': - specifier: workspace:^ + "@tsparticles/cli-command-create-preset": + specifier: workspace:* version: link:../create-preset - '@tsparticles/cli-command-create-shape': - specifier: workspace:^ + "@tsparticles/cli-command-create-shape": + specifier: workspace:* version: link:../create-shape - '@tsparticles/cli-command-create-updater': - specifier: workspace:^ + "@tsparticles/cli-command-create-updater": + specifier: workspace:* version: link:../create-updater - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 rimraf: specifier: ^6.1.3 version: 6.1.3 @@ -1857,19 +1859,19 @@ importers: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -1886,59 +1888,135 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + + cli/commands/create-app: + dependencies: + "@tsparticles/cli-create-utils": + specifier: workspace:* + version: link:../create-utils + "@tsparticles/depcruise-config": + specifier: workspace:* + version: link:../../utils/depcruise-config + "@tsparticles/eslint-config": + specifier: workspace:* + version: link:../../utils/eslint-config + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + "@tsparticles/tsconfig": + specifier: workspace:* + version: link:../../utils/tsconfig + dependency-cruiser: + specifier: ^17.4.3 + version: 17.4.3 + eslint: + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-jsdoc: + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-prettier: + specifier: ^5.5.6 + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) + eslint-plugin-tsdoc: + specifier: ^0.5.2 + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + prettier: + specifier: ^3.8.4 + version: 3.8.4 + prettier-plugin-multiline-arrays: + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) + prompts: + specifier: ^2.4.2 + version: 2.4.2 + devDependencies: + "@types/estree": + specifier: ^1.0.9 + version: 1.0.9 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": + specifier: ^2.4.9 + version: 2.4.9 + browserslist: + specifier: ^4.28.2 + version: 4.28.2 + commander: + specifier: ^15.0.0 + version: 15.0.0 + copyfiles: + specifier: ^2.4.1 + version: 2.4.1 + cross-env: + specifier: ^10.1.0 + version: 10.1.0 + rimraf: + specifier: ^6.1.3 + version: 6.1.3 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) + typescript: + specifier: ^6.0.3 + version: 6.0.3 cli/commands/create-bundle: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -1956,59 +2034,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-effect: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2026,59 +2104,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-interaction: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2096,59 +2174,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-palette: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2166,59 +2244,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-path: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2236,59 +2314,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-plugin: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2306,59 +2384,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-preset: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2376,59 +2454,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-shape: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2446,59 +2524,59 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-updater: dependencies: - '@tsparticles/cli-create-utils': - specifier: workspace:^ + "@tsparticles/cli-create-utils": + specifier: workspace:* version: link:../create-utils - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 browserslist: specifier: ^4.28.2 version: 4.28.2 @@ -2516,27 +2594,27 @@ importers: version: 6.1.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 cli/commands/create-utils: dependencies: - '@tsparticles/depcruise-config': - specifier: workspace:^ + "@tsparticles/depcruise-config": + specifier: workspace:* version: link:../../utils/depcruise-config - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/eslint-config': - specifier: workspace:^ + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig commander: specifier: ^15.0.0 @@ -2545,20 +2623,20 @@ importers: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) klaw: specifier: ^4.1.0 version: 4.1.0 @@ -2569,11 +2647,11 @@ importers: specifier: ^2.0.2 version: 2.0.2 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) prompts: specifier: ^2.4.2 version: 2.4.2 @@ -2584,19 +2662,19 @@ importers: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/estree': + "@types/estree": specifier: ^1.0.9 version: 1.0.9 - '@types/klaw': + "@types/klaw": specifier: ^3.0.7 version: 3.0.7 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/prompts': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/prompts": specifier: ^2.4.9 version: 2.4.9 browserslist: @@ -2610,72 +2688,122 @@ importers: version: 10.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) cli/packages/cli-build: dependencies: - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../commands/build commander: specifier: ^15.0.0 version: 15.0.0 devDependencies: - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config cli/packages/cli-create: dependencies: - '@tsparticles/cli-command-create': - specifier: workspace:^ + "@tsparticles/cli-command-create": + specifier: workspace:* version: link:../../commands/create commander: specifier: ^15.0.0 version: 15.0.0 devDependencies: - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + + cli/packages/create-404: + dependencies: + "@tsparticles/cli-create": + specifier: workspace:* + version: link:../cli-create + devDependencies: + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + + cli/packages/create-confetti: + dependencies: + "@tsparticles/cli-create": + specifier: workspace:* + version: link:../cli-create + devDependencies: + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + + cli/packages/create-particles: + dependencies: + "@tsparticles/cli-create": + specifier: workspace:* + version: link:../cli-create + devDependencies: + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + + cli/packages/create-ribbons: + dependencies: + "@tsparticles/cli-create": + specifier: workspace:* + version: link:../cli-create + devDependencies: + "@tsparticles/prettier-config": + specifier: workspace:* + version: link:../../utils/prettier-config + + cli/packages/create-tsparticles: + dependencies: + "@tsparticles/cli-create": + specifier: workspace:* + version: link:../cli-create + devDependencies: + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config cli/packages/nx-plugin: dependencies: - '@nx/devkit': - specifier: ^22.7.2 - version: 22.7.4(nx@22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@tsparticles/eslint-config': - specifier: workspace:^ + "@nx/devkit": + specifier: ^22.7.5 + version: 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41)) + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../../utils/eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../utils/prettier-config - '@tsparticles/tsconfig': - specifier: workspace:^ + "@tsparticles/tsconfig": + specifier: workspace:* version: link:../../utils/tsconfig eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + specifier: ^5.5.6 + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) rimraf: specifier: ^6.1.3 version: 6.1.3 @@ -2683,18 +2811,18 @@ importers: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) vitest: - specifier: ^4.1.7 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) devDependencies: - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 nx: - specifier: ^22.7.2 - version: 22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) + specifier: ^22.7.5 + version: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) cli/utils/browserslist-config: devDependencies: @@ -2707,159 +2835,159 @@ importers: cli/utils/depcruise-config: devDependencies: - '@stylistic/eslint-plugin': + "@stylistic/eslint-plugin": specifier: ^5.10.0 - version: 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/eslint-config': - specifier: workspace:^ + version: 5.10.0(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../prettier-config - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 dependency-cruiser: specifier: ^17.4.3 version: 17.4.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) tsdown: - specifier: ^0.22.1 - version: 0.22.1(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(publint@0.3.21)(typescript@6.0.3) + specifier: ^0.22.3 + version: 0.22.3(oxc-resolver@11.20.0)(publint@0.3.21)(typescript@6.0.3)(vue-tsc@3.3.5(typescript@6.0.3)) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) cli/utils/eslint-config: dependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@stylistic/eslint-plugin': + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@stylistic/eslint-plugin": specifier: ^5.10.0 - version: 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/prettier-config': - specifier: workspace:^ + version: 5.10.0(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../prettier-config eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.6 - version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) jiti: specifier: ^2.7.0 version: 2.7.0 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) devDependencies: - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) cli/utils/prettier-config: dependencies: prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) devDependencies: cpx2: specifier: ^9.0.0 version: 9.0.0 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 cli/utils/rollup-plugin: dependencies: - '@rollup/plugin-node-resolve': + "@rollup/plugin-node-resolve": specifier: ^16.0.3 - version: 16.0.3(rollup@4.60.4) - '@rollup/plugin-replace': + version: 16.0.3(rollup@4.62.0) + "@rollup/plugin-replace": specifier: ^6.0.3 - version: 6.0.3(rollup@4.60.4) - '@rollup/plugin-terser': + version: 6.0.3(rollup@4.62.0) + "@rollup/plugin-terser": specifier: ^1.0.0 - version: 1.0.0(rollup@4.60.4) - '@stylistic/eslint-plugin': + version: 1.0.0(rollup@4.62.0) + "@stylistic/eslint-plugin": specifier: ^5.10.0 - version: 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/eslint-config': - specifier: workspace:^ + version: 5.10.0(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../prettier-config eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) rollup: specifier: ^4 - version: 4.60.4 + version: 4.62.0 rollup-plugin-visualizer: specifier: ^7.0.1 - version: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + version: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) devDependencies: - '@rollup/plugin-typescript': + "@rollup/plugin-typescript": specifier: ^12.3.0 - version: 12.3.0(rollup@4.60.4)(tslib@2.8.1)(typescript@6.0.3) - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + version: 12.3.0(rollup@4.62.0)(tslib@2.8.1)(typescript@6.0.3) + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 rimraf: specifier: ^6.1.3 version: 6.1.3 @@ -2867,8 +2995,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) cli/utils/tsconfig: devDependencies: @@ -2881,65 +3009,65 @@ importers: cli/utils/webpack-config: dependencies: - '@stylistic/eslint-plugin': + "@stylistic/eslint-plugin": specifier: ^5.10.0 - version: 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40 - '@tsparticles/eslint-config': - specifier: workspace:^ + version: 5.10.0(eslint@10.5.0(jiti@2.7.0)) + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 + "@tsparticles/eslint-config": + specifier: workspace:* version: link:../eslint-config - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../prettier-config browserslist: specifier: ^4.28.2 version: 4.28.2 eslint: - specifier: ^10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^63.0.0 - version: 63.0.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-tsdoc: specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-multiline-arrays: - specifier: ^4.1.8 - version: 4.1.8(prettier@3.8.3) + specifier: ^4.1.9 + version: 4.1.9(prettier@3.8.4) swc-loader: specifier: ^0.2.7 - version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2) + version: 0.2.7(@swc/core@1.15.41)(webpack@5.107.2) terser-webpack-plugin: specifier: ^5.6.1 - version: 5.6.1(@swc/core@1.15.40)(webpack@5.107.2) + version: 5.6.1(@swc/core@1.15.41)(webpack@5.107.2) typescript: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) webpack-bundle-analyzer: specifier: ^5.3.0 version: 5.3.0 webpack-cli: specifier: ^7.0.3 - version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) devDependencies: - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@types/webpack-bundle-analyzer': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/webpack-bundle-analyzer": specifier: ^4.7.0 - version: 4.7.0(@swc/core@1.15.40)(webpack-cli@7.0.3) - '@types/webpack-env': + version: 4.7.0(@swc/core@1.15.41)(webpack-cli@7.0.3) + "@types/webpack-env": specifier: ^1.18.8 version: 1.18.8 rimraf: @@ -2947,231 +3075,231 @@ importers: version: 6.1.3 webpack: specifier: ^5.107.2 - version: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) demo/angular: dependencies: - '@angular/animations': - specifier: ~21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/common': - specifier: ~21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/compiler': - specifier: ~21.2.14 - version: 21.2.14 - '@angular/core': - specifier: ~21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': - specifier: ~21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: ~21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/platform-browser-dynamic': - specifier: ~21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))) - '@angular/router': - specifier: ~21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@tsparticles/angular': - specifier: workspace:^ + "@angular/common": + specifier: ~22.0.1 + version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/compiler": + specifier: ~22.0.1 + version: 22.0.1 + "@angular/core": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/platform-browser": + specifier: ~22.0.1 + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/platform-browser-dynamic": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + "@angular/router": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@tsparticles/angular": + specifier: workspace:* version: link:../../wrappers/angular/dist/ng-particles - '@tsparticles/basic': - specifier: workspace:^ + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist + "@tsparticles/basic": + specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/canvas-utils': - specifier: workspace:^ + "@tsparticles/canvas-utils": + specifier: workspace:* version: link:../../utils/canvasUtils/dist - '@tsparticles/confetti': - specifier: workspace:^ + "@tsparticles/confetti": + specifier: workspace:* version: link:../../bundles/confetti/dist - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/effect-trail': - specifier: workspace:^ + "@tsparticles/effect-trail": + specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/fireworks': - specifier: workspace:^ + "@tsparticles/fireworks": + specifier: workspace:* version: link:../../bundles/fireworks/dist - '@tsparticles/interaction-external-attract': - specifier: workspace:^ + "@tsparticles/interaction-external-attract": + specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': - specifier: workspace:^ + "@tsparticles/interaction-external-bounce": + specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': - specifier: workspace:^ + "@tsparticles/interaction-external-bubble": + specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-connect': - specifier: workspace:^ + "@tsparticles/interaction-external-connect": + specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-destroy': - specifier: workspace:^ + "@tsparticles/interaction-external-destroy": + specifier: workspace:* version: link:../../interactions/external/destroy/dist - '@tsparticles/interaction-external-drag': - specifier: workspace:^ + "@tsparticles/interaction-external-drag": + specifier: workspace:* version: link:../../interactions/external/drag/dist - '@tsparticles/interaction-external-grab': - specifier: workspace:^ + "@tsparticles/interaction-external-grab": + specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': - specifier: workspace:^ + "@tsparticles/interaction-external-parallax": + specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-pause': - specifier: workspace:^ + "@tsparticles/interaction-external-pause": + specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-push': - specifier: workspace:^ + "@tsparticles/interaction-external-push": + specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': - specifier: workspace:^ + "@tsparticles/interaction-external-remove": + specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': - specifier: workspace:^ + "@tsparticles/interaction-external-repulse": + specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': - specifier: workspace:^ + "@tsparticles/interaction-external-slow": + specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-external-trail': - specifier: workspace:^ + "@tsparticles/interaction-external-trail": + specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/interaction-particles-attract': - specifier: workspace:^ + "@tsparticles/interaction-particles-attract": + specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': - specifier: workspace:^ + "@tsparticles/interaction-particles-collisions": + specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': - specifier: workspace:^ + "@tsparticles/interaction-particles-links": + specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/path-utils': - specifier: workspace:^ + "@tsparticles/path-utils": + specifier: workspace:* version: link:../../utils/pathUtils/dist - '@tsparticles/pjs': - specifier: workspace:^ + "@tsparticles/pjs": + specifier: workspace:* version: link:../../bundles/pjs/dist - '@tsparticles/plugin-absorbers': - specifier: workspace:^ + "@tsparticles/plugin-absorbers": + specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-blend': - specifier: workspace:^ + "@tsparticles/plugin-blend": + specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-easing-quad': - specifier: workspace:^ + "@tsparticles/plugin-easing-quad": + specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-emitters': - specifier: workspace:^ + "@tsparticles/plugin-emitters": + specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-circle': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-circle": + specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-square': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-square": + specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-hex-color': - specifier: workspace:^ + "@tsparticles/plugin-hex-color": + specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': - specifier: workspace:^ + "@tsparticles/plugin-hsl-color": + specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-interactivity': - specifier: workspace:^ + "@tsparticles/plugin-interactivity": + specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-motion': - specifier: workspace:^ + "@tsparticles/plugin-motion": + specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/plugin-move': - specifier: workspace:^ + "@tsparticles/plugin-move": + specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-polygon-mask': - specifier: workspace:^ + "@tsparticles/plugin-polygon-mask": + specifier: workspace:* version: link:../../plugins/polygonMask/dist - '@tsparticles/plugin-rgb-color': - specifier: workspace:^ + "@tsparticles/plugin-rgb-color": + specifier: workspace:* version: link:../../plugins/colors/rgb/dist - '@tsparticles/plugin-sounds': - specifier: workspace:^ + "@tsparticles/plugin-sounds": + specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/shape-cards': - specifier: workspace:^ + "@tsparticles/shape-cards": + specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-circle': - specifier: workspace:^ + "@tsparticles/shape-circle": + specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/shape-emoji': - specifier: workspace:^ + "@tsparticles/shape-emoji": + specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': - specifier: workspace:^ + "@tsparticles/shape-heart": + specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-image': - specifier: workspace:^ + "@tsparticles/shape-image": + specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-line': - specifier: workspace:^ + "@tsparticles/shape-line": + specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-polygon': - specifier: workspace:^ + "@tsparticles/shape-polygon": + specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-ribbon': - specifier: workspace:^ + "@tsparticles/shape-ribbon": + specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/shape-square': - specifier: workspace:^ + "@tsparticles/shape-square": + specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-star': - specifier: workspace:^ + "@tsparticles/shape-star": + specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/shape-text': - specifier: workspace:^ + "@tsparticles/shape-text": + specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/slim': - specifier: workspace:^ + "@tsparticles/slim": + specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/updater-destroy': - specifier: workspace:^ + "@tsparticles/updater-destroy": + specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': - specifier: workspace:^ + "@tsparticles/updater-life": + specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': - specifier: workspace:^ + "@tsparticles/updater-opacity": + specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': - specifier: workspace:^ + "@tsparticles/updater-out-modes": + specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': - specifier: workspace:^ + "@tsparticles/updater-paint": + specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': - specifier: workspace:^ + "@tsparticles/updater-roll": + specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': - specifier: workspace:^ + "@tsparticles/updater-rotate": + specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': - specifier: workspace:^ + "@tsparticles/updater-size": + specifier: workspace:* version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': - specifier: workspace:^ + "@tsparticles/updater-tilt": + specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': - specifier: workspace:^ + "@tsparticles/updater-twinkle": + specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': - specifier: workspace:^ + "@tsparticles/updater-wobble": + specifier: workspace:* version: link:../../updaters/wobble/dist angular-confetti: - specifier: workspace:^ + specifier: workspace:* version: link:../../wrappers/angular-confetti/dist/ng-confetti angular-fireworks: - specifier: workspace:^ + specifier: workspace:* version: link:../../wrappers/angular-fireworks/dist/ng-fireworks rxjs: specifier: ~7.8.2 @@ -3180,264 +3308,270 @@ importers: specifier: ^2.8.1 version: 2.8.1 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist zone.js: specifier: ~0.16.2 version: 0.16.2 devDependencies: - '@angular-devkit/build-angular': - specifier: ~21.2.12 - version: 21.2.12(b43932d0cb8a4dc91b61bc3a245b71dc) - '@angular/cli': - specifier: ~21.2.12 - version: 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - '@angular/compiler-cli': - specifier: ~21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@types/jasmine': + "@angular/build": + specifier: 22.0.1 + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + "@angular/cli": + specifier: ~22.0.1 + version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + "@angular/compiler-cli": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@types/jasmine": specifier: ~6.0.0 version: 6.0.0 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 jasmine-core: - specifier: ~6.2.0 - version: 6.2.0 + specifier: ~6.3.0 + version: 6.3.0 karma: specifier: ~6.4.4 - version: 6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chrome-launcher: specifier: ~3.2.0 version: 3.2.0 karma-coverage: specifier: ~2.2.1 - version: 2.2.1 + version: 2.2.1(supports-color@8.1.1) karma-jasmine: specifier: ~5.1.0 version: 5.1.0(karma@6.4.4) karma-jasmine-html-reporter: specifier: ~2.2.0 - version: 2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + version: 2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: ~6.0.3 + version: 6.0.3 demo/astro: dependencies: - '@tsparticles/astro': - specifier: workspace:^ + "@tsparticles/astro": + specifier: workspace:* version: link:../../wrappers/astro - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist astro: - specifier: ^6.1.6 - version: 6.3.7(@types/node@25.9.1)(db0@0.3.4)(ioredis@5.10.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^6.4.7 + version: 6.4.7(@types/node@25.9.3)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@astrojs/check': - specifier: ^0.9.8 - version: 0.9.9(prettier-plugin-astro@0.14.1)(prettier@3.8.3)(typescript@5.9.3) + "@astrojs/check": + specifier: ^0.9.9 + version: 0.9.9(prettier-plugin-astro@0.14.1)(prettier@3.8.4)(typescript@6.0.3) typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 demo/electron: dependencies: - '@tsparticles/basic': + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../utils/canvasUtils/dist - '@tsparticles/configs': + "@tsparticles/configs": specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-attract': + "@tsparticles/interaction-external-attract": specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': + "@tsparticles/interaction-external-bounce": specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': + "@tsparticles/interaction-external-bubble": specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-connect': + "@tsparticles/interaction-external-connect": specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-destroy': + "@tsparticles/interaction-external-destroy": specifier: workspace:* version: link:../../interactions/external/destroy/dist - '@tsparticles/interaction-external-drag': + "@tsparticles/interaction-external-drag": specifier: workspace:* version: link:../../interactions/external/drag/dist - '@tsparticles/interaction-external-grab': + "@tsparticles/interaction-external-grab": specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': + "@tsparticles/interaction-external-parallax": specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-pause': + "@tsparticles/interaction-external-pause": specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-push': + "@tsparticles/interaction-external-push": specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': + "@tsparticles/interaction-external-remove": specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': + "@tsparticles/interaction-external-repulse": specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': + "@tsparticles/interaction-external-slow": specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-external-trail': + "@tsparticles/interaction-external-trail": specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/interaction-particles-attract': + "@tsparticles/interaction-particles-attract": specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': + "@tsparticles/interaction-particles-collisions": specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/plugin-absorbers': + "@tsparticles/plugin-absorbers": specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-blend': + "@tsparticles/plugin-blend": specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-easing-quad': + "@tsparticles/plugin-easing-quad": specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-circle': + "@tsparticles/plugin-emitters-shape-circle": specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-hex-color': + "@tsparticles/plugin-hex-color": specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': + "@tsparticles/plugin-hsl-color": specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-rgb-color': + "@tsparticles/plugin-rgb-color": specifier: workspace:* version: link:../../plugins/colors/rgb/dist - '@tsparticles/shape-circle': + "@tsparticles/shape-circle": specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/shape-emoji': + "@tsparticles/shape-emoji": specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-image': + "@tsparticles/shape-image": specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-line': + "@tsparticles/shape-line": specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-polygon': + "@tsparticles/shape-polygon": specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-star': + "@tsparticles/shape-star": specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/shape-text': + "@tsparticles/shape-text": specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': + "@tsparticles/updater-opacity": specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': + "@tsparticles/updater-out-modes": specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': + "@tsparticles/updater-size": specifier: workspace:* version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': + "@tsparticles/updater-twinkle": specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist tsparticles: specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@electron/asar': + "@electron-internal/extract-zip": + specifier: ^1.0.3 + version: 1.0.3 + "@electron/asar": specifier: ^4.2.0 version: 4.2.0 - '@electron/get': + "@electron/get": specifier: ^5.0.0 - version: 5.0.0 - '@electron/notarize': + version: 5.0.0(supports-color@8.1.1) + "@electron/notarize": specifier: ^3.1.1 - version: 3.1.1 - '@electron/osx-sign': + version: 3.1.1(supports-color@8.1.1) + "@electron/osx-sign": specifier: ^2.4.0 - version: 2.4.0 - '@electron/packager': - specifier: ^20.0.0 - version: 20.0.0 - '@electron/universal': + version: 2.4.0(supports-color@8.1.1) + "@electron/packager": + specifier: ^20.0.1 + version: 20.0.1(supports-color@8.1.1) + "@electron/universal": specifier: ^3.0.4 version: 3.0.4 - '@electron/windows-sign': + "@electron/windows-sign": specifier: ^2.0.3 version: 2.0.3 - '@malept/cross-spawn-promise': + "@malept/cross-spawn-promise": specifier: ^2.0.0 version: 2.0.0 - '@sec-ant/readable-stream': + "@sec-ant/readable-stream": specifier: ^0.7.0 version: 0.7.0 - '@types/node': - specifier: ^25.9.1 - version: 25.9.1 - '@xmldom/xmldom': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@xmldom/xmldom": specifier: ^0.9.10 version: 0.9.10 author-regex: @@ -3460,10 +3594,10 @@ importers: version: 7.0.6 debug: specifier: ^4.4.3 - version: 4.4.3(supports-color@5.5.0) + version: 4.4.3(supports-color@8.1.1) electron: - specifier: ^41.7.1 - version: 41.7.1 + specifier: ^42.4.1 + version: 42.4.1 env-paths: specifier: ^4.0.0 version: 4.0.0 @@ -3472,13 +3606,13 @@ importers: version: 3.0.1 extract-zip: specifier: ^2.0.1 - version: 2.0.1 + version: 2.0.1(supports-color@8.1.1) filename-reserved-regex: specifier: ^4.0.0 version: 4.0.0 filenamify: - specifier: ^7.0.1 - version: 7.0.1 + specifier: ^7.0.2 + version: 7.0.2 flora-colossus: specifier: ^3.0.2 version: 3.0.2 @@ -3555,8 +3689,8 @@ importers: specifier: ^0.13.1 version: 0.13.1 semver: - specifier: ^7.8.0 - version: 7.8.1 + specifier: ^7.8.4 + version: 7.8.4 shebang-command: specifier: ^2.0.0 version: 2.0.0 @@ -3567,8 +3701,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 undici-types: - specifier: ^8.3.0 - version: 8.3.0 + specifier: ^8.5.0 + version: 8.5.0 which: specifier: ^7.0.0 version: 7.0.0 @@ -3579,38 +3713,38 @@ importers: specifier: ^22.0.0 version: 22.0.0 yauzl: - specifier: ^3.3.1 - version: 3.3.1 + specifier: ^3.4.0 + version: 3.4.0 demo/ember: dependencies: - '@glimmer/tracking': + "@glimmer/tracking": specifier: ^1.1.2 version: 1.1.2 - '@tsparticles/ember': - specifier: workspace:^ + "@tsparticles/ember": + specifier: workspace:* version: link:../../wrappers/ember - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/preset-snow': - specifier: workspace:^ + "@tsparticles/preset-snow": + specifier: workspace:* version: link:../../presets/snow/dist ember-auto-import: specifier: ^2.13.1 - version: 2.13.1(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 2.13.1(supports-color@8.1.1)(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) ember-cli-babel: specifier: ^8.3.1 version: 8.3.1(@babel/core@7.29.0) ember-cli-htmlbars: specifier: ^7.0.1 - version: 7.0.1(@babel/core@7.29.0)(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)) + version: 7.0.1(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1)) ember-cli-typescript: specifier: ^5.3.0 - version: 5.3.0 + version: 5.3.0(supports-color@8.1.1) ember-load-initializers: specifier: ^3.0.1 - version: 3.0.1(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)) + version: 3.0.1(ember-source@7.0.0(@glimmer/component@2.1.1)) ember-modifier: specifier: ^4.3.0 version: 4.3.0(@babel/core@7.29.0) @@ -3621,51 +3755,48 @@ importers: specifier: ^13.2.0 version: 13.2.0 ember-source: - specifier: ~6.12.0 - version: 6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5) + specifier: ~7.0.0 + version: 7.0.0(@glimmer/component@2.1.1) tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@babel/core': + "@babel/core": specifier: 7.29.0 version: 7.29.0 - '@ember/optional-features': + "@ember/optional-features": specifier: ^3.0.0 - version: 3.0.0(@types/node@25.9.1) - '@ember/test-helpers': - specifier: ^5.4.1 - version: 5.4.2(@babel/core@7.29.0) - '@tsconfig/ember': - specifier: ^3.0.12 - version: 3.0.12 - '@types/ember': + version: 3.0.0(@types/node@25.9.3) + "@ember/test-helpers": + specifier: ^5.4.3 + version: 5.4.3(@babel/core@7.29.0) + "@types/ember": specifier: ^4.0.11 version: 4.0.11(@babel/core@7.29.0) - '@types/ember__application': + "@types/ember__application": specifier: ^4.0.11 version: 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': + "@types/ember__controller": specifier: ^4.0.12 version: 4.0.12(@babel/core@7.29.0) - '@types/ember__routing': + "@types/ember__routing": specifier: ^4.0.23 version: 4.0.23(@babel/core@7.29.0) - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@types/qunit': - specifier: ^2.19.13 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/qunit": + specifier: ^2.19.14 version: 2.19.14 broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 ember-cli: - specifier: ~6.12.0 - version: 6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8) + specifier: ~7.0.1 + version: 7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8) ember-cli-dependency-checker: specifier: ^3.4.0 - version: 3.4.0(@babel/core@7.29.0)(ember-cli@6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8))(eslint@10.4.1(jiti@2.7.0)) + version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -3674,40 +3805,40 @@ importers: version: 2.1.1 ember-cli-terser: specifier: ^4.0.2 - version: 4.0.2 + version: 4.0.2(supports-color@8.1.1) ember-qunit: - specifier: ^9.0.4 - version: 9.0.4(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0) + specifier: ^9.1.0 + version: 9.1.0(@ember/test-helpers@5.4.3(@babel/core@7.29.0))(qunit@2.26.0) ember-template-lint: specifier: ^7.9.3 version: 7.9.3 eslint: - specifier: ^10.2.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-ember: - specifier: ^13.0.0 - version: 13.3.0(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^13.3.2 + version: 13.3.2(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@10.4.1(jiti@2.7.0)) + version: 11.1.0(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + specifier: ^5.5.6 + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-qunit: specifier: ^8.2.6 - version: 8.2.6(eslint@10.4.1(jiti@2.7.0)) + version: 8.2.6(eslint@10.5.0(jiti@2.7.0)) loader.js: specifier: ^4.7.0 version: 4.7.0 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 qunit: - specifier: ^2.25.0 - version: 2.25.0 + specifier: ^2.26.0 + version: 2.26.0 qunit-dom: specifier: ^3.5.1 version: 3.5.1 @@ -3715,299 +3846,299 @@ importers: specifier: ^6.0.3 version: 6.0.3 webpack: - specifier: ^5.106.2 - version: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) demo/inferno: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/inferno': - specifier: workspace:^ + "@tsparticles/inferno": + specifier: workspace:* version: link:../../wrappers/inferno/dist inferno: specifier: ^9.1.0 version: 9.1.0 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@babel/core': - specifier: ^7.20.7 - version: 7.29.0 - '@babel/plugin-proposal-class-properties': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.29.0) - '@babel/preset-env': - specifier: ^7.20.2 - version: 7.29.5(@babel/core@7.29.0) - '@babel/preset-typescript': - specifier: ^7.18.6 - version: 7.28.5(@babel/core@7.29.0) + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/preset-env": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@babel/preset-typescript": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) babel-loader: - specifier: ^9.1.0 - version: 9.2.1(@babel/core@7.29.0)(webpack@5.107.1) + specifier: ^10.1.1 + version: 10.1.1(@babel/core@8.0.1)(webpack@5.107.2) babel-plugin-inferno: - specifier: ^6.5.0 - version: 6.8.5(@babel/core@7.29.0) + specifier: ^6.8.5 + version: 6.8.5(@babel/core@8.0.1) clean-webpack-plugin: specifier: ^4.0.0 - version: 4.0.0(webpack@5.107.1) + version: 4.0.0(webpack@5.107.2) css-loader: - specifier: ^6.7.3 - version: 6.11.0(webpack@5.107.1) + specifier: ^7.1.4 + version: 7.1.4(webpack@5.107.2) html-webpack-plugin: - specifier: ^5.5.0 - version: 5.6.7(webpack@5.107.1) + specifier: ^5.6.7 + version: 5.6.7(webpack@5.107.2) sass: - specifier: ^1.81.0 - version: 1.100.0 + specifier: ^1.101.0 + version: 1.101.0 sass-loader: - specifier: ^16.0.0 - version: 16.0.8(sass@1.100.0)(webpack@5.107.1) + specifier: ^17.0.0 + version: 17.0.0(sass@1.101.0)(webpack@5.107.2) source-map-loader: - specifier: ^4.0.1 - version: 4.0.2(webpack@5.107.1) + specifier: ^5.0.0 + version: 5.0.0(webpack@5.107.2) style-loader: - specifier: ^3.3.1 - version: 3.3.4(webpack@5.107.1) + specifier: ^4.0.0 + version: 4.0.0(webpack@5.107.2) typescript: - specifier: ^4.9.4 - version: 4.9.5 + specifier: ^6.0.3 + version: 6.0.3 webpack: - specifier: ^5.75.0 - version: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) webpack-cli: - specifier: ^5.0.1 - version: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + specifier: ^7.0.3 + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) webpack-dev-server: - specifier: ^5.2.4 - version: 5.2.4(tslib@2.8.1)(webpack-cli@5.1.4)(webpack@5.107.1) + specifier: ^5.2.5 + version: 5.2.5(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2) demo/ionic: dependencies: - '@angular/common': - specifier: ~21.2.8 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': - specifier: ~21.2.8 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': - specifier: ~21.2.8 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: ~21.2.8 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/platform-browser-dynamic': - specifier: ~21.2.8 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))) - '@angular/router': - specifier: ~21.2.8 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@capacitor/app': + "@angular/common": + specifier: ~22.0.1 + version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/core": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/platform-browser": + specifier: ~22.0.1 + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/platform-browser-dynamic": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + "@angular/router": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@capacitor/app": specifier: ^8.1.0 - version: 8.1.0(@capacitor/core@8.3.4) - '@capacitor/core': - specifier: ^8.3.0 - version: 8.3.4 - '@capacitor/haptics': + version: 8.1.0(@capacitor/core@8.4.0) + "@capacitor/core": + specifier: ^8.4.0 + version: 8.4.0 + "@capacitor/haptics": specifier: ^8.0.2 - version: 8.0.2(@capacitor/core@8.3.4) - '@capacitor/keyboard': - specifier: ^8.0.3 - version: 8.0.3(@capacitor/core@8.3.4) - '@capacitor/status-bar': + version: 8.0.2(@capacitor/core@8.4.0) + "@capacitor/keyboard": + specifier: ^8.0.5 + version: 8.0.5(@capacitor/core@8.4.0) + "@capacitor/status-bar": specifier: ^8.0.2 - version: 8.0.2(@capacitor/core@8.3.4) - '@ionic/angular': - specifier: ^8.8.3 - version: 8.8.8(6ed375bf6d5de9ead2534b663d339729) - '@ionic/core': - specifier: ^8.8.3 - version: 8.8.8 - '@stencil/core': - specifier: ^4.43.3 - version: 4.43.4 - '@tsparticles/angular': - specifier: workspace:^ + version: 8.0.2(@capacitor/core@8.4.0) + "@ionic/angular": + specifier: ^8.8.10 + version: 8.8.10(92bf5dfa8546ec0706234bf8611545e3) + "@ionic/core": + specifier: ^8.8.10 + version: 8.8.10 + "@stencil/core": + specifier: ^4.43.5 + version: 4.43.5 + "@tsparticles/angular": + specifier: workspace:* version: link:../../wrappers/angular/dist/ng-particles - '@tsparticles/basic': - specifier: workspace:^ + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist + "@tsparticles/basic": + specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/canvas-utils': - specifier: workspace:^ + "@tsparticles/canvas-utils": + specifier: workspace:* version: link:../../utils/canvasUtils/dist - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/effect-trail': - specifier: workspace:^ + "@tsparticles/effect-trail": + specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-attract': - specifier: workspace:^ + "@tsparticles/interaction-external-attract": + specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': - specifier: workspace:^ + "@tsparticles/interaction-external-bounce": + specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': - specifier: workspace:^ + "@tsparticles/interaction-external-bubble": + specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-connect': - specifier: workspace:^ + "@tsparticles/interaction-external-connect": + specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-destroy': - specifier: workspace:^ + "@tsparticles/interaction-external-destroy": + specifier: workspace:* version: link:../../interactions/external/destroy/dist - '@tsparticles/interaction-external-drag': - specifier: workspace:^ + "@tsparticles/interaction-external-drag": + specifier: workspace:* version: link:../../interactions/external/drag/dist - '@tsparticles/interaction-external-grab': - specifier: workspace:^ + "@tsparticles/interaction-external-grab": + specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': - specifier: workspace:^ + "@tsparticles/interaction-external-parallax": + specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-pause': - specifier: workspace:^ + "@tsparticles/interaction-external-pause": + specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-push': - specifier: workspace:^ + "@tsparticles/interaction-external-push": + specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': - specifier: workspace:^ + "@tsparticles/interaction-external-remove": + specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': - specifier: workspace:^ + "@tsparticles/interaction-external-repulse": + specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': - specifier: workspace:^ + "@tsparticles/interaction-external-slow": + specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-external-trail': - specifier: workspace:^ + "@tsparticles/interaction-external-trail": + specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/interaction-particles-attract': - specifier: workspace:^ + "@tsparticles/interaction-particles-attract": + specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': - specifier: workspace:^ + "@tsparticles/interaction-particles-collisions": + specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': - specifier: workspace:^ + "@tsparticles/interaction-particles-links": + specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/pjs': - specifier: workspace:^ + "@tsparticles/pjs": + specifier: workspace:* version: link:../../bundles/pjs/dist - '@tsparticles/plugin-absorbers': - specifier: workspace:^ + "@tsparticles/plugin-absorbers": + specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-blend': - specifier: workspace:^ + "@tsparticles/plugin-blend": + specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-easing-quad': - specifier: workspace:^ + "@tsparticles/plugin-easing-quad": + specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-emitters': - specifier: workspace:^ + "@tsparticles/plugin-emitters": + specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-circle': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-circle": + specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-square': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-square": + specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-hex-color': - specifier: workspace:^ + "@tsparticles/plugin-hex-color": + specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': - specifier: workspace:^ + "@tsparticles/plugin-hsl-color": + specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-interactivity': - specifier: workspace:^ + "@tsparticles/plugin-interactivity": + specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-motion': - specifier: workspace:^ + "@tsparticles/plugin-motion": + specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/plugin-move': - specifier: workspace:^ + "@tsparticles/plugin-move": + specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-polygon-mask': - specifier: workspace:^ + "@tsparticles/plugin-polygon-mask": + specifier: workspace:* version: link:../../plugins/polygonMask/dist - '@tsparticles/plugin-rgb-color': - specifier: workspace:^ + "@tsparticles/plugin-rgb-color": + specifier: workspace:* version: link:../../plugins/colors/rgb/dist - '@tsparticles/plugin-sounds': - specifier: workspace:^ + "@tsparticles/plugin-sounds": + specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/shape-cards': - specifier: workspace:^ + "@tsparticles/shape-cards": + specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-circle': - specifier: workspace:^ + "@tsparticles/shape-circle": + specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/shape-emoji': - specifier: workspace:^ + "@tsparticles/shape-emoji": + specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': - specifier: workspace:^ + "@tsparticles/shape-heart": + specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-image': - specifier: workspace:^ + "@tsparticles/shape-image": + specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-line': - specifier: workspace:^ + "@tsparticles/shape-line": + specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-polygon': - specifier: workspace:^ + "@tsparticles/shape-polygon": + specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-square': - specifier: workspace:^ + "@tsparticles/shape-square": + specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-star': - specifier: workspace:^ + "@tsparticles/shape-star": + specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/shape-text': - specifier: workspace:^ + "@tsparticles/shape-text": + specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/slim': - specifier: workspace:^ + "@tsparticles/slim": + specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/updater-destroy': - specifier: workspace:^ + "@tsparticles/updater-destroy": + specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': - specifier: workspace:^ + "@tsparticles/updater-life": + specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': - specifier: workspace:^ + "@tsparticles/updater-opacity": + specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': - specifier: workspace:^ + "@tsparticles/updater-out-modes": + specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': - specifier: workspace:^ + "@tsparticles/updater-paint": + specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': - specifier: workspace:^ + "@tsparticles/updater-roll": + specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': - specifier: workspace:^ + "@tsparticles/updater-rotate": + specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': - specifier: workspace:^ + "@tsparticles/updater-size": + specifier: workspace:* version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': - specifier: workspace:^ + "@tsparticles/updater-tilt": + specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': - specifier: workspace:^ + "@tsparticles/updater-twinkle": + specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': - specifier: workspace:^ + "@tsparticles/updater-wobble": + specifier: workspace:* version: link:../../updaters/wobble/dist ionicons: specifier: ^8.0.13 @@ -4019,384 +4150,378 @@ importers: specifier: ^2.8.1 version: 2.8.1 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist zone.js: - specifier: ~0.16.1 + specifier: ~0.16.2 version: 0.16.2 devDependencies: - '@angular-devkit/build-angular': - specifier: ~21.2.7 - version: 21.2.12(89442b8f3fbd5b6c5b19c712862df115) - '@angular-eslint/builder': - specifier: ~21.3.1 - version: 21.3.1(@angular/cli@21.2.12(@types/node@25.9.1))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@angular-eslint/eslint-plugin': - specifier: ~21.3.1 - version: 21.3.1(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@angular-eslint/eslint-plugin-template': - specifier: ~21.4.0 - version: 21.4.0(@angular-eslint/template-parser@21.3.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(@typescript-eslint/types@8.60.0)(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@angular-eslint/template-parser': - specifier: ~21.3.1 - version: 21.3.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@angular/cli': - specifier: ~21.2.7 - version: 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - '@angular/compiler': - specifier: ~21.2.8 - version: 21.2.14 - '@angular/compiler-cli': - specifier: ~21.2.8 - version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@angular/language-service': - specifier: ~21.2.8 - version: 21.2.14 - '@capacitor/cli': - specifier: ^8.3.0 - version: 8.3.4 - '@ionic/angular-toolkit': + "@angular-eslint/builder": + specifier: ~22.0.0 + version: 22.0.0(@angular/cli@22.0.1(@types/node@25.9.3))(chokidar@5.0.0)(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@angular-eslint/eslint-plugin": + specifier: ~22.0.0 + version: 22.0.0(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@angular-eslint/eslint-plugin-template": + specifier: ~22.0.0 + version: 22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.61.1)(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@angular-eslint/template-parser": + specifier: ~22.0.0 + version: 22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@angular/build": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + "@angular/cli": + specifier: ~22.0.1 + version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + "@angular/compiler": + specifier: ~22.0.1 + version: 22.0.1 + "@angular/compiler-cli": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@angular/language-service": + specifier: ~22.0.1 + version: 22.0.1 + "@capacitor/cli": + specifier: ^8.4.0 + version: 8.4.0(supports-color@8.1.1) + "@ionic/angular-toolkit": specifier: ^12.3.0 version: 12.3.0 - '@types/jasmine': + "@types/jasmine": specifier: ~6.0.0 version: 6.0.0 - '@types/jasminewd2': + "@types/jasminewd2": specifier: ~2.0.13 version: 2.0.13 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0)) + version: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: - specifier: ^62.9.0 - version: 62.9.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^63.0.5 + version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prefer-arrow: specifier: ^1.2.3 - version: 1.2.3(eslint@10.4.1(jiti@2.7.0)) + version: 1.2.3(eslint@10.5.0(jiti@2.7.0)) jasmine-core: - specifier: ~6.2.0 - version: 6.2.0 + specifier: ~6.3.0 + version: 6.3.0 jasmine-spec-reporter: specifier: ~7.0.0 version: 7.0.0 karma: specifier: ~6.4.4 - version: 6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chrome-launcher: specifier: ~3.2.0 version: 3.2.0 karma-coverage: specifier: ~2.2.1 - version: 2.2.1 + version: 2.2.1(supports-color@8.1.1) karma-coverage-istanbul-reporter: specifier: ~3.0.3 - version: 3.0.3 + version: 3.0.3(supports-color@8.1.1) karma-jasmine: specifier: ~5.1.0 version: 5.1.0(karma@6.4.4) karma-jasmine-html-reporter: specifier: ^2.2.0 - version: 2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) - protractor: - specifier: ~7.0.0 - version: 7.0.0 + version: 2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) ts-node: specifier: ~10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: ~6.0.3 + version: 6.0.3 demo/jquery: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/jquery': - specifier: workspace:^ + "@tsparticles/jquery": + specifier: workspace:* version: link:../../wrappers/jquery/dist - '@tsparticles/preset-links': - specifier: workspace:^ + "@tsparticles/preset-links": + specifier: workspace:* version: link:../../presets/links/dist jquery: - specifier: ^3.7.1 - version: 3.7.1 + specifier: ^4.0.0 + version: 4.0.0 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@fortawesome/fontawesome-free': - specifier: ^6.5.1 - version: 6.7.2 - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@fortawesome/fontawesome-free": + specifier: ^7.2.0 + version: 7.2.0 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) babel-preset-env: specifier: ^1.7.0 version: 1.7.0 eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) express: - specifier: ^4.18.2 - version: 4.22.2 + specifier: ^5.2.1 + version: 5.2.1 express-rate-limit: - specifier: ^7.1.5 - version: 7.5.1(express@4.22.2) + specifier: ^8.5.2 + version: 8.5.2(express@5.2.1) helmet: - specifier: ^8.1.0 + specifier: ^8.2.0 version: 8.2.0 jsoneditor: - specifier: ^10.0.0 + specifier: ^10.4.3 version: 10.4.3 lodash: - specifier: ^4.17.21 + specifier: ^4.18.1 version: 4.18.1 prettier: - specifier: ^3.1.1 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 pug: - specifier: ^3.0.2 + specifier: ^3.0.4 version: 3.0.4 stats.ts: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^2.1.6 + version: 2.1.6 stylus: specifier: ^0.64.0 version: 0.64.0 typescript: - specifier: ^5.3.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 demo/lit: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/lit': - specifier: workspace:^ + "@tsparticles/lit": + specifier: workspace:* version: link:../../wrappers/lit lit: specifier: ^3.3.3 version: 3.3.3 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@11ty/eleventy': - specifier: ^2.0.0 - version: 2.0.1 - '@11ty/eleventy-plugin-syntaxhighlight': - specifier: ^5.0.0 + "@11ty/eleventy": + specifier: ^3.1.6 + version: 3.1.6(supports-color@8.1.1) + "@11ty/eleventy-plugin-syntaxhighlight": + specifier: ^5.0.2 version: 5.0.2 - '@open-wc/testing': - specifier: ^3.0.0 - version: 3.2.2 - '@open-wc/testing-karma': + "@open-wc/testing": specifier: ^4.0.0 - version: 4.0.9(encoding@0.1.13) - '@rollup/plugin-node-resolve': - specifier: ^6.0.0 - version: 6.1.0(rollup@4.60.4) - '@rollup/plugin-replace': - specifier: ^5.0.0 - version: 5.0.7(rollup@4.60.4) - '@types/chai': - specifier: ^4.2.7 + version: 4.0.0 + "@open-wc/testing-karma": + specifier: ^4.0.9 + version: 4.0.9(encoding@0.1.13)(supports-color@8.1.1) + "@rollup/plugin-node-resolve": + specifier: ^16.0.3 + version: 16.0.3(rollup@4.62.0) + "@rollup/plugin-replace": + specifier: ^6.0.3 + version: 6.0.3(rollup@4.62.0) + "@types/chai": + specifier: ^4.2.12 version: 4.3.20 - '@types/mocha': - specifier: ^10.0.0 + "@types/mocha": + specifier: ^10.0.1 version: 10.0.10 - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@web/dev-server': - specifier: ^0.1.35 - version: 0.1.38 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@web/dev-server": + specifier: ^0.4.6 + version: 0.4.6 chai: - specifier: ^4.2.0 + specifier: ^4.5.0 version: 4.5.0 deepmerge: - specifier: ^4.2.2 + specifier: ^4.3.1 version: 4.3.1 eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) karma: - specifier: ^6.0.0 - version: 6.4.4 + specifier: ^6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chai: specifier: ^0.1.0 version: 0.1.0(chai@4.5.0)(karma@6.4.4) karma-mocha: - specifier: ^2.0.0 + specifier: ^2.0.1 version: 2.0.1 lit-analyzer: - specifier: ^1.1.9 - version: 1.2.1 + specifier: ^2.0.3 + version: 2.0.3 mocha: - specifier: ^10.0.0 - version: 10.8.2 + specifier: ^11.7.6 + version: 11.7.6 node-resolve: specifier: ^1.3.4 version: 1.3.4 prettier: - specifier: ^3.0.0 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 rimraf: - specifier: ^5.0.0 + specifier: ^5.0.10 version: 5.0.10 rollup: - specifier: ^4.60.4 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 rollup-plugin-filesize: specifier: ^10.0.0 - version: 10.0.0 - rollup-plugin-terser: - specifier: ^7.0.0 - version: 7.0.2(rollup@4.60.4) + version: 10.0.0(bluebird@3.7.2)(supports-color@8.1.1) sinon: specifier: ^22.0.0 version: 22.0.0 typescript: - specifier: ^5.0.0 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 web-component-analyzer: - specifier: ^1.0.0 - version: 1.1.7 + specifier: ^2.0.0 + version: 2.0.0 demo/nextjs: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/nextjs': + "@tsparticles/nextjs": specifier: workspace:* version: link:../../wrappers/nextjs/dist - '@tsparticles/plugin-themes': + "@tsparticles/plugin-themes": specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@types/react': - specifier: ^19.2.14 - version: 19.2.15 - '@types/react-dom': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/react": + specifier: ^19.2.17 + version: 19.2.17 + "@types/react-dom": specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.15) + version: 19.2.3(@types/react@19.2.17) next: - specifier: ^16.2.3 - version: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.100.0) + specifier: ^16.2.8 + version: 16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) react: - specifier: ^19.2.5 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.5 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 devDependencies: - '@next/eslint-plugin-next': - specifier: ^16.2.3 - version: 16.2.6 - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@next/eslint-plugin-next": + specifier: ^16.2.8 + version: 16.2.9 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-next: - specifier: ^16.2.3 - version: 16.2.6(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^16.2.8 + version: 16.2.9(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) demo/nextjs-legacy: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/nextjs': + "@tsparticles/nextjs": specifier: workspace:* version: link:../../wrappers/nextjs/dist - '@tsparticles/plugin-themes': + "@tsparticles/plugin-themes": specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist next: - specifier: ^16.2.3 - version: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.100.0) + specifier: ^16.2.8 + version: 16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) react: - specifier: ^19.2.5 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.5 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 devDependencies: - '@next/eslint-plugin-next': - specifier: ^16.2.3 - version: 16.2.6 + "@next/eslint-plugin-next": + specifier: ^16.2.8 + version: 16.2.9 eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-next: - specifier: ^16.2.3 - version: 16.2.6(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^16.2.8 + version: 16.2.9(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) demo/nuxt2: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/nuxt2': - specifier: workspace:^ + "@tsparticles/nuxt2": + specifier: workspace:* version: link:../../wrappers/nuxt2/dist - '@tsparticles/vue2': - specifier: workspace:^ + "@tsparticles/vue2": + specifier: workspace:* version: link:../../wrappers/vue2/dist core-js: specifier: ^3.49.0 version: 3.49.0 nuxt: - specifier: 2.18.1 - version: 2.18.1(@vue/compiler-sfc@3.5.34)(buffer@6.0.3)(consola@3.4.2)(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ^2.18.1 + version: 2.18.1(@vue/compiler-sfc@3.5.38)(buffer@6.0.3)(consola@3.4.2)(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist vue: specifier: 2.7.16 @@ -4411,236 +4536,233 @@ importers: specifier: 2.7.16 version: 2.7.16 devDependencies: - '@babel/core': - specifier: ^7.29.0 + "@babel/core": + specifier: ^7.0.0 version: 7.29.0 - '@babel/eslint-parser': - specifier: ^7.28.6 - version: 7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)) - '@babel/plugin-proposal-class-properties': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': - specifier: ^7.28.6 - version: 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': - specifier: ^7.28.6 - version: 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': - specifier: ^7.29.2 - version: 7.29.5(@babel/core@7.29.0) - '@eslint/js': + "@babel/eslint-parser": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) + "@babel/plugin-transform-nullish-coalescing-operator": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-optional-chaining": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@nuxt/types': + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@nuxt/types": specifier: 2.18.1 version: 2.18.1 - '@nuxt/typescript-build': + "@nuxt/typescript-build": specifier: ^3.0.2 - version: 3.0.2(@nuxt/types@2.18.1)(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@nuxtjs/eslint-config-typescript': + version: 3.0.2(@nuxt/types@2.18.1)(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@nuxtjs/eslint-config-typescript": specifier: ^12.1.0 - version: 12.1.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@nuxtjs/eslint-module': + version: 12.1.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@nuxtjs/eslint-module": specifier: ^4.1.0 - version: 4.1.0(eslint@10.4.1(jiti@2.7.0))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@types/node': - specifier: ^20.11.25 - version: 20.19.41 - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 4.1.0(eslint@10.5.0(jiti@2.7.0))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@types/node": + specifier: ^20.14.8 + version: 20.19.43 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) babel-loader: specifier: ^8.4.1 - version: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) css-loader: specifier: ^5.2.7 - version: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-nuxt: specifier: ^4.0.0 - version: 4.0.0(eslint@10.4.1(jiti@2.7.0)) + version: 4.0.0(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^16.4.0 - version: 16.5.0 + specifier: ^17.6.0 + version: 17.6.0 postcss-loader: specifier: ^4.3.0 - version: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 ts-loader: specifier: ^8.4.0 - version: 8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) vue-loader: specifier: ^15.11.1 - version: 15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-template-babel-compiler: specifier: ^2.0.0 version: 2.0.0(vue-template-compiler@2.7.16) webpack: specifier: ^4.47.0 - version: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + version: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) demo/nuxt3: dependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@eslint/js': + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/engine': - specifier: workspace:^ + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/nuxt3': - specifier: workspace:^ + "@tsparticles/nuxt3": + specifier: workspace:* version: link:../../wrappers/nuxt3/dist - '@tsparticles/vue3': - specifier: workspace:^ + "@tsparticles/vue3": + specifier: workspace:* version: link:../../wrappers/vue3/dist - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vue/reactivity': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/runtime-core': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/runtime-dom': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/shared': - specifier: ^3.5.32 - version: 3.5.34 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vue/reactivity": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/runtime-core": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/runtime-dom": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/shared": + specifier: ^3.5.38 + version: 3.5.38 consola: specifier: ^3.4.2 version: 3.4.2 eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 lint-staged: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^17.0.7 + version: 17.0.7 nuxt: - specifier: ^3.21.2 - version: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + specifier: ^3.21.8 + version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vue: - specifier: ^3.5.32 - version: 3.5.34(typescript@6.0.3) + specifier: ^3.5.38 + version: 3.5.38(typescript@6.0.3) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) demo/nuxt4: dependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@eslint/js': + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/engine': - specifier: workspace:^ + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/nuxt4': - specifier: workspace:^ + "@tsparticles/nuxt4": + specifier: workspace:* version: link:../../wrappers/nuxt4/dist - '@tsparticles/vue3': - specifier: workspace:^ + "@tsparticles/vue3": + specifier: workspace:* version: link:../../wrappers/vue3/dist - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vue/reactivity': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/runtime-core': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/runtime-dom': - specifier: ^3.5.32 - version: 3.5.34 - '@vue/shared': - specifier: ^3.5.32 - version: 3.5.34 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vue/reactivity": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/runtime-core": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/runtime-dom": + specifier: ^3.5.38 + version: 3.5.38 + "@vue/shared": + specifier: ^3.5.38 + version: 3.5.38 consola: specifier: ^3.4.2 version: 3.4.2 eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 lint-staged: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^17.0.7 + version: 17.0.7 nuxt: - specifier: ^4.4.2 - version: 4.4.6(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4))(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + specifier: ^4.4.8 + version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vue: - specifier: ^3.5.32 - version: 3.5.34(typescript@6.0.3) + specifier: ^3.5.38 + version: 3.5.38(typescript@6.0.3) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) demo/preact: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/preact': - specifier: workspace:^ + "@tsparticles/preact": + specifier: workspace:* version: link:../../wrappers/preact preact: specifier: ^10.19.3 @@ -4652,15 +4774,15 @@ importers: specifier: ^4.1.2 version: 4.1.2(preact@10.29.2) tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -4671,111 +4793,111 @@ importers: specifier: ^4.1.0 version: 4.1.0(enzyme@3.11.0)(preact@10.29.2) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-preact: - specifier: ^1.3.0 - version: 1.5.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^2.0.0 + version: 2.0.0(eslint@10.5.0(jiti@2.7.0)) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.2(eslint@10.4.1(jiti@2.7.0)) + specifier: ^7.1.1 + version: 7.1.1(eslint@10.5.0(jiti@2.7.0)) identity-obj-proxy: specifier: ^3.0.0 version: 3.0.0 preact-cli: - specifier: ^3.5.0 - version: 3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ^3.5.1 + version: 3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) prettier: - specifier: ^3.1.1 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 sirv-cli: - specifier: ^2.0.2 - version: 2.0.2 + specifier: ^3.0.1 + version: 3.0.1 typescript: - specifier: ^5.3.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 demo/qwik: dependencies: - '@builder.io/qwik': - specifier: 1.19.2 - version: 1.19.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@tsparticles/engine': - specifier: workspace:^ + "@builder.io/qwik": + specifier: ^1.20.0 + version: 1.20.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-tsconfig-paths: specifier: ^6.1.1 - version: 6.1.1(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 6.1.1(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) demo/react: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-themes': + "@tsparticles/plugin-themes": specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/react': - specifier: workspace:^ + "@tsparticles/react": + specifier: workspace:* version: link:../../wrappers/react/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist react: - specifier: ^19.2.5 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.5 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@vitejs/plugin-react': - specifier: ^6.0.1 - version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@vitejs/plugin-react": + specifier: ^6.0.2 + version: 6.0.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) demo/riot: dependencies: - '@riotjs/hot-reload': + "@riotjs/hot-reload": specifier: ^10.0.0 version: 10.0.0(riot@10.1.4) - '@riotjs/lazy': + "@riotjs/lazy": specifier: ^10.0.0 version: 10.0.0(riot@10.1.4) - '@riotjs/route': + "@riotjs/route": specifier: ^10.0.0 version: 10.0.0 - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/riot': - specifier: workspace:^ + "@tsparticles/riot": + specifier: workspace:* version: link:../../wrappers/riot/dist path: specifier: ^0.12.7 @@ -4784,1331 +4906,1334 @@ importers: specifier: ^10.1.4 version: 10.1.4 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@riotjs/compiler': - specifier: ^10.0.0 + "@riotjs/compiler": + specifier: ^10.0.2 version: 10.0.2 - '@riotjs/register': + "@riotjs/register": specifier: ^10.0.0 version: 10.0.0(@riotjs/compiler@10.0.2) - '@riotjs/webpack-loader': + "@riotjs/webpack-loader": specifier: ^10.0.0 - version: 10.0.0(@riotjs/compiler@10.0.2)(webpack@5.107.1) + version: 10.0.0(@riotjs/compiler@10.0.2)(webpack@5.107.2) chai: - specifier: ^4.4.0 + specifier: ^4.5.0 version: 4.5.0 css-loader: - specifier: ^6.9.0 - version: 6.11.0(webpack@5.107.1) + specifier: ^6.11.0 + version: 6.11.0(webpack@5.107.2) esm: specifier: ^3.2.25 version: 3.2.25 html-webpack-plugin: - specifier: ^5.6.0 - version: 5.6.7(webpack@5.107.1) + specifier: ^5.6.7 + version: 5.6.7(webpack@5.107.2) jsdom: - specifier: ^24.0.0 - version: 24.1.3 + specifier: ^29.1.1 + version: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) jsdom-global: specifier: ^3.0.2 - version: 3.0.2(jsdom@24.1.3) + version: 3.0.2(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3)) mini-css-extract-plugin: - specifier: ^2.7.7 - version: 2.10.2(webpack@5.107.1) + specifier: ^2.10.2 + version: 2.10.2(webpack@5.107.2) mocha: - specifier: ^10.2.0 - version: 10.8.2 + specifier: ^11.7.6 + version: 11.7.6 nyc: - specifier: ^15.1.0 - version: 15.1.0 + specifier: ^18.0.0 + version: 18.0.0 webpack: - specifier: ^5.89.0 - version: 5.107.1(@swc/core@1.15.40)(webpack-cli@5.1.4) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) webpack-cli: - specifier: ^5.1.4 - version: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + specifier: ^7.0.3 + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) webpack-dev-server: - specifier: ^5.2.4 - version: 5.2.4(tslib@2.8.1)(webpack-cli@5.1.4)(webpack@5.107.1) + specifier: ^5.2.5 + version: 5.2.5(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2) demo/solid: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/solid': + "@tsparticles/solid": specifier: workspace:* version: link:../../wrappers/solid/dist solid-js: - specifier: ^1.8.11 + specifier: ^1.9.13 version: 1.9.13 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: solid-devtools: - specifier: ^0.29.2 - version: 0.29.3(solid-js@1.9.13)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)) + specifier: ^0.34.5 + version: 0.34.5(solid-js@1.9.13)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) typescript: - specifier: ^5.3.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 vite: - specifier: ^5.0.11 - version: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-solid: - specifier: ^2.8.2 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)) + specifier: ^2.11.12 + version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) demo/stencil: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/slim': - specifier: workspace:^ + "@tsparticles/plugin-themes": + specifier: workspace:* + version: link:../../plugins/themes/dist + "@tsparticles/slim": + specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/stencil': - specifier: workspace:^ + "@tsparticles/stencil": + specifier: workspace:* version: link:../../wrappers/stencil devDependencies: - '@stencil/core': - specifier: ^4.43.4 - version: 4.43.4 + "@stencil/core": + specifier: ^4.43.5 + version: 4.43.5 typescript: specifier: ^6.0.3 version: 6.0.3 demo/svelte: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/svelte': - specifier: workspace:^ + "@tsparticles/svelte": + specifier: workspace:* version: link:../../wrappers/svelte/dist sirv-cli: - specifier: ^2.0.2 - version: 2.0.2 + specifier: ^3.0.1 + version: 3.0.1 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@rollup/plugin-commonjs': - specifier: ^29.0.2 - version: 29.0.2(rollup@4.60.4) - '@rollup/plugin-json': + "@rollup/plugin-commonjs": + specifier: ^29.0.3 + version: 29.0.3(rollup@4.62.0) + "@rollup/plugin-json": specifier: ^6.1.0 - version: 6.1.0(rollup@4.60.4) - '@rollup/plugin-node-resolve': - specifier: ^15.2.3 - version: 15.3.1(rollup@4.60.4) - '@rollup/plugin-terser': - specifier: ^0.4.4 - version: 0.4.4(rollup@4.60.4) - '@rollup/plugin-typescript': - specifier: ^11.1.6 - version: 11.1.6(rollup@4.60.4)(tslib@2.8.1)(typescript@5.4.5) - '@tsconfig/svelte': - specifier: ^5.0.4 + version: 6.1.0(rollup@4.62.0) + "@rollup/plugin-node-resolve": + specifier: ^16.0.3 + version: 16.0.3(rollup@4.62.0) + "@rollup/plugin-terser": + specifier: ^1.0.0 + version: 1.0.0(rollup@4.62.0) + "@rollup/plugin-typescript": + specifier: ^12.3.0 + version: 12.3.0(rollup@4.62.0)(tslib@2.8.1)(typescript@6.0.3) + "@tsconfig/svelte": + specifier: ^5.0.8 version: 5.0.8 rollup: - specifier: ^4.18.0 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 rollup-plugin-css-only: - specifier: ^4.5.2 - version: 4.5.5(rollup@4.60.4) + specifier: ^4.5.5 + version: 4.5.5(rollup@4.62.0) rollup-plugin-livereload: specifier: ^2.0.5 version: 2.0.5 rollup-plugin-svelte: - specifier: ^7.2.0 - version: 7.2.3(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^7.2.3 + version: 7.2.3(rollup@4.62.0)(svelte@5.56.3(@typescript-eslint/types@8.61.1)) svelte: - specifier: ^5.55.7 - version: 5.55.9(@typescript-eslint/types@8.60.0) + specifier: ^5.56.3 + version: 5.56.3(@typescript-eslint/types@8.61.1) svelte-check: - specifier: ^3.7.1 - version: 3.8.6(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^4.6.0 + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) svelte-preprocess: - specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.4.5) + specifier: ^6.0.5 + version: 6.0.5(@babel/core@7.29.0)(less@4.6.6)(postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0))(postcss@8.5.15)(pug@3.0.4)(sass@1.101.0)(stylus@0.64.0)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) tslib: - specifier: ^2.6.2 + specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~6.0.3 + version: 6.0.3 demo/svelte-kit: devDependencies: - '@fontsource/fira-mono': - specifier: ^5.0.13 + "@fontsource/fira-mono": + specifier: ^5.2.7 version: 5.2.7 - '@sveltejs/adapter-auto': - specifier: ^3.2.1 - version: 3.3.1(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0))) - '@sveltejs/kit': - specifier: ^2.5.10 - version: 2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.0 - version: 3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - '@tsparticles/engine': - specifier: workspace:^ + "@sveltejs/adapter-auto": + specifier: ^7.0.1 + version: 7.0.1(@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))) + "@sveltejs/kit": + specifier: ^2.65.2 + version: 2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@sveltejs/vite-plugin-svelte": + specifier: ^7.1.2 + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/svelte': - specifier: workspace:^ + "@tsparticles/svelte": + specifier: workspace:* version: link:../../wrappers/svelte/dist - '@types/cookie': - specifier: ^0.6.0 - version: 0.6.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.39.0 - version: 2.46.1(eslint@10.4.1(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)) + specifier: ^3.19.0 + version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) prettier: - specifier: ^3.2.5 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-svelte: - specifier: ^4.0.1 - version: 4.0.1(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^4.1.1 + version: 4.1.1(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1)) svelte: - specifier: ^5.55.7 - version: 5.55.9(@typescript-eslint/types@8.60.0) + specifier: ^5.56.3 + version: 5.56.3(@typescript-eslint/types@8.61.1) svelte-check: - specifier: ^3.7.1 - version: 3.8.6(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^4.6.0 + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) svelte-eslint-parser: - specifier: ^1.0.0 - version: 1.6.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^1.8.0 + version: 1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.1)) svelte-preprocess: - specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3) + specifier: ^6.0.5 + version: 6.0.5(@babel/core@7.29.0)(less@4.6.6)(postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0))(postcss@8.5.15)(pug@3.0.4)(sass@1.101.0)(stylus@0.64.0)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) tslib: - specifier: ^2.6.2 + specifier: ^2.8.1 version: 2.8.1 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 vite: - specifier: ^5.2.11 - version: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + specifier: 8.0.5 + version: 8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) demo/vanilla: dependencies: - '@tsparticles/all': + "@tsparticles/all": specifier: workspace:* version: link:../../bundles/all/dist - '@tsparticles/basic': + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../utils/canvasUtils/dist - '@tsparticles/confetti': + "@tsparticles/confetti": specifier: workspace:* version: link:../../bundles/confetti/dist - '@tsparticles/configs': + "@tsparticles/configs": specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/effect-bubble': + "@tsparticles/effect-bubble": specifier: workspace:* version: link:../../effects/bubble/dist - '@tsparticles/effect-filter': + "@tsparticles/effect-filter": specifier: workspace:* version: link:../../effects/filter/dist - '@tsparticles/effect-particles': + "@tsparticles/effect-particles": specifier: workspace:* version: link:../../effects/particles/dist - '@tsparticles/effect-shadow': + "@tsparticles/effect-shadow": specifier: workspace:* version: link:../../effects/shadow/dist - '@tsparticles/effect-trail': + "@tsparticles/effect-trail": specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/fireworks': + "@tsparticles/fireworks": specifier: workspace:* version: link:../../bundles/fireworks/dist - '@tsparticles/fractal-noise': + "@tsparticles/fractal-noise": specifier: workspace:* version: link:../../utils/fractalNoise/dist - '@tsparticles/interaction-external-attract': + "@tsparticles/interaction-external-attract": specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': + "@tsparticles/interaction-external-bounce": specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': + "@tsparticles/interaction-external-bubble": specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-cannon': + "@tsparticles/interaction-external-cannon": specifier: workspace:* version: link:../../interactions/external/cannon/dist - '@tsparticles/interaction-external-connect': + "@tsparticles/interaction-external-connect": specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-destroy': + "@tsparticles/interaction-external-destroy": specifier: workspace:* version: link:../../interactions/external/destroy/dist - '@tsparticles/interaction-external-drag': + "@tsparticles/interaction-external-drag": specifier: workspace:* version: link:../../interactions/external/drag/dist - '@tsparticles/interaction-external-grab': + "@tsparticles/interaction-external-grab": specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': + "@tsparticles/interaction-external-parallax": specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-particle': + "@tsparticles/interaction-external-particle": specifier: workspace:* version: link:../../interactions/external/particle/dist - '@tsparticles/interaction-external-pause': + "@tsparticles/interaction-external-pause": specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-pop': + "@tsparticles/interaction-external-pop": specifier: workspace:* version: link:../../interactions/external/pop/dist - '@tsparticles/interaction-external-push': + "@tsparticles/interaction-external-push": specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': + "@tsparticles/interaction-external-remove": specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': + "@tsparticles/interaction-external-repulse": specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': + "@tsparticles/interaction-external-slow": specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-external-trail': + "@tsparticles/interaction-external-trail": specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/interaction-light': + "@tsparticles/interaction-light": specifier: workspace:* version: link:../../interactions/light/dist - '@tsparticles/interaction-particles-attract': + "@tsparticles/interaction-particles-attract": specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': + "@tsparticles/interaction-particles-collisions": specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/interaction-particles-repulse': + "@tsparticles/interaction-particles-repulse": specifier: workspace:* version: link:../../interactions/particles/repulse/dist - '@tsparticles/noise-field': + "@tsparticles/noise-field": specifier: workspace:* version: link:../../utils/noiseField/dist - '@tsparticles/palette-acid-pair': + "@tsparticles/palette-acid-pair": specifier: workspace:* version: link:../../palettes/spectrum/acidPair/dist - '@tsparticles/palette-apple': + "@tsparticles/palette-apple": specifier: workspace:* version: link:../../palettes/food/apple/dist - '@tsparticles/palette-apple-green': + "@tsparticles/palette-apple-green": specifier: workspace:* version: link:../../palettes/food/apple-green/dist - '@tsparticles/palette-apple-red': + "@tsparticles/palette-apple-red": specifier: workspace:* version: link:../../palettes/food/apple-red/dist - '@tsparticles/palette-aurora-borealis': + "@tsparticles/palette-aurora-borealis": specifier: workspace:* version: link:../../palettes/space/auroraBorealis/dist - '@tsparticles/palette-autumn-leaves': + "@tsparticles/palette-autumn-leaves": specifier: workspace:* version: link:../../palettes/nature/autumnLeaves/dist - '@tsparticles/palette-avocado': + "@tsparticles/palette-avocado": specifier: workspace:* version: link:../../palettes/food/avocado/dist - '@tsparticles/palette-bell-peppers': + "@tsparticles/palette-bell-peppers": specifier: workspace:* version: link:../../palettes/food/bell-peppers/dist - '@tsparticles/palette-berries': + "@tsparticles/palette-berries": specifier: workspace:* version: link:../../palettes/food/berries/dist - '@tsparticles/palette-bioluminescence': + "@tsparticles/palette-bioluminescence": specifier: workspace:* version: link:../../palettes/fantasy/bioluminescence/dist - '@tsparticles/palette-blood-and-gore': + "@tsparticles/palette-blood-and-gore": specifier: workspace:* version: link:../../palettes/fantasy/bloodAndGore/dist - '@tsparticles/palette-bokeh-cold': + "@tsparticles/palette-bokeh-cold": specifier: workspace:* version: link:../../palettes/optics/bokehCold/dist - '@tsparticles/palette-bokeh-gold': + "@tsparticles/palette-bokeh-gold": specifier: workspace:* version: link:../../palettes/optics/bokehGold/dist - '@tsparticles/palette-bokeh-pastel': + "@tsparticles/palette-bokeh-pastel": specifier: workspace:* version: link:../../palettes/optics/bokehPastel/dist - '@tsparticles/palette-bullet-hit': + "@tsparticles/palette-bullet-hit": specifier: workspace:* version: link:../../palettes/impact/bulletHit/dist - '@tsparticles/palette-candlelight': + "@tsparticles/palette-candlelight": specifier: workspace:* version: link:../../palettes/fire/candlelight/dist - '@tsparticles/palette-caustics': + "@tsparticles/palette-caustics": specifier: workspace:* version: link:../../palettes/earth/caustics/dist - '@tsparticles/palette-cherry': + "@tsparticles/palette-cherry": specifier: workspace:* version: link:../../palettes/food/cherry/dist - '@tsparticles/palette-cherry-blossom': + "@tsparticles/palette-cherry-blossom": specifier: workspace:* version: link:../../palettes/nature/cherryBlossom/dist - '@tsparticles/palette-citrus-twist': + "@tsparticles/palette-citrus-twist": specifier: workspace:* version: link:../../palettes/food/citrus-twist/dist - '@tsparticles/palette-cmy-secondaries': + "@tsparticles/palette-cmy-secondaries": specifier: workspace:* version: link:../../palettes/spectrum/cmySecondaries/dist - '@tsparticles/palette-colored-smoke-amber': + "@tsparticles/palette-colored-smoke-amber": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeAmber/dist - '@tsparticles/palette-colored-smoke-blue': + "@tsparticles/palette-colored-smoke-blue": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeBlue/dist - '@tsparticles/palette-colored-smoke-green': + "@tsparticles/palette-colored-smoke-green": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeGreen/dist - '@tsparticles/palette-colored-smoke-magenta': + "@tsparticles/palette-colored-smoke-magenta": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeMagenta/dist - '@tsparticles/palette-colored-smoke-orange': + "@tsparticles/palette-colored-smoke-orange": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeOrange/dist - '@tsparticles/palette-colored-smoke-purple': + "@tsparticles/palette-colored-smoke-purple": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokePurple/dist - '@tsparticles/palette-colored-smoke-rainbow': + "@tsparticles/palette-colored-smoke-rainbow": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeRainbow/dist - '@tsparticles/palette-colored-smoke-red': + "@tsparticles/palette-colored-smoke-red": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeRed/dist - '@tsparticles/palette-colored-smoke-teal': + "@tsparticles/palette-colored-smoke-teal": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeTeal/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/palette-confetti-gold': + "@tsparticles/palette-confetti-gold": specifier: workspace:* version: link:../../palettes/confetti/gold/dist - '@tsparticles/palette-confetti-monochrome-blue': + "@tsparticles/palette-confetti-monochrome-blue": specifier: workspace:* version: link:../../palettes/confetti/monochromeBlue/dist - '@tsparticles/palette-confetti-monochrome-green': + "@tsparticles/palette-confetti-monochrome-green": specifier: workspace:* version: link:../../palettes/confetti/monochromeGreen/dist - '@tsparticles/palette-confetti-monochrome-pink': + "@tsparticles/palette-confetti-monochrome-pink": specifier: workspace:* version: link:../../palettes/confetti/monochromePink/dist - '@tsparticles/palette-confetti-monochrome-purple': + "@tsparticles/palette-confetti-monochrome-purple": specifier: workspace:* version: link:../../palettes/confetti/monochromePurple/dist - '@tsparticles/palette-confetti-monochrome-red': + "@tsparticles/palette-confetti-monochrome-red": specifier: workspace:* version: link:../../palettes/confetti/monochromeRed/dist - '@tsparticles/palette-confetti-neon': + "@tsparticles/palette-confetti-neon": specifier: workspace:* version: link:../../palettes/confetti/neon/dist - '@tsparticles/palette-confetti-pastel': + "@tsparticles/palette-confetti-pastel": specifier: workspace:* version: link:../../palettes/confetti/pastel/dist - '@tsparticles/palette-confetti-patriotic': + "@tsparticles/palette-confetti-patriotic": specifier: workspace:* version: link:../../palettes/confetti/patriotic/dist - '@tsparticles/palette-confetti-rainbow': + "@tsparticles/palette-confetti-rainbow": specifier: workspace:* version: link:../../palettes/confetti/rainbow/dist - '@tsparticles/palette-confetti-winter': + "@tsparticles/palette-confetti-winter": specifier: workspace:* version: link:../../palettes/confetti/winter/dist - '@tsparticles/palette-cosmic-radiation': + "@tsparticles/palette-cosmic-radiation": specifier: workspace:* version: link:../../palettes/space/cosmicRadiation/dist - '@tsparticles/palette-crt-phosphor': + "@tsparticles/palette-crt-phosphor": specifier: workspace:* version: link:../../palettes/tech/crtPhosphor/dist - '@tsparticles/palette-dandelion-seeds': + "@tsparticles/palette-dandelion-seeds": specifier: workspace:* version: link:../../palettes/nature/dandelionSeeds/dist - '@tsparticles/palette-dark-matter': + "@tsparticles/palette-dark-matter": specifier: workspace:* version: link:../../palettes/space/darkMatter/dist - '@tsparticles/palette-deep-ocean': + "@tsparticles/palette-deep-ocean": specifier: workspace:* version: link:../../palettes/water/deepOcean/dist - '@tsparticles/palette-desert-sand': + "@tsparticles/palette-desert-sand": specifier: workspace:* version: link:../../palettes/earth/desertSand/dist - '@tsparticles/palette-duality-blue-yellow': + "@tsparticles/palette-duality-blue-yellow": specifier: workspace:* version: link:../../palettes/spectrum/dualityBlueYellow/dist - '@tsparticles/palette-duality-green-magenta': + "@tsparticles/palette-duality-green-magenta": specifier: workspace:* version: link:../../palettes/spectrum/dualityGreenMagenta/dist - '@tsparticles/palette-duality-red-cyan': + "@tsparticles/palette-duality-red-cyan": specifier: workspace:* version: link:../../palettes/spectrum/dualityRedCyan/dist - '@tsparticles/palette-dust-haze': + "@tsparticles/palette-dust-haze": specifier: workspace:* version: link:../../palettes/atmosphere/dustHaze/dist - '@tsparticles/palette-earthy-nature': + "@tsparticles/palette-earthy-nature": specifier: workspace:* version: link:../../palettes/nature/earthyNature/dist - '@tsparticles/palette-embers-and-ash': + "@tsparticles/palette-embers-and-ash": specifier: workspace:* version: link:../../palettes/fire/embersAndAsh/dist - '@tsparticles/palette-explosion-debris': + "@tsparticles/palette-explosion-debris": specifier: workspace:* version: link:../../palettes/impact/explosionDebris/dist - '@tsparticles/palette-fairy-dust': + "@tsparticles/palette-fairy-dust": specifier: workspace:* version: link:../../palettes/fantasy/fairyDust/dist - '@tsparticles/palette-fire': + "@tsparticles/palette-fire": specifier: workspace:* version: link:../../palettes/fire/default/dist - '@tsparticles/palette-fire-seed': + "@tsparticles/palette-fire-seed": specifier: workspace:* version: link:../../palettes/fire/seed/dist - '@tsparticles/palette-fireflies': + "@tsparticles/palette-fireflies": specifier: workspace:* version: link:../../palettes/nature/fireflies/dist - '@tsparticles/palette-fireworks-blue': + "@tsparticles/palette-fireworks-blue": specifier: workspace:* version: link:../../palettes/fireworks/blue/dist - '@tsparticles/palette-fireworks-blue-stroke': + "@tsparticles/palette-fireworks-blue-stroke": specifier: workspace:* version: link:../../palettes/fireworks/blueStroke/dist - '@tsparticles/palette-fireworks-copper': + "@tsparticles/palette-fireworks-copper": specifier: workspace:* version: link:../../palettes/fireworks/copper/dist - '@tsparticles/palette-fireworks-copper-stroke': + "@tsparticles/palette-fireworks-copper-stroke": specifier: workspace:* version: link:../../palettes/fireworks/copperStroke/dist - '@tsparticles/palette-fireworks-gold': + "@tsparticles/palette-fireworks-gold": specifier: workspace:* version: link:../../palettes/fireworks/gold/dist - '@tsparticles/palette-fireworks-gold-stroke': + "@tsparticles/palette-fireworks-gold-stroke": specifier: workspace:* version: link:../../palettes/fireworks/goldStroke/dist - '@tsparticles/palette-fireworks-green': + "@tsparticles/palette-fireworks-green": specifier: workspace:* version: link:../../palettes/fireworks/green/dist - '@tsparticles/palette-fireworks-green-stroke': + "@tsparticles/palette-fireworks-green-stroke": specifier: workspace:* version: link:../../palettes/fireworks/greenStroke/dist - '@tsparticles/palette-fireworks-ice': + "@tsparticles/palette-fireworks-ice": specifier: workspace:* version: link:../../palettes/fireworks/ice/dist - '@tsparticles/palette-fireworks-ice-stroke': + "@tsparticles/palette-fireworks-ice-stroke": specifier: workspace:* version: link:../../palettes/fireworks/iceStroke/dist - '@tsparticles/palette-fireworks-multicolor': + "@tsparticles/palette-fireworks-multicolor": specifier: workspace:* version: link:../../palettes/fireworks/multicolor/dist - '@tsparticles/palette-fireworks-multicolor-stroke': + "@tsparticles/palette-fireworks-multicolor-stroke": specifier: workspace:* version: link:../../palettes/fireworks/multicolorStroke/dist - '@tsparticles/palette-fireworks-neon': + "@tsparticles/palette-fireworks-neon": specifier: workspace:* version: link:../../palettes/fireworks/neon/dist - '@tsparticles/palette-fireworks-neon-stroke': + "@tsparticles/palette-fireworks-neon-stroke": specifier: workspace:* version: link:../../palettes/fireworks/neonStroke/dist - '@tsparticles/palette-fireworks-pastel': + "@tsparticles/palette-fireworks-pastel": specifier: workspace:* version: link:../../palettes/fireworks/pastel/dist - '@tsparticles/palette-fireworks-pastel-stroke': + "@tsparticles/palette-fireworks-pastel-stroke": specifier: workspace:* version: link:../../palettes/fireworks/pastelStroke/dist - '@tsparticles/palette-fireworks-purple': + "@tsparticles/palette-fireworks-purple": specifier: workspace:* version: link:../../palettes/fireworks/purple/dist - '@tsparticles/palette-fireworks-purple-stroke': + "@tsparticles/palette-fireworks-purple-stroke": specifier: workspace:* version: link:../../palettes/fireworks/purpleStroke/dist - '@tsparticles/palette-fireworks-rainbow': + "@tsparticles/palette-fireworks-rainbow": specifier: workspace:* version: link:../../palettes/fireworks/rainbow/dist - '@tsparticles/palette-fireworks-rainbow-stroke': + "@tsparticles/palette-fireworks-rainbow-stroke": specifier: workspace:* version: link:../../palettes/fireworks/rainbowStroke/dist - '@tsparticles/palette-fireworks-red': + "@tsparticles/palette-fireworks-red": specifier: workspace:* version: link:../../palettes/fireworks/red/dist - '@tsparticles/palette-fireworks-red-stroke': + "@tsparticles/palette-fireworks-red-stroke": specifier: workspace:* version: link:../../palettes/fireworks/redStroke/dist - '@tsparticles/palette-fireworks-silver': + "@tsparticles/palette-fireworks-silver": specifier: workspace:* version: link:../../palettes/fireworks/silver/dist - '@tsparticles/palette-fireworks-silver-stroke': + "@tsparticles/palette-fireworks-silver-stroke": specifier: workspace:* version: link:../../palettes/fireworks/silverStroke/dist - '@tsparticles/palette-foam-and-bubbles': + "@tsparticles/palette-foam-and-bubbles": specifier: workspace:* version: link:../../palettes/water/foamAndBubbles/dist - '@tsparticles/palette-fog-coastal': + "@tsparticles/palette-fog-coastal": specifier: workspace:* version: link:../../palettes/water/fogCoastal/dist - '@tsparticles/palette-fog-morning': + "@tsparticles/palette-fog-morning": specifier: workspace:* version: link:../../palettes/atmosphere/fogMorning/dist - '@tsparticles/palette-forest-canopy': + "@tsparticles/palette-forest-canopy": specifier: workspace:* version: link:../../palettes/nature/forestCanopy/dist - '@tsparticles/palette-full-fire-gradient': + "@tsparticles/palette-full-fire-gradient": specifier: workspace:* version: link:../../palettes/fire/fullFireGradient/dist - '@tsparticles/palette-full-spectrum': + "@tsparticles/palette-full-spectrum": specifier: workspace:* version: link:../../palettes/spectrum/fullSpectrum/dist - '@tsparticles/palette-galaxy-dust': + "@tsparticles/palette-galaxy-dust": specifier: workspace:* version: link:../../palettes/space/galaxyDust/dist - '@tsparticles/palette-gingerbread-house': + "@tsparticles/palette-gingerbread-house": specifier: workspace:* version: link:../../palettes/food/gingerbread-house/dist - '@tsparticles/palette-glass-burst': + "@tsparticles/palette-glass-burst": specifier: workspace:* version: link:../../palettes/impact/glassBurst/dist - '@tsparticles/palette-glitch': + "@tsparticles/palette-glitch": specifier: workspace:* version: link:../../palettes/tech/glitch/dist - '@tsparticles/palette-grapes': + "@tsparticles/palette-grapes": specifier: workspace:* version: link:../../palettes/food/grapes/dist - '@tsparticles/palette-heat-duality': + "@tsparticles/palette-heat-duality": specifier: workspace:* version: link:../../palettes/atmospheric/heatDuality/dist - '@tsparticles/palette-heat-haze': + "@tsparticles/palette-heat-haze": specifier: workspace:* version: link:../../palettes/atmospheric/heatHaze/dist - '@tsparticles/palette-hologram': + "@tsparticles/palette-hologram": specifier: workspace:* version: link:../../palettes/tech/hologram/dist - '@tsparticles/palette-holographic-shimmer': + "@tsparticles/palette-holographic-shimmer": specifier: workspace:* version: link:../../palettes/optics/holographicShimmer/dist - '@tsparticles/palette-holy-light': + "@tsparticles/palette-holy-light": specifier: workspace:* version: link:../../palettes/fantasy/holyLight/dist - '@tsparticles/palette-ice-magic': + "@tsparticles/palette-ice-magic": specifier: workspace:* version: link:../../palettes/fantasy/iceMagic/dist - '@tsparticles/palette-ice-triad': + "@tsparticles/palette-ice-triad": specifier: workspace:* version: link:../../palettes/fantasy/iceTriad/dist - '@tsparticles/palette-ink-in-water': + "@tsparticles/palette-ink-in-water": specifier: workspace:* version: link:../../palettes/water/inkInWater/dist - '@tsparticles/palette-iris': + "@tsparticles/palette-iris": specifier: workspace:* version: link:../../palettes/fantasy/iris/dist - '@tsparticles/palette-jellyfish-glow': + "@tsparticles/palette-jellyfish-glow": specifier: workspace:* version: link:../../palettes/fantasy/jellyfishGlow/dist - '@tsparticles/palette-lagoon': + "@tsparticles/palette-lagoon": specifier: workspace:* version: link:../../palettes/water/lagoon/dist - '@tsparticles/palette-laser-scatter': + "@tsparticles/palette-laser-scatter": specifier: workspace:* version: link:../../palettes/optics/laserScatter/dist - '@tsparticles/palette-lava-lamp': + "@tsparticles/palette-lava-lamp": specifier: workspace:* version: link:../../palettes/fire/lavaLamp/dist - '@tsparticles/palette-lens-flare-dust': + "@tsparticles/palette-lens-flare-dust": specifier: workspace:* version: link:../../palettes/optics/lensFlareDust/dist - '@tsparticles/palette-lightning': + "@tsparticles/palette-lightning": specifier: workspace:* version: link:../../palettes/atmospheric/lightning/dist - '@tsparticles/palette-lofi-warm': + "@tsparticles/palette-lofi-warm": specifier: workspace:* version: link:../../palettes/tech/lofiWarm/dist - '@tsparticles/palette-macaron': + "@tsparticles/palette-macaron": specifier: workspace:* version: link:../../palettes/food/macaron/dist - '@tsparticles/palette-matrix-rain': + "@tsparticles/palette-matrix-rain": specifier: workspace:* version: link:../../palettes/tech/matrixRain/dist - '@tsparticles/palette-melon': + "@tsparticles/palette-melon": specifier: workspace:* version: link:../../palettes/food/melon/dist - '@tsparticles/palette-mermaid': + "@tsparticles/palette-mermaid": specifier: workspace:* version: link:../../palettes/fantasy/mermaid/dist - '@tsparticles/palette-metal-sparks': + "@tsparticles/palette-metal-sparks": specifier: workspace:* version: link:../../palettes/fire/metalSparks/dist - '@tsparticles/palette-meteor-impact': + "@tsparticles/palette-meteor-impact": specifier: workspace:* version: link:../../palettes/impact/meteorImpact/dist - '@tsparticles/palette-minecraft': + "@tsparticles/palette-minecraft": specifier: workspace:* version: link:../../palettes/gaming/minecraft/dist - '@tsparticles/palette-molten-metal': + "@tsparticles/palette-molten-metal": specifier: workspace:* version: link:../../palettes/fire/moltenMetal/dist - '@tsparticles/palette-monochrome-blues': + "@tsparticles/palette-monochrome-blues": specifier: workspace:* version: link:../../palettes/monochromatic/blues/dist - '@tsparticles/palette-monochrome-brown': + "@tsparticles/palette-monochrome-brown": specifier: workspace:* version: link:../../palettes/monochromatic/brown/dist - '@tsparticles/palette-monochrome-cyan': + "@tsparticles/palette-monochrome-cyan": specifier: workspace:* version: link:../../palettes/monochromatic/cyan/dist - '@tsparticles/palette-monochrome-gold': + "@tsparticles/palette-monochrome-gold": specifier: workspace:* version: link:../../palettes/monochromatic/gold/dist - '@tsparticles/palette-monochrome-greens': + "@tsparticles/palette-monochrome-greens": specifier: workspace:* version: link:../../palettes/monochromatic/greens/dist - '@tsparticles/palette-monochrome-noir': + "@tsparticles/palette-monochrome-noir": specifier: workspace:* version: link:../../palettes/monochromatic/noir/dist - '@tsparticles/palette-monochrome-oranges': + "@tsparticles/palette-monochrome-oranges": specifier: workspace:* version: link:../../palettes/monochromatic/oranges/dist - '@tsparticles/palette-monochrome-pinks': + "@tsparticles/palette-monochrome-pinks": specifier: workspace:* version: link:../../palettes/monochromatic/pinks/dist - '@tsparticles/palette-monochrome-purples': + "@tsparticles/palette-monochrome-purples": specifier: workspace:* version: link:../../palettes/monochromatic/purples/dist - '@tsparticles/palette-monochrome-reds': + "@tsparticles/palette-monochrome-reds": specifier: workspace:* version: link:../../palettes/monochromatic/reds/dist - '@tsparticles/palette-monochrome-silver': + "@tsparticles/palette-monochrome-silver": specifier: workspace:* version: link:../../palettes/monochromatic/silver/dist - '@tsparticles/palette-monochrome-teal': + "@tsparticles/palette-monochrome-teal": specifier: workspace:* version: link:../../palettes/monochromatic/teal/dist - '@tsparticles/palette-monochrome-white': + "@tsparticles/palette-monochrome-white": specifier: workspace:* version: link:../../palettes/monochromatic/white/dist - '@tsparticles/palette-monochrome-yellows': + "@tsparticles/palette-monochrome-yellows": specifier: workspace:* version: link:../../palettes/monochromatic/yellows/dist - '@tsparticles/palette-mud-and-dirt': + "@tsparticles/palette-mud-and-dirt": specifier: workspace:* version: link:../../palettes/earth/mudAndDirt/dist - '@tsparticles/palette-nebula': + "@tsparticles/palette-nebula": specifier: workspace:* version: link:../../palettes/space/nebula/dist - '@tsparticles/palette-neon-city': + "@tsparticles/palette-neon-city": specifier: workspace:* version: link:../../palettes/tech/neonCity/dist - '@tsparticles/palette-network-nodes': + "@tsparticles/palette-network-nodes": specifier: workspace:* version: link:../../palettes/tech/networkNodes/dist - '@tsparticles/palette-nuclear-glow': + "@tsparticles/palette-nuclear-glow": specifier: workspace:* version: link:../../palettes/impact/nuclearGlow/dist - '@tsparticles/palette-oil-slick': + "@tsparticles/palette-oil-slick": specifier: workspace:* version: link:../../palettes/earth/oilSlick/dist - '@tsparticles/palette-okabe-ito-accessible': + "@tsparticles/palette-okabe-ito-accessible": specifier: workspace:* version: link:../../palettes/spectrum/okabeItoAccessible/dist - '@tsparticles/palette-pacman': + "@tsparticles/palette-pacman": specifier: workspace:* version: link:../../palettes/gaming/pacman/dist - '@tsparticles/palette-pastel-cool': + "@tsparticles/palette-pastel-cool": specifier: workspace:* version: link:../../palettes/pastel/cool/dist - '@tsparticles/palette-pastel-dream': + "@tsparticles/palette-pastel-dream": specifier: workspace:* version: link:../../palettes/pastel/dream/dist - '@tsparticles/palette-pastel-mint': + "@tsparticles/palette-pastel-mint": specifier: workspace:* version: link:../../palettes/pastel/mint/dist - '@tsparticles/palette-pastel-sunset': + "@tsparticles/palette-pastel-sunset": specifier: workspace:* version: link:../../palettes/pastel/sunset/dist - '@tsparticles/palette-pastel-warm': + "@tsparticles/palette-pastel-warm": specifier: workspace:* version: link:../../palettes/pastel/warm/dist - '@tsparticles/palette-pineapple': + "@tsparticles/palette-pineapple": specifier: workspace:* version: link:../../palettes/food/pineapple/dist - '@tsparticles/palette-pizza': + "@tsparticles/palette-pizza": specifier: workspace:* version: link:../../palettes/food/pizza/dist - '@tsparticles/palette-plasma-arc': + "@tsparticles/palette-plasma-arc": specifier: workspace:* version: link:../../palettes/tech/plasmaArc/dist - '@tsparticles/palette-poison-and-venom': + "@tsparticles/palette-poison-and-venom": specifier: workspace:* version: link:../../palettes/fantasy/poisonAndVenom/dist - '@tsparticles/palette-pollen-and-spores': + "@tsparticles/palette-pollen-and-spores": specifier: workspace:* version: link:../../palettes/nature/pollenAndSpores/dist - '@tsparticles/palette-portal': + "@tsparticles/palette-portal": specifier: workspace:* version: link:../../palettes/space/portal/dist - '@tsparticles/palette-prism-scatter': + "@tsparticles/palette-prism-scatter": specifier: workspace:* version: link:../../palettes/spectrum/prismScatter/dist - '@tsparticles/palette-prism-spectrum': + "@tsparticles/palette-prism-spectrum": specifier: workspace:* version: link:../../palettes/optics/prismSpectrum/dist - '@tsparticles/palette-pulsar': + "@tsparticles/palette-pulsar": specifier: workspace:* version: link:../../palettes/space/pulsar/dist - '@tsparticles/palette-rain': + "@tsparticles/palette-rain": specifier: workspace:* version: link:../../palettes/water/rain/dist - '@tsparticles/palette-rainbow': + "@tsparticles/palette-rainbow": specifier: workspace:* version: link:../../palettes/spectrum/rainbow/dist - '@tsparticles/palette-rgb-primaries': + "@tsparticles/palette-rgb-primaries": specifier: workspace:* version: link:../../palettes/spectrum/rgbPrimaries/dist - '@tsparticles/palette-rising-bubbles': + "@tsparticles/palette-rising-bubbles": specifier: workspace:* version: link:../../palettes/water/risingBubbles/dist - '@tsparticles/palette-rock-and-gravel': + "@tsparticles/palette-rock-and-gravel": specifier: workspace:* version: link:../../palettes/earth/rockAndGravel/dist - '@tsparticles/palette-rust-and-corrosion': + "@tsparticles/palette-rust-and-corrosion": specifier: workspace:* version: link:../../palettes/earth/rustAndCorrosion/dist - '@tsparticles/palette-sakura': + "@tsparticles/palette-sakura": specifier: workspace:* version: link:../../palettes/food/sakura/dist - '@tsparticles/palette-salad': + "@tsparticles/palette-salad": specifier: workspace:* version: link:../../palettes/food/salad/dist - '@tsparticles/palette-shockwave': + "@tsparticles/palette-shockwave": specifier: workspace:* version: link:../../palettes/atmospheric/shockwave/dist - '@tsparticles/palette-shockwave-blast': + "@tsparticles/palette-shockwave-blast": specifier: workspace:* version: link:../../palettes/impact/shockwaveBlast/dist - '@tsparticles/palette-skin-and-organic': + "@tsparticles/palette-skin-and-organic": specifier: workspace:* version: link:../../palettes/earth/skinAndOrganic/dist - '@tsparticles/palette-smoke-cold': + "@tsparticles/palette-smoke-cold": specifier: workspace:* version: link:../../palettes/atmospheric/smokeCold/dist - '@tsparticles/palette-smoke-warm': + "@tsparticles/palette-smoke-warm": specifier: workspace:* version: link:../../palettes/atmospheric/smokeWarm/dist - '@tsparticles/palette-snowfall': + "@tsparticles/palette-snowfall": specifier: workspace:* version: link:../../palettes/nature/snowfall/dist - '@tsparticles/palette-solar-wind': + "@tsparticles/palette-solar-wind": specifier: workspace:* version: link:../../palettes/space/solarWind/dist - '@tsparticles/palette-spice-rack': + "@tsparticles/palette-spice-rack": specifier: workspace:* version: link:../../palettes/food/spice-rack/dist - '@tsparticles/palette-splatter-dark': + "@tsparticles/palette-splatter-dark": specifier: workspace:* version: link:../../palettes/impact/splatterDark/dist - '@tsparticles/palette-spring-bloom': + "@tsparticles/palette-spring-bloom": specifier: workspace:* version: link:../../palettes/nature/springBloom/dist - '@tsparticles/palette-steak': + "@tsparticles/palette-steak": specifier: workspace:* version: link:../../palettes/food/steak/dist - '@tsparticles/palette-sunrise-gold': + "@tsparticles/palette-sunrise-gold": specifier: workspace:* version: link:../../palettes/atmospheric/sunriseGold/dist - '@tsparticles/palette-sunset-binary': + "@tsparticles/palette-sunset-binary": specifier: workspace:* version: link:../../palettes/atmospheric/sunsetBinary/dist - '@tsparticles/palette-super-mario-bros': + "@tsparticles/palette-super-mario-bros": specifier: workspace:* version: link:../../palettes/gaming/superMarioBros/dist - '@tsparticles/palette-supernova': + "@tsparticles/palette-supernova": specifier: workspace:* version: link:../../palettes/space/supernova/dist - '@tsparticles/palette-sushi': + "@tsparticles/palette-sushi": specifier: workspace:* version: link:../../palettes/food/sushi/dist - '@tsparticles/palette-tetris': + "@tsparticles/palette-tetris": specifier: workspace:* version: link:../../palettes/gaming/tetris/dist - '@tsparticles/palette-thermal-map': + "@tsparticles/palette-thermal-map": specifier: workspace:* version: link:../../palettes/atmospheric/thermalMap/dist - '@tsparticles/palette-thunderstorm': + "@tsparticles/palette-thunderstorm": specifier: workspace:* version: link:../../palettes/atmospheric/thunderstorm/dist - '@tsparticles/palette-tropical-fruits': + "@tsparticles/palette-tropical-fruits": specifier: workspace:* version: link:../../palettes/food/tropical-fruits/dist - '@tsparticles/palette-unicorn': + "@tsparticles/palette-unicorn": specifier: workspace:* version: link:../../palettes/fantasy/unicorn/dist - '@tsparticles/palette-vaporwave': + "@tsparticles/palette-vaporwave": specifier: workspace:* version: link:../../palettes/tech/vaporwave/dist - '@tsparticles/palette-vibrant': + "@tsparticles/palette-vibrant": specifier: workspace:* version: link:../../palettes/vibrant/default/dist - '@tsparticles/palette-vibrant-electric': + "@tsparticles/palette-vibrant-electric": specifier: workspace:* version: link:../../palettes/vibrant/electric/dist - '@tsparticles/palette-vibrant-neon': + "@tsparticles/palette-vibrant-neon": specifier: workspace:* version: link:../../palettes/vibrant/neon/dist - '@tsparticles/palette-vibrant-retro': + "@tsparticles/palette-vibrant-retro": specifier: workspace:* version: link:../../palettes/vibrant/retro/dist - '@tsparticles/palette-vibrant-tropical': + "@tsparticles/palette-vibrant-tropical": specifier: workspace:* version: link:../../palettes/vibrant/tropical/dist - '@tsparticles/palette-volcanic-ash': + "@tsparticles/palette-volcanic-ash": specifier: workspace:* version: link:../../palettes/atmosphere/volcanicAsh/dist - '@tsparticles/palette-water': + "@tsparticles/palette-water": specifier: workspace:* version: link:../../palettes/water/default/dist - '@tsparticles/palette-water-splash': + "@tsparticles/palette-water-splash": specifier: workspace:* version: link:../../palettes/water/splash/dist - '@tsparticles/palette-watermelon': + "@tsparticles/palette-watermelon": specifier: workspace:* version: link:../../palettes/food/watermelon/dist - '@tsparticles/particles': + "@tsparticles/particles": specifier: workspace:* version: link:../../bundles/particles/dist - '@tsparticles/path-branches': + "@tsparticles/path-branches": specifier: workspace:* version: link:../../paths/branches/dist - '@tsparticles/path-brownian': + "@tsparticles/path-brownian": specifier: workspace:* version: link:../../paths/brownian/dist - '@tsparticles/path-curl-noise': + "@tsparticles/path-curl-noise": specifier: workspace:* version: link:../../paths/curlNoise/dist - '@tsparticles/path-curves': + "@tsparticles/path-curves": specifier: workspace:* version: link:../../paths/curves/dist - '@tsparticles/path-fractal-noise': + "@tsparticles/path-fractal-noise": specifier: workspace:* version: link:../../paths/fractalNoise/dist - '@tsparticles/path-grid': + "@tsparticles/path-grid": specifier: workspace:* version: link:../../paths/grid/dist - '@tsparticles/path-levy': + "@tsparticles/path-levy": specifier: workspace:* version: link:../../paths/levy/dist - '@tsparticles/path-perlin-noise': + "@tsparticles/path-perlin-noise": specifier: workspace:* version: link:../../paths/perlinNoise/dist - '@tsparticles/path-polygon': + "@tsparticles/path-polygon": specifier: workspace:* version: link:../../paths/polygon/dist - '@tsparticles/path-random': + "@tsparticles/path-random": specifier: workspace:* version: link:../../paths/random/dist - '@tsparticles/path-simplex-noise': + "@tsparticles/path-simplex-noise": specifier: workspace:* version: link:../../paths/simplexNoise/dist - '@tsparticles/path-spiral': + "@tsparticles/path-spiral": specifier: workspace:* version: link:../../paths/spiral/dist - '@tsparticles/path-svg': + "@tsparticles/path-svg": specifier: workspace:* version: link:../../paths/svg/dist - '@tsparticles/path-utils': + "@tsparticles/path-utils": specifier: workspace:* version: link:../../utils/pathUtils/dist - '@tsparticles/path-zig-zag': + "@tsparticles/path-zig-zag": specifier: workspace:* version: link:../../paths/zigzag/dist - '@tsparticles/perlin-noise': + "@tsparticles/perlin-noise": specifier: workspace:* version: link:../../utils/perlinNoise/dist - '@tsparticles/pjs': + "@tsparticles/pjs": specifier: workspace:* version: link:../../bundles/pjs/dist - '@tsparticles/plugin-absorbers': + "@tsparticles/plugin-absorbers": specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-background-mask': + "@tsparticles/plugin-background-mask": specifier: workspace:* version: link:../../plugins/backgroundMask/dist - '@tsparticles/plugin-blend': + "@tsparticles/plugin-blend": specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-canvas-mask': + "@tsparticles/plugin-canvas-mask": specifier: workspace:* version: link:../../plugins/canvasMask/dist - '@tsparticles/plugin-easing-back': + "@tsparticles/plugin-easing-back": specifier: workspace:* version: link:../../plugins/easings/back/dist - '@tsparticles/plugin-easing-bounce': + "@tsparticles/plugin-easing-bounce": specifier: workspace:* version: link:../../plugins/easings/bounce/dist - '@tsparticles/plugin-easing-circ': + "@tsparticles/plugin-easing-circ": specifier: workspace:* version: link:../../plugins/easings/circ/dist - '@tsparticles/plugin-easing-cubic': + "@tsparticles/plugin-easing-cubic": specifier: workspace:* version: link:../../plugins/easings/cubic/dist - '@tsparticles/plugin-easing-elastic': + "@tsparticles/plugin-easing-elastic": specifier: workspace:* version: link:../../plugins/easings/elastic/dist - '@tsparticles/plugin-easing-expo': + "@tsparticles/plugin-easing-expo": specifier: workspace:* version: link:../../plugins/easings/expo/dist - '@tsparticles/plugin-easing-gaussian': + "@tsparticles/plugin-easing-gaussian": specifier: workspace:* version: link:../../plugins/easings/gaussian/dist - '@tsparticles/plugin-easing-linear': + "@tsparticles/plugin-easing-linear": specifier: workspace:* version: link:../../plugins/easings/linear/dist - '@tsparticles/plugin-easing-quad': + "@tsparticles/plugin-easing-quad": specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-easing-quart': + "@tsparticles/plugin-easing-quart": specifier: workspace:* version: link:../../plugins/easings/quart/dist - '@tsparticles/plugin-easing-quint': + "@tsparticles/plugin-easing-quint": specifier: workspace:* version: link:../../plugins/easings/quint/dist - '@tsparticles/plugin-easing-sigmoid': + "@tsparticles/plugin-easing-sigmoid": specifier: workspace:* version: link:../../plugins/easings/sigmoid/dist - '@tsparticles/plugin-easing-sine': + "@tsparticles/plugin-easing-sine": specifier: workspace:* version: link:../../plugins/easings/sine/dist - '@tsparticles/plugin-easing-smoothstep': + "@tsparticles/plugin-easing-smoothstep": specifier: workspace:* version: link:../../plugins/easings/smoothstep/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-canvas': + "@tsparticles/plugin-emitters-shape-canvas": specifier: workspace:* version: link:../../plugins/emittersShapes/canvas/dist - '@tsparticles/plugin-emitters-shape-circle': + "@tsparticles/plugin-emitters-shape-circle": specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-path': + "@tsparticles/plugin-emitters-shape-path": specifier: workspace:* version: link:../../plugins/emittersShapes/path/dist - '@tsparticles/plugin-emitters-shape-polygon': + "@tsparticles/plugin-emitters-shape-polygon": specifier: workspace:* version: link:../../plugins/emittersShapes/polygon/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-export-image': + "@tsparticles/plugin-export-image": specifier: workspace:* version: link:../../plugins/exports/image/dist - '@tsparticles/plugin-export-json': + "@tsparticles/plugin-export-json": specifier: workspace:* version: link:../../plugins/exports/json/dist - '@tsparticles/plugin-export-video': + "@tsparticles/plugin-export-video": specifier: workspace:* version: link:../../plugins/exports/video/dist - '@tsparticles/plugin-hex-color': + "@tsparticles/plugin-hex-color": specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': + "@tsparticles/plugin-hsl-color": specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-hsv-color': + "@tsparticles/plugin-hsv-color": specifier: workspace:* version: link:../../plugins/colors/hsv/dist - '@tsparticles/plugin-hwb-color': + "@tsparticles/plugin-hwb-color": specifier: workspace:* version: link:../../plugins/colors/hwb/dist - '@tsparticles/plugin-infection': + "@tsparticles/plugin-infection": specifier: workspace:* version: link:../../plugins/infection/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-lab-color': + "@tsparticles/plugin-lab-color": specifier: workspace:* version: link:../../plugins/colors/lab/dist - '@tsparticles/plugin-lch-color': + "@tsparticles/plugin-lch-color": specifier: workspace:* version: link:../../plugins/colors/lch/dist - '@tsparticles/plugin-manual-particles': + "@tsparticles/plugin-manual-particles": specifier: workspace:* version: link:../../plugins/manualParticles/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-named-color': + "@tsparticles/plugin-named-color": specifier: workspace:* version: link:../../plugins/colors/named/dist - '@tsparticles/plugin-oklab-color': + "@tsparticles/plugin-oklab-color": specifier: workspace:* version: link:../../plugins/colors/oklab/dist - '@tsparticles/plugin-oklch-color': + "@tsparticles/plugin-oklch-color": specifier: workspace:* version: link:../../plugins/colors/oklch/dist - '@tsparticles/plugin-poisson-disc': + "@tsparticles/plugin-poisson-disc": specifier: workspace:* version: link:../../plugins/poisson/dist - '@tsparticles/plugin-polygon-mask': + "@tsparticles/plugin-polygon-mask": specifier: workspace:* version: link:../../plugins/polygonMask/dist - '@tsparticles/plugin-responsive': + "@tsparticles/plugin-responsive": specifier: workspace:* version: link:../../plugins/responsive/dist - '@tsparticles/plugin-rgb-color': + "@tsparticles/plugin-rgb-color": specifier: workspace:* version: link:../../plugins/colors/rgb/dist - '@tsparticles/plugin-sounds': + "@tsparticles/plugin-sounds": specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/plugin-themes': + "@tsparticles/plugin-themes": specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/plugin-zoom': + "@tsparticles/plugin-zoom": specifier: workspace:* version: link:../../plugins/zoom/dist - '@tsparticles/preset-ambient': + "@tsparticles/preset-ambient": specifier: workspace:* version: link:../../presets/ambient/dist - '@tsparticles/preset-big-circles': + "@tsparticles/preset-big-circles": specifier: workspace:* version: link:../../presets/bigCircles/dist - '@tsparticles/preset-bubbles': + "@tsparticles/preset-bubbles": specifier: workspace:* version: link:../../presets/bubbles/dist - '@tsparticles/preset-confetti': + "@tsparticles/preset-confetti": specifier: workspace:* version: link:../../presets/confetti/dist - '@tsparticles/preset-confetti-cannon': + "@tsparticles/preset-confetti-cannon": specifier: workspace:* version: link:../../presets/confettiCannon/dist - '@tsparticles/preset-confetti-explosions': + "@tsparticles/preset-confetti-explosions": specifier: workspace:* version: link:../../presets/confettiExplosions/dist - '@tsparticles/preset-confetti-falling': + "@tsparticles/preset-confetti-falling": specifier: workspace:* version: link:../../presets/confettiFalling/dist - '@tsparticles/preset-confetti-parade': + "@tsparticles/preset-confetti-parade": specifier: workspace:* version: link:../../presets/confettiParade/dist - '@tsparticles/preset-fire': + "@tsparticles/preset-fire": specifier: workspace:* version: link:../../presets/fire/dist - '@tsparticles/preset-firefly': + "@tsparticles/preset-firefly": specifier: workspace:* version: link:../../presets/firefly/dist - '@tsparticles/preset-fireworks': + "@tsparticles/preset-fireworks": specifier: workspace:* version: link:../../presets/fireworks/dist - '@tsparticles/preset-fountain': + "@tsparticles/preset-fountain": specifier: workspace:* version: link:../../presets/fountain/dist - '@tsparticles/preset-hyperspace': + "@tsparticles/preset-hyperspace": specifier: workspace:* version: link:../../presets/hyperspace/dist - '@tsparticles/preset-links': + "@tsparticles/preset-links": specifier: workspace:* version: link:../../presets/links/dist - '@tsparticles/preset-matrix': + "@tsparticles/preset-matrix": specifier: workspace:* version: link:../../presets/matrix/dist - '@tsparticles/preset-meteors': + "@tsparticles/preset-meteors": specifier: workspace:* version: link:../../presets/meteors/dist - '@tsparticles/preset-party': + "@tsparticles/preset-party": specifier: workspace:* version: link:../../presets/party/dist - '@tsparticles/preset-sea-anemone': + "@tsparticles/preset-sea-anemone": specifier: workspace:* version: link:../../presets/seaAnemone/dist - '@tsparticles/preset-snow': + "@tsparticles/preset-snow": specifier: workspace:* version: link:../../presets/snow/dist - '@tsparticles/preset-squares': + "@tsparticles/preset-squares": specifier: workspace:* version: link:../../presets/squares/dist - '@tsparticles/preset-stars': + "@tsparticles/preset-stars": specifier: workspace:* version: link:../../presets/stars/dist - '@tsparticles/preset-triangles': + "@tsparticles/preset-triangles": specifier: workspace:* version: link:../../presets/triangles/dist - '@tsparticles/ribbons': + "@tsparticles/ribbons": specifier: workspace:* version: link:../../bundles/ribbons/dist - '@tsparticles/shape-arrow': + "@tsparticles/shape-arrow": specifier: workspace:* version: link:../../shapes/arrow/dist - '@tsparticles/shape-cards': + "@tsparticles/shape-cards": specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-circle': + "@tsparticles/shape-circle": specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/shape-cog': + "@tsparticles/shape-cog": specifier: workspace:* version: link:../../shapes/cog/dist - '@tsparticles/shape-emoji': + "@tsparticles/shape-emoji": specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': + "@tsparticles/shape-heart": specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-image': + "@tsparticles/shape-image": specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-infinity': + "@tsparticles/shape-infinity": specifier: workspace:* version: link:../../shapes/infinity/dist - '@tsparticles/shape-line': + "@tsparticles/shape-line": specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-matrix': + "@tsparticles/shape-matrix": specifier: workspace:* version: link:../../shapes/matrix/dist - '@tsparticles/shape-path': + "@tsparticles/shape-path": specifier: workspace:* version: link:../../shapes/path/dist - '@tsparticles/shape-polygon': + "@tsparticles/shape-polygon": specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-ribbon': + "@tsparticles/shape-ribbon": specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/shape-rounded-polygon': + "@tsparticles/shape-rounded-polygon": specifier: workspace:* version: link:../../shapes/rounded-polygon/dist - '@tsparticles/shape-rounded-rect': + "@tsparticles/shape-rounded-rect": specifier: workspace:* version: link:../../shapes/rounded-rect/dist - '@tsparticles/shape-spiral': + "@tsparticles/shape-spiral": specifier: workspace:* version: link:../../shapes/spiral/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-squircle': + "@tsparticles/shape-squircle": specifier: workspace:* version: link:../../shapes/squircle/dist - '@tsparticles/shape-star': + "@tsparticles/shape-star": specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/shape-text': + "@tsparticles/shape-text": specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/simplex-noise': + "@tsparticles/simplex-noise": specifier: workspace:* version: link:../../utils/simplexNoise/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/smooth-value-noise': + "@tsparticles/smooth-value-noise": specifier: workspace:* version: link:../../utils/smoothValueNoise/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-gradient': + "@tsparticles/updater-gradient": specifier: workspace:* version: link:../../updaters/gradient/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': + "@tsparticles/updater-opacity": specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-orbit': + "@tsparticles/updater-orbit": specifier: workspace:* version: link:../../updaters/orbit/dist - '@tsparticles/updater-out-modes': + "@tsparticles/updater-out-modes": specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': + "@tsparticles/updater-size": specifier: workspace:* version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': + "@tsparticles/updater-twinkle": specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist tsparticles: specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@datalust/winston-seq': + "@datalust/winston-seq": specifier: ^3.0.1 version: 3.0.1(encoding@0.1.13)(winston@3.19.0) - '@fortawesome/fontawesome-free': + "@fortawesome/fontawesome-free": specifier: ^7.2.0 version: 7.2.0 - '@types/connect-livereload': + "@types/connect-livereload": specifier: ^0.6.3 version: 0.6.3 - '@types/express': + "@types/express": specifier: ^5.0.6 version: 5.0.6 - '@types/livereload': + "@types/livereload": specifier: ^0.9.5 version: 0.9.5 - '@types/node': - specifier: ^25.8.0 - version: 25.9.1 - '@types/stylus': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/stylus": specifier: ^0.48.43 version: 0.48.43 ace-builds: @@ -6118,8 +6243,8 @@ importers: specifier: ^5.3.8 version: 5.3.8(@popperjs/core@2.11.8) concurrently: - specifier: ^9.2.1 - version: 9.2.1 + specifier: ^10.0.3 + version: 10.0.3 connect-livereload: specifier: ^0.6.1 version: 0.6.1 @@ -6133,7 +6258,7 @@ importers: specifier: ^8.5.2 version: 8.5.2(express@5.2.1) helmet: - specifier: ^8.1.0 + specifier: ^8.2.0 version: 8.2.0 jquery: specifier: ^4.0.0 @@ -6165,38 +6290,38 @@ importers: demo/vanilla_new: dependencies: - '@tsparticles/all': + "@tsparticles/all": specifier: workspace:* version: link:../../bundles/all/dist - '@tsparticles/configs': + "@tsparticles/configs": specifier: workspace:* version: link:../../utils/configs/dist devDependencies: - '@swc/core': - specifier: ^1.15.33 - version: 1.15.40 + "@swc/core": + specifier: ^1.15.41 + version: 1.15.41 minify: specifier: ^15.3.1 - version: 15.3.1 + version: 15.3.1(supports-color@8.1.1) sass: - specifier: ^1.99.0 - version: 1.100.0 + specifier: ^1.101.0 + version: 1.101.0 demo/vite: dependencies: - '@tsparticles/all': + "@tsparticles/all": specifier: workspace:* version: link:../../bundles/all/dist - '@tsparticles/configs': + "@tsparticles/configs": specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/preset-big-circles': + "@tsparticles/preset-big-circles": specifier: workspace:* version: link:../../presets/bigCircles/dist devDependencies: @@ -6204,22 +6329,22 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.14 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) demo/vue2: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/vue2': - specifier: workspace:^ + "@tsparticles/vue2": + specifier: workspace:* version: link:../../wrappers/vue2/dist tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist vue: specifier: ^2.7.14 @@ -6231,165 +6356,162 @@ importers: specifier: ^9.1.2 version: 9.1.2(vue-class-component@7.2.6(vue@2.7.16))(vue@2.7.16) devDependencies: - '@babel/core': - specifier: ^7.22.19 - version: 7.29.0 - '@babel/plugin-proposal-class-properties': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': - specifier: ^7.22.15 - version: 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': - specifier: ^7.28.6 - version: 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': - specifier: ^7.27.1 - version: 7.28.6(@babel/core@7.29.0) - '@eslint/js': + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/plugin-proposal-decorators": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-private-methods": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-private-property-in-object": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@rollup/plugin-json': - specifier: ^6.0.0 - version: 6.1.0(rollup@4.60.4) - '@rollup/plugin-node-resolve': - specifier: ^15.2.1 - version: 15.3.1(rollup@4.60.4) - '@rollup/plugin-replace': - specifier: ^5.0.2 - version: 5.0.7(rollup@4.60.4) - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@vue/cli-plugin-babel': - specifier: ^5.0.8 - version: 5.0.9(@swc/core@1.15.40)(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(core-js@3.49.0)(encoding@0.1.13)(postcss@8.5.15)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - '@vue/cli-plugin-typescript': - specifier: ^5.0.8 - version: 5.0.9(@swc/core@1.15.40)(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(postcss@8.5.15)(typescript@5.9.3)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - '@vue/cli-service': - specifier: ^5.0.8 - version: 5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@rollup/plugin-json": + specifier: ^6.1.0 + version: 6.1.0(rollup@4.62.0) + "@rollup/plugin-node-resolve": + specifier: ^16.0.3 + version: 16.0.3(rollup@4.62.0) + "@rollup/plugin-replace": + specifier: ^6.0.3 + version: 6.0.3(rollup@4.62.0) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vue/cli-plugin-babel": + specifier: ^5.0.9 + version: 5.0.9(@swc/core@1.15.41)(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(core-js@3.49.0)(encoding@0.1.13)(postcss@8.5.15)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + "@vue/cli-plugin-typescript": + specifier: ^5.0.9 + version: 5.0.9(@swc/core@1.15.41)(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(loader-utils@3.3.1)(postcss@8.5.15)(typescript@6.0.3)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + "@vue/cli-service": + specifier: ^5.0.9 + version: 5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0) babel-loader: - specifier: ^8.3.0 - version: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + specifier: ^10.1.1 + version: 10.1.1(@babel/core@8.0.1)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) fork-ts-checker-webpack-plugin: - specifier: ^8.0.0 - version: 8.0.0(typescript@5.9.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + specifier: ^9.1.0 + version: 9.1.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) globals: - specifier: ^16.4.0 - version: 16.5.0 + specifier: ^17.6.0 + version: 17.6.0 postcss: - specifier: ^8.4.29 + specifier: ^8.5.15 version: 8.5.15 prettier: - specifier: ^3.0.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 rollup: - specifier: ^4.60.4 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 rollup-plugin-terser: specifier: ^7.0.2 - version: 7.0.2(rollup@4.60.4) + version: 7.0.2(rollup@4.62.0) rollup-plugin-typescript: specifier: ^1.0.1 - version: 1.0.1(tslib@2.8.1)(typescript@5.9.3) + version: 1.0.1(tslib@2.8.1)(typescript@6.0.3) rollup-plugin-typescript2: - specifier: ^0.35.0 - version: 0.35.0(rollup@4.60.4)(typescript@5.9.3) + specifier: ^0.37.0 + version: 0.37.0(rollup@4.62.0)(typescript@6.0.3) rollup-plugin-vue: - specifier: ^5.1.9 - version: 5.1.9(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(postcss@8.5.15)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16) + specifier: ^6.0.0 + version: 6.0.0(@vue/compiler-sfc@3.5.38)(supports-color@8.1.1) tslib: - specifier: ^2.6.2 + specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ^5.2.2 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) vue-loader: - specifier: ^15.10.2 - version: 15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + specifier: ^15.11.1 + version: 15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-template-compiler: - specifier: ^2.7.14 + specifier: ^2.7.16 version: 2.7.16 webpack: - specifier: ^4.46.0 - version: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ^4.47.0 + version: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) demo/vue3: dependencies: - '@tsparticles/configs': - specifier: workspace:^ + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/vue3': - specifier: workspace:^ + "@tsparticles/vue3": + specifier: workspace:* version: link:../../wrappers/vue3/dist tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist vue: - specifier: ^3.5.32 - version: 3.5.34(typescript@6.0.3) + specifier: ^3.5.38 + version: 3.5.38(typescript@6.0.3) vue-router: - specifier: ^5.0.4 - version: 5.0.7(@vue/compiler-sfc@3.5.34)(vue@3.5.34(typescript@6.0.3)) + specifier: ^5.1.0 + version: 5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@rushstack/eslint-patch': + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@rushstack/eslint-patch": specifier: ^1.16.1 version: 1.16.1 - '@tsconfig/node18': + "@tsconfig/node18": specifier: ^18.2.6 version: 18.2.6 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vitejs/plugin-vue': - specifier: ^6.0.5 - version: 6.0.7(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vitejs/plugin-vue": + specifier: ^6.0.7 + version: 6.0.7(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vitejs/plugin-vue-jsx": specifier: ^5.1.5 - version: 5.1.5(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vue/eslint-config-prettier': + version: 5.1.5(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vue/eslint-config-prettier": specifier: ^10.2.0 - version: 10.2.0(@types/eslint@9.6.1)(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) - '@vue/eslint-config-typescript': - specifier: ^14.7.0 - version: 14.7.0(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vue/tsconfig': + version: 10.2.0(@types/eslint@9.6.1)(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) + "@vue/eslint-config-typescript": + specifier: ^14.8.0 + version: 14.8.0(eslint-plugin-vue@10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vue/tsconfig": specifier: ^0.9.1 - version: 0.9.1(typescript@6.0.3)(vue@3.5.34(typescript@6.0.3)) + version: 0.9.1(typescript@6.0.3)(vue@3.5.38(typescript@6.0.3)) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 minimatch: specifier: ^10.2.5 @@ -6398,4781 +6520,4812 @@ importers: specifier: ^4.1.5 version: 4.1.5 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) vue-tsc: - specifier: ^3.2.6 - version: 3.3.1(typescript@6.0.3) + specifier: ^3.3.5 + version: 3.3.5(typescript@6.0.3) demo/webcomponents: devDependencies: - '@fortawesome/fontawesome-free': - specifier: ^6.4.0 - version: 6.7.2 - '@tsparticles/configs': - specifier: workspace:^ + "@fortawesome/fontawesome-free": + specifier: ^7.2.0 + version: 7.2.0 + "@tsparticles/configs": + specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/webcomponents': - specifier: workspace:^ + "@tsparticles/webcomponents": + specifier: workspace:* version: link:../../wrappers/webcomponents/dist - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@webcomponents/webcomponentsjs': + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@webcomponents/webcomponentsjs": specifier: ^2.8.0 version: 2.8.0 eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) express: - specifier: ^4.18.2 + specifier: ^4.22.2 version: 4.22.2 helmet: - specifier: ^8.1.0 + specifier: ^8.2.0 version: 8.2.0 prettier: - specifier: ^3.0.0 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 pug: - specifier: ^3.0.2 + specifier: ^3.0.4 version: 3.0.4 stylus: specifier: ^0.64.0 version: 0.64.0 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: ^5.0.4 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 effects/bubble: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist effects/filter: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist effects/particles: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist effects/shadow: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist effects/trail: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist engine: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../cli/packages/cli-build publishDirectory: dist + integrations/mcp-server: + dependencies: + "@modelcontextprotocol/sdk": + specifier: ^1.29.0 + version: 1.29.0(zod@4.4.3) + zod: + specifier: ^4.4.3 + version: 4.4.3 + devDependencies: + "@types/node": + specifier: ^25.9.2 + version: 25.9.3 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + vitest: + specifier: 4.1.7 + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + interactions/external/attract: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/bounce: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/bubble: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/cannon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/connect: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/destroy: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/drag: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/grab: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/parallax: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/particle: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/pause: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/pop: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/push: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/remove: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/repulse: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/slow: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/external/trail: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/light: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist publishDirectory: dist interactions/particles/attract: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/particles/collisions: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/particles/links: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist interactions/particles/repulse: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../../plugins/interactivity/dist publishDirectory: dist palettes/atmosphere/coloredSmokeAmber: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeBlue: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeGreen: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeMagenta: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeOrange: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokePurple: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeRainbow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeRed: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/coloredSmokeTeal: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/dustHaze: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/fogMorning: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmosphere/volcanicAsh: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/heatDuality: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/heatHaze: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/lightning: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/shockwave: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/smokeCold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/smokeWarm: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/sunriseGold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/sunsetBinary: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/thermalMap: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/atmospheric/thunderstorm: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/default: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/gold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/monochromeBlue: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/monochromeGreen: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/monochromePink: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/monochromePurple: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/monochromeRed: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/neon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/pastel: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/patriotic: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/rainbow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/confetti/winter: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/caustics: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/desertSand: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/mudAndDirt: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/oilSlick: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/rockAndGravel: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/rustAndCorrosion: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/earth/skinAndOrganic: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/bioluminescence: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/bloodAndGore: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/fairyDust: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/holyLight: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/iceMagic: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/iceTriad: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/iris: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/jellyfishGlow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/mermaid: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/poisonAndVenom: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fantasy/unicorn: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/candlelight: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/default: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/embersAndAsh: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/fullFireGradient: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/lavaLamp: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/metalSparks: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/moltenMetal: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fire/seed: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/blue: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/blueStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/copper: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/copperStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/gold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/goldStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/green: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/greenStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/ice: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/iceStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/multicolor: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/multicolorStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/neon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/neonStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/pastel: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/pastelStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/purple: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/purpleStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/rainbow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/rainbowStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/red: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/redStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/silver: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/fireworks/silverStroke: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/apple: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/apple-green: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/apple-red: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/avocado: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/bell-peppers: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/berries: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/cherry: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/citrus-twist: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/gingerbread-house: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/grapes: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/macaron: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/melon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/pineapple: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/pizza: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/sakura: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/salad: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/spice-rack: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/steak: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/sushi: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/tropical-fruits: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/food/watermelon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/gaming/minecraft: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/gaming/pacman: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/gaming/superMarioBros: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/gaming/tetris: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/bulletHit: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/explosionDebris: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/glassBurst: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/meteorImpact: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/nuclearGlow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/shockwaveBlast: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/impact/splatterDark: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/blues: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/brown: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/cyan: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/gold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/greens: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/noir: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/oranges: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/pinks: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/purples: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/reds: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/silver: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/teal: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/white: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/monochromatic/yellows: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/autumnLeaves: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/cherryBlossom: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/dandelionSeeds: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/earthyNature: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/fireflies: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/forestCanopy: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/pollenAndSpores: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/snowfall: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/nature/springBloom: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/bokehCold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/bokehGold: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/bokehPastel: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/holographicShimmer: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/laserScatter: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/lensFlareDust: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/optics/prismSpectrum: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/pastel/cool: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/pastel/dream: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/pastel/mint: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/pastel/sunset: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/pastel/warm: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/auroraBorealis: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/cosmicRadiation: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/darkMatter: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/galaxyDust: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/nebula: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/portal: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/pulsar: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/solarWind: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/space/supernova: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/acidPair: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/cmySecondaries: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/dualityBlueYellow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/dualityGreenMagenta: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/dualityRedCyan: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/fullSpectrum: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/okabeItoAccessible: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/prismScatter: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/rainbow: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/spectrum/rgbPrimaries: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/crtPhosphor: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/glitch: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/hologram: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/lofiWarm: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/matrixRain: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/neonCity: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/networkNodes: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/plasmaArc: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/tech/vaporwave: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/vibrant/default: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/vibrant/electric: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/vibrant/neon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/vibrant/retro: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/vibrant/tropical: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/deepOcean: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/default: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/foamAndBubbles: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/fogCoastal: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/inkInWater: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/lagoon: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/rain: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/risingBubbles: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist palettes/water/splash: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist paths/branches: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/brownian: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/curlNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/simplex-noise': + "@tsparticles/simplex-noise": specifier: workspace:* version: link:../../utils/simplexNoise/dist publishDirectory: dist paths/curves: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/fractalNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/fractal-noise': + "@tsparticles/fractal-noise": specifier: workspace:* version: link:../../utils/fractalNoise/dist - '@tsparticles/noise-field': + "@tsparticles/noise-field": specifier: workspace:* version: link:../../utils/noiseField/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/grid: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/levy: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/perlinNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/noise-field': + "@tsparticles/noise-field": specifier: workspace:* version: link:../../utils/noiseField/dist - '@tsparticles/perlin-noise': + "@tsparticles/perlin-noise": specifier: workspace:* version: link:../../utils/perlinNoise/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/polygon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/random: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/simplexNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/noise-field': + "@tsparticles/noise-field": specifier: workspace:* version: link:../../utils/noiseField/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/simplex-noise': + "@tsparticles/simplex-noise": specifier: workspace:* version: link:../../utils/simplexNoise/dist publishDirectory: dist paths/spiral: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/svg: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist paths/zigzag: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist plugins/absorbers: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../interactivity/dist publishDirectory: dist plugins/backgroundMask: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/blend: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/canvasMask: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/colors/hex: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hsl: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hsv: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hwb: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/lab: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/lch: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/named: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/oklab: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/oklch: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/rgb: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/easings/back: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/bounce: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/circ: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/cubic: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/elastic: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/expo: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/gaussian: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist plugins/easings/linear: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist plugins/easings/quad: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../../cli/commands/build publishDirectory: dist plugins/easings/quart: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/quint: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/sigmoid: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/sine: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/easings/smoothstep: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/emitters: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../interactivity/dist publishDirectory: dist plugins/emittersShapes/canvas: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../emitters/dist publishDirectory: dist plugins/emittersShapes/circle: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../emitters/dist publishDirectory: dist plugins/emittersShapes/path: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../emitters/dist publishDirectory: dist plugins/emittersShapes/polygon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../emitters/dist publishDirectory: dist plugins/emittersShapes/square: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../emitters/dist publishDirectory: dist plugins/exports/image: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/exports/json: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/exports/video: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../../engine/dist publishDirectory: dist plugins/infection: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../interactivity/dist publishDirectory: dist plugins/interactivity: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/manualParticles: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/motion: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/move: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/poisson: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/polygonMask: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/responsive: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/sounds: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/themes: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/trail: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist plugins/zoom: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist presets/ambient: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/bigCircles: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/bubbles: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/confetti: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/confettiCannon: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-cannon': + "@tsparticles/interaction-external-cannon": specifier: workspace:* version: link:../../interactions/external/cannon/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/confettiExplosions: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/confettiFalling: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/confettiParade: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-motion': + "@tsparticles/plugin-motion": specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/fire: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-push': + "@tsparticles/interaction-external-push": specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/firefly: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-trail': + "@tsparticles/interaction-external-trail": specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/fireworks: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/effect-trail': + "@tsparticles/effect-trail": specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-sounds': + "@tsparticles/plugin-sounds": specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/shape-line': + "@tsparticles/shape-line": specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/fountain: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/updater-destroy': + "@tsparticles/updater-destroy": specifier: workspace:* version: link:../../updaters/destroy/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/hyperspace: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/updater-life': + "@tsparticles/updater-life": specifier: workspace:* version: link:../../updaters/life/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/links: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/matrix: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/effect-shadow': + "@tsparticles/effect-shadow": specifier: workspace:* version: link:../../effects/shadow/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-poisson-disc': + "@tsparticles/plugin-poisson-disc": specifier: workspace:* version: link:../../plugins/poisson/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/shape-matrix': + "@tsparticles/shape-matrix": specifier: workspace:* version: link:../../shapes/matrix/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/meteors: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/effect-trail': + "@tsparticles/effect-trail": specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/party: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': + "@tsparticles/plugin-emitters-shape-square": specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/shape-polygon': + "@tsparticles/shape-polygon": specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-ribbon': + "@tsparticles/shape-ribbon": specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-roll': + "@tsparticles/updater-roll": specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-tilt': + "@tsparticles/updater-tilt": specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/seaAnemone: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/path-curves': + "@tsparticles/path-curves": specifier: workspace:* version: link:../../paths/curves/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-trail': + "@tsparticles/plugin-trail": specifier: workspace:* version: link:../../plugins/trail/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/snow: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/palette-snowfall': + "@tsparticles/palette-snowfall": specifier: workspace:* version: link:../../palettes/nature/snowfall/dist - '@tsparticles/updater-wobble': + "@tsparticles/updater-wobble": specifier: workspace:* version: link:../../updaters/wobble/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/squares: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-emitters': + "@tsparticles/plugin-emitters": specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-hex-color': + "@tsparticles/plugin-hex-color": specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/shape-square': + "@tsparticles/shape-square": specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/updater-paint': + "@tsparticles/updater-paint": specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-rotate': + "@tsparticles/updater-rotate": specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': + "@tsparticles/updater-size": specifier: workspace:* version: link:../../updaters/size/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/stars: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist presets/triangles: dependencies: - '@tsparticles/basic': + "@tsparticles/basic": specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-particles-links': + "@tsparticles/interaction-particles-links": specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/plugin-interactivity': + "@tsparticles/plugin-interactivity": specifier: workspace:* version: link:../../plugins/interactivity/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/cli-command-build': - specifier: workspace:^ + "@tsparticles/cli-command-build": + specifier: workspace:* version: link:../../cli/commands/build publishDirectory: dist shapes/arrow: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/cards: dependencies: - '@tsparticles/path-utils': + "@tsparticles/path-utils": specifier: workspace:* version: link:../../utils/pathUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/circle: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/cog: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/emoji: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/heart: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/image: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/infinity: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/line: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/matrix: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/path: dependencies: - '@tsparticles/path-utils': + "@tsparticles/path-utils": specifier: workspace:* version: link:../../utils/pathUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/polygon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/ribbon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/rounded-polygon: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/rounded-rect: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/spiral: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/square: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/squircle: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/star: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist shapes/text: dependencies: - '@tsparticles/canvas-utils': + "@tsparticles/canvas-utils": specifier: workspace:* version: link:../../utils/canvasUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist + templates/404: {} + + templates/confetti: {} + + templates/landing: {} + + templates/login: {} + + templates/particles: {} + + templates/portfolio: {} + templates/react: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/react': - specifier: workspace:^ + "@tsparticles/react": + specifier: workspace:* version: link:../../wrappers/react/dist tslib: specifier: ^2.8.1 @@ -11187,36 +11340,36 @@ importers: templates/react-ts: dependencies: - '@testing-library/dom': + "@testing-library/dom": specifier: ^10.4.1 version: 10.4.1 - '@testing-library/jest-dom': + "@testing-library/jest-dom": specifier: ^6.9.1 version: 6.9.1 - '@testing-library/react': + "@testing-library/react": specifier: ^16.3.2 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@testing-library/user-event': + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@testing-library/user-event": specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/react': - specifier: workspace:^ + "@tsparticles/react": + specifier: workspace:* version: link:../../wrappers/react/dist - '@types/jest': + "@types/jest": specifier: ^30.0.0 version: 30.0.0 - '@types/node': + "@types/node": specifier: ^25.6.0 - version: 25.9.1 - '@types/react': + version: 25.9.3 + "@types/react": specifier: ^19.2.14 - version: 19.2.15 - '@types/react-dom': + version: 19.2.17 + "@types/react-dom": specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.15) + version: 19.2.3(@types/react@19.2.17) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -11228,256 +11381,292 @@ importers: version: 6.0.3 web-vitals: specifier: ^5.2.0 - version: 5.2.0 + version: 5.3.0 devDependencies: fs-extra: specifier: ^11.3.4 version: 11.3.5 + templates/ribbons: {} + + templates/scaffold: {} + + templates/tictactoe: {} + updaters/destroy: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/gradient: + dependencies: + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/life: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/opacity: + dependencies: + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/orbit: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/outModes: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/paint: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/roll: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/rotate: + dependencies: + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/size: + dependencies: + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/tilt: + dependencies: + "@tsparticles/animation-utils": + specifier: workspace:* + version: link:../../utils/animationUtils/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/twinkle: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist updaters/wobble: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* + version: link:../../cli/packages/cli-build + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + publishDirectory: dist + + utils/animationUtils: + devDependencies: + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/canvasUtils: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/configs: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/fractalNoise: dependencies: - '@tsparticles/smooth-value-noise': + "@tsparticles/smooth-value-noise": specifier: workspace:* version: link:../smoothValueNoise/dist devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/noiseField: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-move': + "@tsparticles/plugin-move": specifier: workspace:* version: link:../../plugins/move/dist publishDirectory: dist utils/pathUtils: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/perlinNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/simplexNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/smoothValueNoise: devDependencies: - '@tsparticles/cli-build': - specifier: workspace:^ + "@tsparticles/cli-build": + specifier: workspace:* version: link:../../cli/packages/cli-build - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist publishDirectory: dist utils/tests: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/plugin-hex-color': + "@tsparticles/plugin-hex-color": specifier: workspace:* version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': + "@tsparticles/plugin-hsl-color": specifier: workspace:* version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-hsv-color': + "@tsparticles/plugin-hsv-color": specifier: workspace:* version: link:../../plugins/colors/hsv/dist - '@tsparticles/plugin-rgb-color': + "@tsparticles/plugin-rgb-color": specifier: workspace:* version: link:../../plugins/colors/rgb/dist devDependencies: - '@types/jsdom': + "@types/jsdom": specifier: ^28.0.3 version: 28.0.3 - '@vitest/coverage-v8': - specifier: ^4.1.6 - version: 4.1.7(vitest@4.1.7) - '@vitest/ui': - specifier: ^4.1.6 - version: 4.1.7(vitest@4.1.7) + "@vitest/coverage-v8": + specifier: ^4.1.9 + version: 4.1.9(vitest@4.1.9) + "@vitest/ui": + specifier: ^4.1.9 + version: 4.1.9(vitest@4.1.9) canvas: specifier: ^3.2.3 version: 3.2.3 @@ -11488,12 +11677,12 @@ importers: specifier: ^3.0.2 version: 3.0.2(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3)) vitest: - specifier: ^4.1.6 - version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) websites/confetti: dependencies: - '@tsparticles/confetti': + "@tsparticles/confetti": specifier: workspace:* version: link:../../bundles/confetti/dist ace-builds: @@ -11503,18 +11692,18 @@ importers: specifier: ^1.15.4 version: 1.15.4 devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) eslint: specifier: ^10.4.0 - version: 10.4.1(jiti@2.7.0) + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) gh-pages: specifier: ^6.3.0 version: 6.3.0 @@ -11523,14 +11712,14 @@ importers: version: 17.6.0 prettier: specifier: ^3.8.3 - version: 3.8.3 + version: 3.8.4 vite: specifier: ^8.0.14 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) websites/ribbons: dependencies: - '@tsparticles/ribbons': + "@tsparticles/ribbons": specifier: workspace:* version: link:../../bundles/ribbons/dist ace-builds: @@ -11540,18 +11729,18 @@ importers: specifier: ^1.15.4 version: 1.15.4 devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) eslint: specifier: ^10.4.0 - version: 10.4.1(jiti@2.7.0) + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: specifier: ^5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) gh-pages: specifier: ^6.3.0 version: 6.3.0 @@ -11560,683 +11749,683 @@ importers: version: 17.6.0 prettier: specifier: ^3.8.3 - version: 3.8.3 + version: 3.8.4 vite: specifier: ^8.0.14 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) websites/website: dependencies: - '@tsparticles/all': + "@tsparticles/all": specifier: workspace:* version: link:../../bundles/all/dist - '@tsparticles/confetti': + "@tsparticles/confetti": specifier: workspace:* version: link:../../bundles/confetti/dist - '@tsparticles/configs': + "@tsparticles/configs": specifier: workspace:* version: link:../../utils/configs/dist - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@tsparticles/fireworks': + "@tsparticles/fireworks": specifier: workspace:* version: link:../../bundles/fireworks/dist - '@tsparticles/palette-acid-pair': + "@tsparticles/palette-acid-pair": specifier: workspace:* version: link:../../palettes/spectrum/acidPair/dist - '@tsparticles/palette-apple': + "@tsparticles/palette-apple": specifier: workspace:* version: link:../../palettes/food/apple/dist - '@tsparticles/palette-apple-green': + "@tsparticles/palette-apple-green": specifier: workspace:* version: link:../../palettes/food/apple-green/dist - '@tsparticles/palette-apple-red': + "@tsparticles/palette-apple-red": specifier: workspace:* version: link:../../palettes/food/apple-red/dist - '@tsparticles/palette-aurora-borealis': + "@tsparticles/palette-aurora-borealis": specifier: workspace:* version: link:../../palettes/space/auroraBorealis/dist - '@tsparticles/palette-autumn-leaves': + "@tsparticles/palette-autumn-leaves": specifier: workspace:* version: link:../../palettes/nature/autumnLeaves/dist - '@tsparticles/palette-avocado': + "@tsparticles/palette-avocado": specifier: workspace:* version: link:../../palettes/food/avocado/dist - '@tsparticles/palette-bell-peppers': + "@tsparticles/palette-bell-peppers": specifier: workspace:* version: link:../../palettes/food/bell-peppers/dist - '@tsparticles/palette-berries': + "@tsparticles/palette-berries": specifier: workspace:* version: link:../../palettes/food/berries/dist - '@tsparticles/palette-bioluminescence': + "@tsparticles/palette-bioluminescence": specifier: workspace:* version: link:../../palettes/fantasy/bioluminescence/dist - '@tsparticles/palette-blood-and-gore': + "@tsparticles/palette-blood-and-gore": specifier: workspace:* version: link:../../palettes/fantasy/bloodAndGore/dist - '@tsparticles/palette-bokeh-cold': + "@tsparticles/palette-bokeh-cold": specifier: workspace:* version: link:../../palettes/optics/bokehCold/dist - '@tsparticles/palette-bokeh-gold': + "@tsparticles/palette-bokeh-gold": specifier: workspace:* version: link:../../palettes/optics/bokehGold/dist - '@tsparticles/palette-bokeh-pastel': + "@tsparticles/palette-bokeh-pastel": specifier: workspace:* version: link:../../palettes/optics/bokehPastel/dist - '@tsparticles/palette-bullet-hit': + "@tsparticles/palette-bullet-hit": specifier: workspace:* version: link:../../palettes/impact/bulletHit/dist - '@tsparticles/palette-candlelight': + "@tsparticles/palette-candlelight": specifier: workspace:* version: link:../../palettes/fire/candlelight/dist - '@tsparticles/palette-caustics': + "@tsparticles/palette-caustics": specifier: workspace:* version: link:../../palettes/earth/caustics/dist - '@tsparticles/palette-cherry': + "@tsparticles/palette-cherry": specifier: workspace:* version: link:../../palettes/food/cherry/dist - '@tsparticles/palette-cherry-blossom': + "@tsparticles/palette-cherry-blossom": specifier: workspace:* version: link:../../palettes/nature/cherryBlossom/dist - '@tsparticles/palette-citrus-twist': + "@tsparticles/palette-citrus-twist": specifier: workspace:* version: link:../../palettes/food/citrus-twist/dist - '@tsparticles/palette-cmy-secondaries': + "@tsparticles/palette-cmy-secondaries": specifier: workspace:* version: link:../../palettes/spectrum/cmySecondaries/dist - '@tsparticles/palette-colored-smoke-amber': + "@tsparticles/palette-colored-smoke-amber": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeAmber/dist - '@tsparticles/palette-colored-smoke-blue': + "@tsparticles/palette-colored-smoke-blue": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeBlue/dist - '@tsparticles/palette-colored-smoke-green': + "@tsparticles/palette-colored-smoke-green": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeGreen/dist - '@tsparticles/palette-colored-smoke-magenta': + "@tsparticles/palette-colored-smoke-magenta": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeMagenta/dist - '@tsparticles/palette-colored-smoke-orange': + "@tsparticles/palette-colored-smoke-orange": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeOrange/dist - '@tsparticles/palette-colored-smoke-purple': + "@tsparticles/palette-colored-smoke-purple": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokePurple/dist - '@tsparticles/palette-colored-smoke-rainbow': + "@tsparticles/palette-colored-smoke-rainbow": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeRainbow/dist - '@tsparticles/palette-colored-smoke-red': + "@tsparticles/palette-colored-smoke-red": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeRed/dist - '@tsparticles/palette-colored-smoke-teal': + "@tsparticles/palette-colored-smoke-teal": specifier: workspace:* version: link:../../palettes/atmosphere/coloredSmokeTeal/dist - '@tsparticles/palette-confetti': + "@tsparticles/palette-confetti": specifier: workspace:* version: link:../../palettes/confetti/default/dist - '@tsparticles/palette-confetti-gold': + "@tsparticles/palette-confetti-gold": specifier: workspace:* version: link:../../palettes/confetti/gold/dist - '@tsparticles/palette-confetti-monochrome-blue': + "@tsparticles/palette-confetti-monochrome-blue": specifier: workspace:* version: link:../../palettes/confetti/monochromeBlue/dist - '@tsparticles/palette-confetti-monochrome-green': + "@tsparticles/palette-confetti-monochrome-green": specifier: workspace:* version: link:../../palettes/confetti/monochromeGreen/dist - '@tsparticles/palette-confetti-monochrome-pink': + "@tsparticles/palette-confetti-monochrome-pink": specifier: workspace:* version: link:../../palettes/confetti/monochromePink/dist - '@tsparticles/palette-confetti-monochrome-purple': + "@tsparticles/palette-confetti-monochrome-purple": specifier: workspace:* version: link:../../palettes/confetti/monochromePurple/dist - '@tsparticles/palette-confetti-monochrome-red': + "@tsparticles/palette-confetti-monochrome-red": specifier: workspace:* version: link:../../palettes/confetti/monochromeRed/dist - '@tsparticles/palette-confetti-neon': + "@tsparticles/palette-confetti-neon": specifier: workspace:* version: link:../../palettes/confetti/neon/dist - '@tsparticles/palette-confetti-pastel': + "@tsparticles/palette-confetti-pastel": specifier: workspace:* version: link:../../palettes/confetti/pastel/dist - '@tsparticles/palette-confetti-patriotic': + "@tsparticles/palette-confetti-patriotic": specifier: workspace:* version: link:../../palettes/confetti/patriotic/dist - '@tsparticles/palette-confetti-rainbow': + "@tsparticles/palette-confetti-rainbow": specifier: workspace:* version: link:../../palettes/confetti/rainbow/dist - '@tsparticles/palette-confetti-winter': + "@tsparticles/palette-confetti-winter": specifier: workspace:* version: link:../../palettes/confetti/winter/dist - '@tsparticles/palette-cosmic-radiation': + "@tsparticles/palette-cosmic-radiation": specifier: workspace:* version: link:../../palettes/space/cosmicRadiation/dist - '@tsparticles/palette-crt-phosphor': + "@tsparticles/palette-crt-phosphor": specifier: workspace:* version: link:../../palettes/tech/crtPhosphor/dist - '@tsparticles/palette-dandelion-seeds': + "@tsparticles/palette-dandelion-seeds": specifier: workspace:* version: link:../../palettes/nature/dandelionSeeds/dist - '@tsparticles/palette-dark-matter': + "@tsparticles/palette-dark-matter": specifier: workspace:* version: link:../../palettes/space/darkMatter/dist - '@tsparticles/palette-deep-ocean': + "@tsparticles/palette-deep-ocean": specifier: workspace:* version: link:../../palettes/water/deepOcean/dist - '@tsparticles/palette-desert-sand': + "@tsparticles/palette-desert-sand": specifier: workspace:* version: link:../../palettes/earth/desertSand/dist - '@tsparticles/palette-duality-blue-yellow': + "@tsparticles/palette-duality-blue-yellow": specifier: workspace:* version: link:../../palettes/spectrum/dualityBlueYellow/dist - '@tsparticles/palette-duality-green-magenta': + "@tsparticles/palette-duality-green-magenta": specifier: workspace:* version: link:../../palettes/spectrum/dualityGreenMagenta/dist - '@tsparticles/palette-duality-red-cyan': + "@tsparticles/palette-duality-red-cyan": specifier: workspace:* version: link:../../palettes/spectrum/dualityRedCyan/dist - '@tsparticles/palette-dust-haze': + "@tsparticles/palette-dust-haze": specifier: workspace:* version: link:../../palettes/atmosphere/dustHaze/dist - '@tsparticles/palette-earthy-nature': + "@tsparticles/palette-earthy-nature": specifier: workspace:* version: link:../../palettes/nature/earthyNature/dist - '@tsparticles/palette-embers-and-ash': + "@tsparticles/palette-embers-and-ash": specifier: workspace:* version: link:../../palettes/fire/embersAndAsh/dist - '@tsparticles/palette-explosion-debris': + "@tsparticles/palette-explosion-debris": specifier: workspace:* version: link:../../palettes/impact/explosionDebris/dist - '@tsparticles/palette-fairy-dust': + "@tsparticles/palette-fairy-dust": specifier: workspace:* version: link:../../palettes/fantasy/fairyDust/dist - '@tsparticles/palette-fire': + "@tsparticles/palette-fire": specifier: workspace:* version: link:../../palettes/fire/default/dist - '@tsparticles/palette-fire-seed': + "@tsparticles/palette-fire-seed": specifier: workspace:* version: link:../../palettes/fire/seed/dist - '@tsparticles/palette-fireflies': + "@tsparticles/palette-fireflies": specifier: workspace:* version: link:../../palettes/nature/fireflies/dist - '@tsparticles/palette-fireworks-blue': + "@tsparticles/palette-fireworks-blue": specifier: workspace:* version: link:../../palettes/fireworks/blue/dist - '@tsparticles/palette-fireworks-blue-stroke': + "@tsparticles/palette-fireworks-blue-stroke": specifier: workspace:* version: link:../../palettes/fireworks/blueStroke/dist - '@tsparticles/palette-fireworks-copper': + "@tsparticles/palette-fireworks-copper": specifier: workspace:* version: link:../../palettes/fireworks/copper/dist - '@tsparticles/palette-fireworks-copper-stroke': + "@tsparticles/palette-fireworks-copper-stroke": specifier: workspace:* version: link:../../palettes/fireworks/copperStroke/dist - '@tsparticles/palette-fireworks-gold': + "@tsparticles/palette-fireworks-gold": specifier: workspace:* version: link:../../palettes/fireworks/gold/dist - '@tsparticles/palette-fireworks-gold-stroke': + "@tsparticles/palette-fireworks-gold-stroke": specifier: workspace:* version: link:../../palettes/fireworks/goldStroke/dist - '@tsparticles/palette-fireworks-green': + "@tsparticles/palette-fireworks-green": specifier: workspace:* version: link:../../palettes/fireworks/green/dist - '@tsparticles/palette-fireworks-green-stroke': + "@tsparticles/palette-fireworks-green-stroke": specifier: workspace:* version: link:../../palettes/fireworks/greenStroke/dist - '@tsparticles/palette-fireworks-ice': + "@tsparticles/palette-fireworks-ice": specifier: workspace:* version: link:../../palettes/fireworks/ice/dist - '@tsparticles/palette-fireworks-ice-stroke': + "@tsparticles/palette-fireworks-ice-stroke": specifier: workspace:* version: link:../../palettes/fireworks/iceStroke/dist - '@tsparticles/palette-fireworks-multicolor': + "@tsparticles/palette-fireworks-multicolor": specifier: workspace:* version: link:../../palettes/fireworks/multicolor/dist - '@tsparticles/palette-fireworks-multicolor-stroke': + "@tsparticles/palette-fireworks-multicolor-stroke": specifier: workspace:* version: link:../../palettes/fireworks/multicolorStroke/dist - '@tsparticles/palette-fireworks-neon': + "@tsparticles/palette-fireworks-neon": specifier: workspace:* version: link:../../palettes/fireworks/neon/dist - '@tsparticles/palette-fireworks-neon-stroke': + "@tsparticles/palette-fireworks-neon-stroke": specifier: workspace:* version: link:../../palettes/fireworks/neonStroke/dist - '@tsparticles/palette-fireworks-pastel': + "@tsparticles/palette-fireworks-pastel": specifier: workspace:* version: link:../../palettes/fireworks/pastel/dist - '@tsparticles/palette-fireworks-pastel-stroke': + "@tsparticles/palette-fireworks-pastel-stroke": specifier: workspace:* version: link:../../palettes/fireworks/pastelStroke/dist - '@tsparticles/palette-fireworks-purple': + "@tsparticles/palette-fireworks-purple": specifier: workspace:* version: link:../../palettes/fireworks/purple/dist - '@tsparticles/palette-fireworks-purple-stroke': + "@tsparticles/palette-fireworks-purple-stroke": specifier: workspace:* version: link:../../palettes/fireworks/purpleStroke/dist - '@tsparticles/palette-fireworks-rainbow': + "@tsparticles/palette-fireworks-rainbow": specifier: workspace:* version: link:../../palettes/fireworks/rainbow/dist - '@tsparticles/palette-fireworks-rainbow-stroke': + "@tsparticles/palette-fireworks-rainbow-stroke": specifier: workspace:* version: link:../../palettes/fireworks/rainbowStroke/dist - '@tsparticles/palette-fireworks-red': + "@tsparticles/palette-fireworks-red": specifier: workspace:* version: link:../../palettes/fireworks/red/dist - '@tsparticles/palette-fireworks-red-stroke': + "@tsparticles/palette-fireworks-red-stroke": specifier: workspace:* version: link:../../palettes/fireworks/redStroke/dist - '@tsparticles/palette-fireworks-silver': + "@tsparticles/palette-fireworks-silver": specifier: workspace:* version: link:../../palettes/fireworks/silver/dist - '@tsparticles/palette-fireworks-silver-stroke': + "@tsparticles/palette-fireworks-silver-stroke": specifier: workspace:* version: link:../../palettes/fireworks/silverStroke/dist - '@tsparticles/palette-foam-and-bubbles': + "@tsparticles/palette-foam-and-bubbles": specifier: workspace:* version: link:../../palettes/water/foamAndBubbles/dist - '@tsparticles/palette-fog-coastal': + "@tsparticles/palette-fog-coastal": specifier: workspace:* version: link:../../palettes/water/fogCoastal/dist - '@tsparticles/palette-fog-morning': + "@tsparticles/palette-fog-morning": specifier: workspace:* version: link:../../palettes/atmosphere/fogMorning/dist - '@tsparticles/palette-forest-canopy': + "@tsparticles/palette-forest-canopy": specifier: workspace:* version: link:../../palettes/nature/forestCanopy/dist - '@tsparticles/palette-full-fire-gradient': + "@tsparticles/palette-full-fire-gradient": specifier: workspace:* version: link:../../palettes/fire/fullFireGradient/dist - '@tsparticles/palette-full-spectrum': + "@tsparticles/palette-full-spectrum": specifier: workspace:* version: link:../../palettes/spectrum/fullSpectrum/dist - '@tsparticles/palette-galaxy-dust': + "@tsparticles/palette-galaxy-dust": specifier: workspace:* version: link:../../palettes/space/galaxyDust/dist - '@tsparticles/palette-gingerbread-house': + "@tsparticles/palette-gingerbread-house": specifier: workspace:* version: link:../../palettes/food/gingerbread-house/dist - '@tsparticles/palette-glass-burst': + "@tsparticles/palette-glass-burst": specifier: workspace:* version: link:../../palettes/impact/glassBurst/dist - '@tsparticles/palette-glitch': + "@tsparticles/palette-glitch": specifier: workspace:* version: link:../../palettes/tech/glitch/dist - '@tsparticles/palette-grapes': + "@tsparticles/palette-grapes": specifier: workspace:* version: link:../../palettes/food/grapes/dist - '@tsparticles/palette-heat-duality': + "@tsparticles/palette-heat-duality": specifier: workspace:* version: link:../../palettes/atmospheric/heatDuality/dist - '@tsparticles/palette-heat-haze': + "@tsparticles/palette-heat-haze": specifier: workspace:* version: link:../../palettes/atmospheric/heatHaze/dist - '@tsparticles/palette-hologram': + "@tsparticles/palette-hologram": specifier: workspace:* version: link:../../palettes/tech/hologram/dist - '@tsparticles/palette-holographic-shimmer': + "@tsparticles/palette-holographic-shimmer": specifier: workspace:* version: link:../../palettes/optics/holographicShimmer/dist - '@tsparticles/palette-holy-light': + "@tsparticles/palette-holy-light": specifier: workspace:* version: link:../../palettes/fantasy/holyLight/dist - '@tsparticles/palette-ice-magic': + "@tsparticles/palette-ice-magic": specifier: workspace:* version: link:../../palettes/fantasy/iceMagic/dist - '@tsparticles/palette-ice-triad': + "@tsparticles/palette-ice-triad": specifier: workspace:* version: link:../../palettes/fantasy/iceTriad/dist - '@tsparticles/palette-ink-in-water': + "@tsparticles/palette-ink-in-water": specifier: workspace:* version: link:../../palettes/water/inkInWater/dist - '@tsparticles/palette-iris': + "@tsparticles/palette-iris": specifier: workspace:* version: link:../../palettes/fantasy/iris/dist - '@tsparticles/palette-jellyfish-glow': + "@tsparticles/palette-jellyfish-glow": specifier: workspace:* version: link:../../palettes/fantasy/jellyfishGlow/dist - '@tsparticles/palette-lagoon': + "@tsparticles/palette-lagoon": specifier: workspace:* version: link:../../palettes/water/lagoon/dist - '@tsparticles/palette-laser-scatter': + "@tsparticles/palette-laser-scatter": specifier: workspace:* version: link:../../palettes/optics/laserScatter/dist - '@tsparticles/palette-lava-lamp': + "@tsparticles/palette-lava-lamp": specifier: workspace:* version: link:../../palettes/fire/lavaLamp/dist - '@tsparticles/palette-lens-flare-dust': + "@tsparticles/palette-lens-flare-dust": specifier: workspace:* version: link:../../palettes/optics/lensFlareDust/dist - '@tsparticles/palette-lightning': + "@tsparticles/palette-lightning": specifier: workspace:* version: link:../../palettes/atmospheric/lightning/dist - '@tsparticles/palette-lofi-warm': + "@tsparticles/palette-lofi-warm": specifier: workspace:* version: link:../../palettes/tech/lofiWarm/dist - '@tsparticles/palette-macaron': + "@tsparticles/palette-macaron": specifier: workspace:* version: link:../../palettes/food/macaron/dist - '@tsparticles/palette-matrix-rain': + "@tsparticles/palette-matrix-rain": specifier: workspace:* version: link:../../palettes/tech/matrixRain/dist - '@tsparticles/palette-melon': + "@tsparticles/palette-melon": specifier: workspace:* version: link:../../palettes/food/melon/dist - '@tsparticles/palette-mermaid': + "@tsparticles/palette-mermaid": specifier: workspace:* version: link:../../palettes/fantasy/mermaid/dist - '@tsparticles/palette-metal-sparks': + "@tsparticles/palette-metal-sparks": specifier: workspace:* version: link:../../palettes/fire/metalSparks/dist - '@tsparticles/palette-meteor-impact': + "@tsparticles/palette-meteor-impact": specifier: workspace:* version: link:../../palettes/impact/meteorImpact/dist - '@tsparticles/palette-minecraft': + "@tsparticles/palette-minecraft": specifier: workspace:* version: link:../../palettes/gaming/minecraft/dist - '@tsparticles/palette-molten-metal': + "@tsparticles/palette-molten-metal": specifier: workspace:* version: link:../../palettes/fire/moltenMetal/dist - '@tsparticles/palette-monochrome-blues': + "@tsparticles/palette-monochrome-blues": specifier: workspace:* version: link:../../palettes/monochromatic/blues/dist - '@tsparticles/palette-monochrome-brown': + "@tsparticles/palette-monochrome-brown": specifier: workspace:* version: link:../../palettes/monochromatic/brown/dist - '@tsparticles/palette-monochrome-cyan': + "@tsparticles/palette-monochrome-cyan": specifier: workspace:* version: link:../../palettes/monochromatic/cyan/dist - '@tsparticles/palette-monochrome-gold': + "@tsparticles/palette-monochrome-gold": specifier: workspace:* version: link:../../palettes/monochromatic/gold/dist - '@tsparticles/palette-monochrome-greens': + "@tsparticles/palette-monochrome-greens": specifier: workspace:* version: link:../../palettes/monochromatic/greens/dist - '@tsparticles/palette-monochrome-noir': + "@tsparticles/palette-monochrome-noir": specifier: workspace:* version: link:../../palettes/monochromatic/noir/dist - '@tsparticles/palette-monochrome-oranges': + "@tsparticles/palette-monochrome-oranges": specifier: workspace:* version: link:../../palettes/monochromatic/oranges/dist - '@tsparticles/palette-monochrome-pinks': + "@tsparticles/palette-monochrome-pinks": specifier: workspace:* version: link:../../palettes/monochromatic/pinks/dist - '@tsparticles/palette-monochrome-purples': + "@tsparticles/palette-monochrome-purples": specifier: workspace:* version: link:../../palettes/monochromatic/purples/dist - '@tsparticles/palette-monochrome-reds': + "@tsparticles/palette-monochrome-reds": specifier: workspace:* version: link:../../palettes/monochromatic/reds/dist - '@tsparticles/palette-monochrome-silver': + "@tsparticles/palette-monochrome-silver": specifier: workspace:* version: link:../../palettes/monochromatic/silver/dist - '@tsparticles/palette-monochrome-teal': + "@tsparticles/palette-monochrome-teal": specifier: workspace:* version: link:../../palettes/monochromatic/teal/dist - '@tsparticles/palette-monochrome-white': + "@tsparticles/palette-monochrome-white": specifier: workspace:* version: link:../../palettes/monochromatic/white/dist - '@tsparticles/palette-monochrome-yellows': + "@tsparticles/palette-monochrome-yellows": specifier: workspace:* version: link:../../palettes/monochromatic/yellows/dist - '@tsparticles/palette-mud-and-dirt': + "@tsparticles/palette-mud-and-dirt": specifier: workspace:* version: link:../../palettes/earth/mudAndDirt/dist - '@tsparticles/palette-nebula': + "@tsparticles/palette-nebula": specifier: workspace:* version: link:../../palettes/space/nebula/dist - '@tsparticles/palette-neon-city': + "@tsparticles/palette-neon-city": specifier: workspace:* version: link:../../palettes/tech/neonCity/dist - '@tsparticles/palette-network-nodes': + "@tsparticles/palette-network-nodes": specifier: workspace:* version: link:../../palettes/tech/networkNodes/dist - '@tsparticles/palette-nuclear-glow': + "@tsparticles/palette-nuclear-glow": specifier: workspace:* version: link:../../palettes/impact/nuclearGlow/dist - '@tsparticles/palette-oil-slick': + "@tsparticles/palette-oil-slick": specifier: workspace:* version: link:../../palettes/earth/oilSlick/dist - '@tsparticles/palette-okabe-ito-accessible': + "@tsparticles/palette-okabe-ito-accessible": specifier: workspace:* version: link:../../palettes/spectrum/okabeItoAccessible/dist - '@tsparticles/palette-pacman': + "@tsparticles/palette-pacman": specifier: workspace:* version: link:../../palettes/gaming/pacman/dist - '@tsparticles/palette-pastel-cool': + "@tsparticles/palette-pastel-cool": specifier: workspace:* version: link:../../palettes/pastel/cool/dist - '@tsparticles/palette-pastel-dream': + "@tsparticles/palette-pastel-dream": specifier: workspace:* version: link:../../palettes/pastel/dream/dist - '@tsparticles/palette-pastel-mint': + "@tsparticles/palette-pastel-mint": specifier: workspace:* version: link:../../palettes/pastel/mint/dist - '@tsparticles/palette-pastel-sunset': + "@tsparticles/palette-pastel-sunset": specifier: workspace:* version: link:../../palettes/pastel/sunset/dist - '@tsparticles/palette-pastel-warm': + "@tsparticles/palette-pastel-warm": specifier: workspace:* version: link:../../palettes/pastel/warm/dist - '@tsparticles/palette-pineapple': + "@tsparticles/palette-pineapple": specifier: workspace:* version: link:../../palettes/food/pineapple/dist - '@tsparticles/palette-pizza': + "@tsparticles/palette-pizza": specifier: workspace:* version: link:../../palettes/food/pizza/dist - '@tsparticles/palette-plasma-arc': + "@tsparticles/palette-plasma-arc": specifier: workspace:* version: link:../../palettes/tech/plasmaArc/dist - '@tsparticles/palette-poison-and-venom': + "@tsparticles/palette-poison-and-venom": specifier: workspace:* version: link:../../palettes/fantasy/poisonAndVenom/dist - '@tsparticles/palette-pollen-and-spores': + "@tsparticles/palette-pollen-and-spores": specifier: workspace:* version: link:../../palettes/nature/pollenAndSpores/dist - '@tsparticles/palette-portal': + "@tsparticles/palette-portal": specifier: workspace:* version: link:../../palettes/space/portal/dist - '@tsparticles/palette-prism-scatter': + "@tsparticles/palette-prism-scatter": specifier: workspace:* version: link:../../palettes/spectrum/prismScatter/dist - '@tsparticles/palette-prism-spectrum': + "@tsparticles/palette-prism-spectrum": specifier: workspace:* version: link:../../palettes/optics/prismSpectrum/dist - '@tsparticles/palette-pulsar': + "@tsparticles/palette-pulsar": specifier: workspace:* version: link:../../palettes/space/pulsar/dist - '@tsparticles/palette-rain': + "@tsparticles/palette-rain": specifier: workspace:* version: link:../../palettes/water/rain/dist - '@tsparticles/palette-rainbow': + "@tsparticles/palette-rainbow": specifier: workspace:* version: link:../../palettes/spectrum/rainbow/dist - '@tsparticles/palette-rgb-primaries': + "@tsparticles/palette-rgb-primaries": specifier: workspace:* version: link:../../palettes/spectrum/rgbPrimaries/dist - '@tsparticles/palette-rising-bubbles': + "@tsparticles/palette-rising-bubbles": specifier: workspace:* version: link:../../palettes/water/risingBubbles/dist - '@tsparticles/palette-rock-and-gravel': + "@tsparticles/palette-rock-and-gravel": specifier: workspace:* version: link:../../palettes/earth/rockAndGravel/dist - '@tsparticles/palette-rust-and-corrosion': + "@tsparticles/palette-rust-and-corrosion": specifier: workspace:* version: link:../../palettes/earth/rustAndCorrosion/dist - '@tsparticles/palette-sakura': + "@tsparticles/palette-sakura": specifier: workspace:* version: link:../../palettes/food/sakura/dist - '@tsparticles/palette-salad': + "@tsparticles/palette-salad": specifier: workspace:* version: link:../../palettes/food/salad/dist - '@tsparticles/palette-shockwave': + "@tsparticles/palette-shockwave": specifier: workspace:* version: link:../../palettes/atmospheric/shockwave/dist - '@tsparticles/palette-shockwave-blast': + "@tsparticles/palette-shockwave-blast": specifier: workspace:* version: link:../../palettes/impact/shockwaveBlast/dist - '@tsparticles/palette-skin-and-organic': + "@tsparticles/palette-skin-and-organic": specifier: workspace:* version: link:../../palettes/earth/skinAndOrganic/dist - '@tsparticles/palette-smoke-cold': + "@tsparticles/palette-smoke-cold": specifier: workspace:* version: link:../../palettes/atmospheric/smokeCold/dist - '@tsparticles/palette-smoke-warm': + "@tsparticles/palette-smoke-warm": specifier: workspace:* version: link:../../palettes/atmospheric/smokeWarm/dist - '@tsparticles/palette-snowfall': + "@tsparticles/palette-snowfall": specifier: workspace:* version: link:../../palettes/nature/snowfall/dist - '@tsparticles/palette-solar-wind': + "@tsparticles/palette-solar-wind": specifier: workspace:* version: link:../../palettes/space/solarWind/dist - '@tsparticles/palette-spice-rack': + "@tsparticles/palette-spice-rack": specifier: workspace:* version: link:../../palettes/food/spice-rack/dist - '@tsparticles/palette-splatter-dark': + "@tsparticles/palette-splatter-dark": specifier: workspace:* version: link:../../palettes/impact/splatterDark/dist - '@tsparticles/palette-spring-bloom': + "@tsparticles/palette-spring-bloom": specifier: workspace:* version: link:../../palettes/nature/springBloom/dist - '@tsparticles/palette-steak': + "@tsparticles/palette-steak": specifier: workspace:* version: link:../../palettes/food/steak/dist - '@tsparticles/palette-sunrise-gold': + "@tsparticles/palette-sunrise-gold": specifier: workspace:* version: link:../../palettes/atmospheric/sunriseGold/dist - '@tsparticles/palette-sunset-binary': + "@tsparticles/palette-sunset-binary": specifier: workspace:* version: link:../../palettes/atmospheric/sunsetBinary/dist - '@tsparticles/palette-super-mario-bros': + "@tsparticles/palette-super-mario-bros": specifier: workspace:* version: link:../../palettes/gaming/superMarioBros/dist - '@tsparticles/palette-supernova': + "@tsparticles/palette-supernova": specifier: workspace:* version: link:../../palettes/space/supernova/dist - '@tsparticles/palette-sushi': + "@tsparticles/palette-sushi": specifier: workspace:* version: link:../../palettes/food/sushi/dist - '@tsparticles/palette-tetris': + "@tsparticles/palette-tetris": specifier: workspace:* version: link:../../palettes/gaming/tetris/dist - '@tsparticles/palette-thermal-map': + "@tsparticles/palette-thermal-map": specifier: workspace:* version: link:../../palettes/atmospheric/thermalMap/dist - '@tsparticles/palette-thunderstorm': + "@tsparticles/palette-thunderstorm": specifier: workspace:* version: link:../../palettes/atmospheric/thunderstorm/dist - '@tsparticles/palette-tropical-fruits': + "@tsparticles/palette-tropical-fruits": specifier: workspace:* version: link:../../palettes/food/tropical-fruits/dist - '@tsparticles/palette-unicorn': + "@tsparticles/palette-unicorn": specifier: workspace:* version: link:../../palettes/fantasy/unicorn/dist - '@tsparticles/palette-vaporwave': + "@tsparticles/palette-vaporwave": specifier: workspace:* version: link:../../palettes/tech/vaporwave/dist - '@tsparticles/palette-vibrant': + "@tsparticles/palette-vibrant": specifier: workspace:* version: link:../../palettes/vibrant/default/dist - '@tsparticles/palette-vibrant-electric': + "@tsparticles/palette-vibrant-electric": specifier: workspace:* version: link:../../palettes/vibrant/electric/dist - '@tsparticles/palette-vibrant-neon': + "@tsparticles/palette-vibrant-neon": specifier: workspace:* version: link:../../palettes/vibrant/neon/dist - '@tsparticles/palette-vibrant-retro': + "@tsparticles/palette-vibrant-retro": specifier: workspace:* version: link:../../palettes/vibrant/retro/dist - '@tsparticles/palette-vibrant-tropical': + "@tsparticles/palette-vibrant-tropical": specifier: workspace:* version: link:../../palettes/vibrant/tropical/dist - '@tsparticles/palette-volcanic-ash': + "@tsparticles/palette-volcanic-ash": specifier: workspace:* version: link:../../palettes/atmosphere/volcanicAsh/dist - '@tsparticles/palette-water': + "@tsparticles/palette-water": specifier: workspace:* version: link:../../palettes/water/default/dist - '@tsparticles/palette-water-splash': + "@tsparticles/palette-water-splash": specifier: workspace:* version: link:../../palettes/water/splash/dist - '@tsparticles/palette-watermelon': + "@tsparticles/palette-watermelon": specifier: workspace:* version: link:../../palettes/food/watermelon/dist - '@tsparticles/particles': + "@tsparticles/particles": specifier: workspace:* version: link:../../bundles/particles/dist - '@tsparticles/preset-ambient': + "@tsparticles/preset-ambient": specifier: workspace:* version: link:../../presets/ambient/dist - '@tsparticles/preset-big-circles': + "@tsparticles/preset-big-circles": specifier: workspace:* version: link:../../presets/bigCircles/dist - '@tsparticles/preset-bubbles': + "@tsparticles/preset-bubbles": specifier: workspace:* version: link:../../presets/bubbles/dist - '@tsparticles/preset-confetti': + "@tsparticles/preset-confetti": specifier: workspace:* version: link:../../presets/confetti/dist - '@tsparticles/preset-confetti-cannon': + "@tsparticles/preset-confetti-cannon": specifier: workspace:* version: link:../../presets/confettiCannon/dist - '@tsparticles/preset-confetti-explosions': + "@tsparticles/preset-confetti-explosions": specifier: workspace:* version: link:../../presets/confettiExplosions/dist - '@tsparticles/preset-confetti-falling': + "@tsparticles/preset-confetti-falling": specifier: workspace:* version: link:../../presets/confettiFalling/dist - '@tsparticles/preset-confetti-parade': + "@tsparticles/preset-confetti-parade": specifier: workspace:* version: link:../../presets/confettiParade/dist - '@tsparticles/preset-fire': + "@tsparticles/preset-fire": specifier: workspace:* version: link:../../presets/fire/dist - '@tsparticles/preset-firefly': + "@tsparticles/preset-firefly": specifier: workspace:* version: link:../../presets/firefly/dist - '@tsparticles/preset-fireworks': + "@tsparticles/preset-fireworks": specifier: workspace:* version: link:../../presets/fireworks/dist - '@tsparticles/preset-fountain': + "@tsparticles/preset-fountain": specifier: workspace:* version: link:../../presets/fountain/dist - '@tsparticles/preset-hyperspace': + "@tsparticles/preset-hyperspace": specifier: workspace:* version: link:../../presets/hyperspace/dist - '@tsparticles/preset-links': + "@tsparticles/preset-links": specifier: workspace:* version: link:../../presets/links/dist - '@tsparticles/preset-matrix': + "@tsparticles/preset-matrix": specifier: workspace:* version: link:../../presets/matrix/dist - '@tsparticles/preset-meteors': + "@tsparticles/preset-meteors": specifier: workspace:* version: link:../../presets/meteors/dist - '@tsparticles/preset-party': + "@tsparticles/preset-party": specifier: workspace:* version: link:../../presets/party/dist - '@tsparticles/preset-sea-anemone': + "@tsparticles/preset-sea-anemone": specifier: workspace:* version: link:../../presets/seaAnemone/dist - '@tsparticles/preset-snow': + "@tsparticles/preset-snow": specifier: workspace:* version: link:../../presets/snow/dist - '@tsparticles/preset-squares': + "@tsparticles/preset-squares": specifier: workspace:* version: link:../../presets/squares/dist - '@tsparticles/preset-stars': + "@tsparticles/preset-stars": specifier: workspace:* version: link:../../presets/stars/dist - '@tsparticles/preset-triangles': + "@tsparticles/preset-triangles": specifier: workspace:* version: link:../../presets/triangles/dist - '@tsparticles/ribbons': + "@tsparticles/ribbons": specifier: workspace:* version: link:../../bundles/ribbons/dist - '@tsparticles/shape-ribbon': + "@tsparticles/shape-ribbon": specifier: workspace:* version: link:../../shapes/ribbon/dist - '@tsparticles/slim': + "@tsparticles/slim": specifier: workspace:* version: link:../../bundles/slim/dist tsparticles: @@ -12245,7 +12434,7 @@ importers: devDependencies: prettier: specifier: ^3.8.3 - version: 3.8.3 + version: 3.8.4 typedoc: specifier: ^0.28.19 version: 0.28.19(typescript@6.0.3) @@ -12263,7 +12452,7 @@ importers: version: 1.6.0(typedoc@0.28.19(typescript@6.0.3)) typedoc-plugin-markdown: specifier: ^4.11.0 - version: 4.11.0(typedoc@0.28.19(typescript@6.0.3)) + version: 4.12.0(typedoc@0.28.19(typescript@6.0.3)) typedoc-plugin-mdn-links: specifier: ^5.1.1 version: 5.1.1(typedoc@0.28.19(typescript@6.0.3)) @@ -12272,39 +12461,36 @@ importers: version: 4.1.3(typedoc@0.28.19(typescript@6.0.3)) vite: specifier: 8.0.14 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + version: 8.0.14(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vitepress: specifier: ^1.6.4 - version: 1.6.4(@algolia/client-search@5.52.1)(@types/node@25.9.1)(@types/react@18.3.29)(axios@1.16.1)(fuse.js@7.3.0)(less@4.6.4)(lightningcss@1.32.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.100.0)(search-insights@2.17.3)(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3) + version: 1.6.4(@algolia/client-search@5.54.1)(@types/node@25.9.3)(@types/react@18.3.31)(axios@1.18.0)(fuse.js@7.4.2)(less@4.6.6)(lightningcss@1.32.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.101.0)(search-insights@2.17.3)(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3) wrappers/angular: dependencies: - '@angular/animations': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/common': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/compiler': - specifier: ~21.2.9 - version: 21.2.14 - '@angular/core': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: ~21.2.9 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/platform-browser-dynamic': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))) - '@angular/router': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@tsparticles/engine': - specifier: workspace:^ + "@angular/common": + specifier: ~22.0.1 + version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/compiler": + specifier: ~22.0.1 + version: 22.0.1 + "@angular/core": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/platform-browser": + specifier: ~22.0.1 + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/platform-browser-dynamic": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + "@angular/router": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist rxjs: specifier: ~7.8.2 @@ -12313,166 +12499,85 @@ importers: specifier: ^2.8.1 version: 2.8.1 zone.js: - specifier: ~0.16.1 + specifier: ~0.16.2 version: 0.16.2 devDependencies: - '@angular-devkit/build-angular': - specifier: ~21.2.7 - version: 21.2.12(526f8de90e4eb47a61b259121764f66b) - '@angular/cli': - specifier: ~21.2.7 - version: 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - '@angular/compiler-cli': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@tsparticles/prettier-config': - specifier: workspace:^ + "@angular/build": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + "@angular/cli": + specifier: ~22.0.1 + version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + "@angular/compiler-cli": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/jasmine': + "@types/jasmine": specifier: ~6.0.0 version: 6.0.0 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 jasmine-core: - specifier: ~6.2.0 - version: 6.2.0 + specifier: ~6.3.0 + version: 6.3.0 karma: specifier: ~6.4.4 - version: 6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chrome-launcher: specifier: ~3.2.0 version: 3.2.0 karma-coverage: specifier: ~2.2.1 - version: 2.2.1 + version: 2.2.1(supports-color@8.1.1) karma-jasmine: specifier: ~5.1.0 version: 5.1.0(karma@6.4.4) karma-jasmine-html-reporter: specifier: ~2.2.0 - version: 2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + version: 2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) ng-packagr: - specifier: ~21.2.2 - version: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + specifier: ~22.0.0 + version: 22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: ~6.0.3 + version: 6.0.3 publishDirectory: dist/ng-particles wrappers/angular-confetti: dependencies: - '@angular/animations': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/common': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/compiler': - specifier: ~21.2.9 - version: 21.2.14 - '@angular/core': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: ~21.2.9 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/platform-browser-dynamic': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))) - '@angular/router': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@tsparticles/basic': - specifier: workspace:^ - version: link:../../bundles/basic/dist - '@tsparticles/canvas-utils': - specifier: workspace:^ - version: link:../../utils/canvasUtils/dist - '@tsparticles/confetti': - specifier: workspace:^ + "@angular/common": + specifier: ~22.0.1 + version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/compiler": + specifier: ~22.0.1 + version: 22.0.1 + "@angular/core": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/platform-browser": + specifier: ~22.0.1 + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/platform-browser-dynamic": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + "@angular/router": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@tsparticles/confetti": + specifier: workspace:* version: link:../../bundles/confetti/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/path-utils': - specifier: workspace:^ - version: link:../../utils/pathUtils/dist - '@tsparticles/plugin-emitters': - specifier: workspace:^ - version: link:../../plugins/emitters/dist - '@tsparticles/plugin-hex-color': - specifier: workspace:^ - version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': - specifier: workspace:^ - version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-motion': - specifier: workspace:^ - version: link:../../plugins/motion/dist - '@tsparticles/plugin-move': - specifier: workspace:^ - version: link:../../plugins/move/dist - '@tsparticles/plugin-rgb-color': - specifier: workspace:^ - version: link:../../plugins/colors/rgb/dist - '@tsparticles/shape-cards': - specifier: workspace:^ - version: link:../../shapes/cards/dist - '@tsparticles/shape-circle': - specifier: workspace:^ - version: link:../../shapes/circle/dist - '@tsparticles/shape-emoji': - specifier: workspace:^ - version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': - specifier: workspace:^ - version: link:../../shapes/heart/dist - '@tsparticles/shape-image': - specifier: workspace:^ - version: link:../../shapes/image/dist - '@tsparticles/shape-polygon': - specifier: workspace:^ - version: link:../../shapes/polygon/dist - '@tsparticles/shape-square': - specifier: workspace:^ - version: link:../../shapes/square/dist - '@tsparticles/shape-star': - specifier: workspace:^ - version: link:../../shapes/star/dist - '@tsparticles/updater-life': - specifier: workspace:^ - version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': - specifier: workspace:^ - version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': - specifier: workspace:^ - version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': - specifier: workspace:^ - version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': - specifier: workspace:^ - version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': - specifier: workspace:^ - version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': - specifier: workspace:^ - version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': - specifier: workspace:^ - version: link:../../updaters/tilt/dist - '@tsparticles/updater-wobble': - specifier: workspace:^ - version: link:../../updaters/wobble/dist rxjs: specifier: ~7.8.2 version: 7.8.2 @@ -12480,145 +12585,85 @@ importers: specifier: ^2.8.1 version: 2.8.1 zone.js: - specifier: ~0.16.1 + specifier: ~0.16.2 version: 0.16.2 devDependencies: - '@angular-devkit/build-angular': - specifier: ~21.2.7 - version: 21.2.12(526f8de90e4eb47a61b259121764f66b) - '@angular/cli': - specifier: ~21.2.7 - version: 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - '@angular/compiler-cli': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@tsparticles/prettier-config': - specifier: workspace:^ + "@angular/build": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + "@angular/cli": + specifier: ~22.0.1 + version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + "@angular/compiler-cli": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/jasmine': + "@types/jasmine": specifier: ~6.0.0 version: 6.0.0 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 jasmine-core: - specifier: ~6.2.0 - version: 6.2.0 + specifier: ~6.3.0 + version: 6.3.0 karma: specifier: ~6.4.4 - version: 6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chrome-launcher: specifier: ~3.2.0 version: 3.2.0 karma-coverage: specifier: ~2.2.1 - version: 2.2.1 + version: 2.2.1(supports-color@8.1.1) karma-jasmine: specifier: ~5.1.0 version: 5.1.0(karma@6.4.4) karma-jasmine-html-reporter: specifier: ~2.2.0 - version: 2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + version: 2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) ng-packagr: - specifier: ~21.2.2 - version: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + specifier: ~22.0.0 + version: 22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: ~6.0.3 + version: 6.0.3 publishDirectory: dist/ng-confetti wrappers/angular-fireworks: dependencies: - '@angular/animations': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/common': - specifier: ~21.2.9 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/compiler': - specifier: ~21.2.9 - version: 21.2.14 - '@angular/core': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: ~21.2.9 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/platform-browser-dynamic': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))) - '@angular/router': - specifier: ~21.2.9 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@tsparticles/basic': - specifier: workspace:^ - version: link:../../bundles/basic/dist - '@tsparticles/engine': - specifier: workspace:^ + "@angular/common": + specifier: ~22.0.1 + version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/compiler": + specifier: ~22.0.1 + version: 22.0.1 + "@angular/core": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/platform-browser": + specifier: ~22.0.1 + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/platform-browser-dynamic": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + "@angular/router": + specifier: ~22.0.1 + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/fireworks': - specifier: workspace:^ + "@tsparticles/fireworks": + specifier: workspace:* version: link:../../bundles/fireworks/dist - '@tsparticles/plugin-blend': - specifier: workspace:^ - version: link:../../plugins/blend/dist - '@tsparticles/plugin-emitters': - specifier: workspace:^ - version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-square': - specifier: workspace:^ - version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-hex-color': - specifier: workspace:^ - version: link:../../plugins/colors/hex/dist - '@tsparticles/plugin-hsl-color': - specifier: workspace:^ - version: link:../../plugins/colors/hsl/dist - '@tsparticles/plugin-interactivity': - specifier: workspace:^ - version: link:../../plugins/interactivity/dist - '@tsparticles/plugin-move': - specifier: workspace:^ - version: link:../../plugins/move/dist - '@tsparticles/plugin-rgb-color': - specifier: workspace:^ - version: link:../../plugins/colors/rgb/dist - '@tsparticles/plugin-sounds': - specifier: workspace:^ - version: link:../../plugins/sounds/dist - '@tsparticles/shape-circle': - specifier: workspace:^ - version: link:../../shapes/circle/dist - '@tsparticles/shape-line': - specifier: workspace:^ - version: link:../../shapes/line/dist - '@tsparticles/updater-destroy': - specifier: workspace:^ - version: link:../../updaters/destroy/dist - '@tsparticles/updater-life': - specifier: workspace:^ - version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': - specifier: workspace:^ - version: link:../../updaters/opacity/dist - '@tsparticles/updater-out-modes': - specifier: workspace:^ - version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': - specifier: workspace:^ - version: link:../../updaters/paint/dist - '@tsparticles/updater-rotate': - specifier: workspace:^ - version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': - specifier: workspace:^ - version: link:../../updaters/size/dist rxjs: specifier: ~7.8.2 version: 7.8.2 @@ -12626,95 +12671,95 @@ importers: specifier: ^2.8.1 version: 2.8.1 zone.js: - specifier: ~0.16.1 + specifier: ~0.16.2 version: 0.16.2 devDependencies: - '@angular-devkit/build-angular': - specifier: ~21.2.7 - version: 21.2.12(526f8de90e4eb47a61b259121764f66b) - '@angular/cli': - specifier: ~21.2.7 - version: 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - '@angular/compiler-cli': - specifier: ~21.2.9 - version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@tsparticles/prettier-config': - specifier: workspace:^ + "@angular/build": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + "@angular/cli": + specifier: ~22.0.1 + version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + "@angular/compiler-cli": + specifier: ~22.0.1 + version: 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/jasmine': + "@types/jasmine": specifier: ~6.0.0 version: 6.0.0 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 jasmine-core: - specifier: ~6.2.0 - version: 6.2.0 + specifier: ~6.3.0 + version: 6.3.0 karma: specifier: ~6.4.4 - version: 6.4.4 + version: 6.4.4(supports-color@8.1.1) karma-chrome-launcher: specifier: ~3.2.0 version: 3.2.0 karma-coverage: specifier: ~2.2.1 - version: 2.2.1 + version: 2.2.1(supports-color@8.1.1) karma-jasmine: specifier: ~5.1.0 version: 5.1.0(karma@6.4.4) karma-jasmine-html-reporter: specifier: ~2.2.0 - version: 2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + version: 2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) ng-packagr: - specifier: ~21.2.2 - version: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + specifier: ~22.0.0 + version: 22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: ~6.0.3 + version: 6.0.3 publishDirectory: dist/ng-fireworks wrappers/astro: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist devDependencies: - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config astro: - specifier: ^6.2.2 - version: 6.3.7(@types/node@25.9.1)(db0@0.3.4)(ioredis@5.10.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^6.4.7 + version: 6.4.7(@types/node@25.9.3)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-astro: specifier: ^0.14.1 version: 0.14.1 typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 wrappers/ember: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist ember-auto-import: specifier: ^2.13.1 - version: 2.13.1(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + version: 2.13.1(supports-color@8.1.1)(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) ember-cli-babel: specifier: ^8.3.1 version: 8.3.1(@babel/core@7.29.0) ember-cli-htmlbars: specifier: ^7.0.1 - version: 7.0.1(@babel/core@7.29.0)(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)) + version: 7.0.1(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1)) ember-cli-typescript: specifier: ^5.3.0 - version: 5.3.0 + version: 5.3.0(supports-color@8.1.1) ember-modifier: specifier: ^4.3.0 version: 4.3.0(@babel/core@7.29.0) @@ -12722,114 +12767,99 @@ importers: specifier: ^7.1.0 version: 7.1.0 devDependencies: - '@babel/core': - specifier: 7.29.0 + "@babel/core": + specifier: ^7.0.0 version: 7.29.0 - '@ember/optional-features': + "@ember/optional-features": specifier: ^3.0.0 - version: 3.0.0(@types/node@25.9.1) - '@ember/test-helpers': - specifier: ^5.4.1 - version: 5.4.2(@babel/core@7.29.0) - '@embroider/test-setup': + version: 3.0.0(@types/node@25.9.3) + "@ember/test-helpers": + specifier: ^5.4.3 + version: 5.4.3(@babel/core@7.29.0) + "@embroider/test-setup": specifier: ^4.0.0 version: 4.0.0 - '@glimmer/component': + "@glimmer/component": specifier: ^2.1.1 version: 2.1.1 - '@glimmer/tracking': + "@glimmer/tracking": specifier: ^1.1.2 version: 1.1.2 - '@tsconfig/ember': - specifier: ^3.0.12 - version: 3.0.12 - '@tsparticles/preset-snow': - specifier: workspace:^ + "@tsparticles/preset-snow": + specifier: workspace:* version: link:../../presets/snow/dist - '@types/ember': + "@types/ember": specifier: ^4.0.11 version: 4.0.11(@babel/core@7.29.0) - '@types/ember-qunit': - specifier: ^6.1.3 - version: 6.1.3(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0) - '@types/ember-resolver': - specifier: ^9.0.2 - version: 9.0.2 - '@types/ember__application': + "@types/ember__application": specifier: ^4.0.11 version: 4.0.11(@babel/core@7.29.0) - '@types/ember__array': + "@types/ember__array": specifier: ^4.0.10 version: 4.0.10(@babel/core@7.29.0) - '@types/ember__component': + "@types/ember__component": specifier: ^4.0.22 version: 4.0.22(@babel/core@7.29.0) - '@types/ember__controller': + "@types/ember__controller": specifier: ^4.0.12 version: 4.0.12(@babel/core@7.29.0) - '@types/ember__debug': + "@types/ember__debug": specifier: ^4.0.8 version: 4.0.8(@babel/core@7.29.0) - '@types/ember__destroyable': + "@types/ember__destroyable": specifier: ^4.0.5 version: 4.0.5 - '@types/ember__engine': + "@types/ember__engine": specifier: ^4.0.11 version: 4.0.11(@babel/core@7.29.0) - '@types/ember__error': + "@types/ember__error": specifier: ^4.0.6 version: 4.0.6 - '@types/ember__object': + "@types/ember__object": specifier: ^4.0.12 version: 4.0.12(@babel/core@7.29.0) - '@types/ember__polyfills': + "@types/ember__polyfills": specifier: ^4.0.6 version: 4.0.6 - '@types/ember__routing': + "@types/ember__routing": specifier: ^4.0.23 version: 4.0.23(@babel/core@7.29.0) - '@types/ember__runloop': + "@types/ember__runloop": specifier: ^4.0.10 version: 4.0.10(@babel/core@7.29.0) - '@types/ember__service': + "@types/ember__service": specifier: ^4.0.9 version: 4.0.9(@babel/core@7.29.0) - '@types/ember__string': - specifier: ^3.0.15 - version: 3.0.15 - '@types/ember__template': + "@types/ember__string": + specifier: ^3.16.3 + version: 3.16.3 + "@types/ember__template": specifier: ^4.0.7 version: 4.0.7 - '@types/ember__test': + "@types/ember__test": specifier: ^4.0.6 version: 4.0.6(@babel/core@7.29.0) - '@types/ember__test-helpers': - specifier: ^2.9.3 - version: 2.9.3(@babel/core@7.29.0) - '@types/ember__utils': + "@types/ember__utils": specifier: ^4.0.7 version: 4.0.7(@babel/core@7.29.0) - '@types/qunit': - specifier: ^2.19.13 + "@types/qunit": + specifier: ^2.19.14 version: 2.19.14 - '@types/rsvp': + "@types/rsvp": specifier: ^4.0.9 version: 4.0.9 - '@types/sinon': + "@types/sinon": specifier: ^21.0.1 version: 21.0.1 - babel-eslint: - specifier: ^10.1.0 - version: 10.1.0(eslint@10.4.1(jiti@2.7.0)) broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 ember-cli: - specifier: ~6.12.0 - version: 6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8) + specifier: ~7.0.1 + version: 7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8) ember-cli-dependency-checker: - specifier: ^3.3.3 - version: 3.4.0(@babel/core@7.29.0)(ember-cli@6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8))(eslint@10.4.1(jiti@2.7.0)) + specifier: ^3.4.0 + version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -12838,28 +12868,28 @@ importers: version: 2.1.1 ember-cli-terser: specifier: ^4.0.2 - version: 4.0.2 + version: 4.0.2(supports-color@8.1.1) ember-disable-prototype-extensions: specifier: ^1.1.3 version: 1.1.3 ember-load-initializers: specifier: ^3.0.1 - version: 3.0.1(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)) + version: 3.0.1(ember-source@7.0.0(@glimmer/component@2.1.1)) ember-page-title: specifier: ^9.0.3 version: 9.0.3 ember-qunit: - specifier: ^9.0.4 - version: 9.0.4(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0) + specifier: ^9.1.0 + version: 9.1.0(@ember/test-helpers@5.4.3(@babel/core@7.29.0))(qunit@2.26.0) ember-resolver: specifier: ^13.2.0 version: 13.2.0 ember-sinon-qunit: specifier: ^7.5.0 - version: 7.5.0(@babel/core@7.29.0)(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5))(qunit@2.25.0)(sinon@22.0.0) + version: 7.5.0(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1))(qunit@2.26.0)(sinon@22.0.0) ember-source: - specifier: ~6.12.0 - version: 6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5) + specifier: ~7.0.0 + version: 7.0.0(@glimmer/component@2.1.1) ember-source-channel-url: specifier: ^3.0.0 version: 3.0.0(encoding@0.1.13) @@ -12868,25 +12898,25 @@ importers: version: 7.9.3 ember-try: specifier: ^4.0.0 - version: 4.0.0(encoding@0.1.13) + version: 4.0.0(encoding@0.1.13)(supports-color@8.1.1) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-ember: - specifier: ^12.7.5 - version: 12.7.5(@babel/core@7.29.0)(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + specifier: ^13.3.2 + version: 13.3.2(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@10.4.1(jiti@2.7.0)) + version: 11.1.0(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) + specifier: ^5.5.6 + version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) eslint-plugin-qunit: specifier: ^8.2.6 - version: 8.2.6(eslint@10.4.1(jiti@2.7.0)) + version: 8.2.6(eslint@10.5.0(jiti@2.7.0)) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -12894,169 +12924,161 @@ importers: specifier: ^4.1.5 version: 4.1.5 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 qunit: - specifier: ^2.25.0 - version: 2.25.0 + specifier: ^2.26.0 + version: 2.26.0 qunit-dom: - specifier: ^3.5.0 + specifier: ^3.5.1 version: 3.5.1 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 webpack: - specifier: ^5.106.1 - version: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) wrappers/inferno: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist - fast-deep-equal: - specifier: ^3.1.3 - version: 3.1.3 devDependencies: - '@babel/core': - specifier: ^7.29.0 + "@babel/core": + specifier: ^7.0.0 version: 7.29.0 - '@babel/plugin-proposal-class-properties': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': - specifier: ^7.25.9 - version: 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': - specifier: ^7.29.0 - version: 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': - specifier: ^7.29.2 - version: 7.29.5(@babel/core@7.29.0) - '@babel/preset-typescript': - specifier: ^7.28.5 - version: 7.28.5(@babel/core@7.29.0) - '@babel/runtime': - specifier: ^7.29.2 - version: 7.29.2 - '@tsparticles/prettier-config': - specifier: workspace:^ + "@babel/plugin-transform-private-property-in-object": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/preset-typescript": + specifier: ^7.0.0 + version: 7.29.7(@babel/core@7.29.0) + "@babel/runtime": + specifier: ^7.0.0 + version: 7.29.7 + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5))(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) babel-loader: specifier: ^10.1.1 - version: 10.1.1(@babel/core@7.29.0)(webpack@5.107.1) + version: 10.1.1(@babel/core@7.29.0)(webpack@5.107.2) babel-plugin-inferno: specifier: ^6.8.5 version: 6.8.5(@babel/core@7.29.0) clean-webpack-plugin: specifier: ^4.0.0 - version: 4.0.0(webpack@5.107.1) + version: 4.0.0(webpack@5.107.2) css-loader: specifier: ^7.1.4 - version: 7.1.4(webpack@5.107.1) + version: 7.1.4(webpack@5.107.2) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) html-webpack-plugin: specifier: ^5.6.7 - version: 5.6.7(webpack@5.107.1) + version: 5.6.7(webpack@5.107.2) inferno: specifier: ^9.1.0 version: 9.1.0 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 sass: - specifier: ^1.99.0 - version: 1.100.0 + specifier: ^1.101.0 + version: 1.101.0 sass-loader: - specifier: ^16.0.7 - version: 16.0.8(sass@1.100.0)(webpack@5.107.1) + specifier: ^17.0.0 + version: 17.0.0(sass@1.101.0)(webpack@5.107.2) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.107.1) + version: 5.0.0(webpack@5.107.2) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.107.1) + version: 4.0.0(webpack@5.107.2) typescript: - specifier: ^4.9.4 - version: 4.9.5 + specifier: ^6.0.3 + version: 6.0.3 webpack: - specifier: ^5.106.2 - version: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) webpack-cli: - specifier: ^7.0.2 - version: 7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + specifier: ^7.0.3 + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) webpack-dev-server: - specifier: ^5.2.3 - version: 5.2.4(tslib@2.8.1)(webpack-cli@7.0.2)(webpack@5.107.1) + specifier: ^5.2.5 + version: 5.2.5(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2) publishDirectory: dist wrappers/jquery: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@babel/preset-env': - specifier: ^7.29.2 - version: 7.29.5(@babel/core@7.29.0) - '@rollup/plugin-babel': - specifier: ^7.0.0 - version: 7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4) - '@tsparticles/prettier-config': - specifier: workspace:^ + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/preset-env": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@rollup/plugin-babel": + specifier: ^7.1.0 + version: 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0) + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/jquery': - specifier: ^4.0.0 - version: 4.0.0 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@types/webpack-env': + "@types/jquery": + specifier: ^4.0.1 + version: 4.0.1 + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/webpack-env": specifier: ^1.18.8 version: 1.18.8 - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) babel-preset-env: specifier: ^1.7.0 version: 1.7.0 eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) jquery: specifier: ^4.0.0 version: 4.0.0 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 rollup: - specifier: ^4.60.1 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 typescript: - specifier: ^5.3.3 + specifier: ^5.9.3 version: 5.9.3 uglify-js: specifier: ^3.19.3 @@ -13065,384 +13087,382 @@ importers: wrappers/lit: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist lit: - specifier: ^3.3.2 + specifier: ^3.3.3 version: 3.3.3 devDependencies: typescript: - specifier: ^5.0.0 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 wrappers/nextjs: dependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist devDependencies: - '@tsparticles/react': - specifier: workspace:^ + "@tsparticles/react": + specifier: workspace:* version: link:../react/dist - '@types/react': - specifier: ^19.2.14 - version: 19.2.15 - '@types/react-dom': + "@types/react": + specifier: ^19.2.17 + version: 19.2.17 + "@types/react-dom": specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.15) - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vitejs/plugin-react': - specifier: ^6.0.1 - version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 19.2.3(@types/react@19.2.17) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vitejs/plugin-react": + specifier: ^6.0.2 + version: 6.0.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-react-hooks: - specifier: ^7.0.1 - version: 7.1.1(eslint@10.4.1(jiti@2.7.0)) + specifier: ^7.1.1 + version: 7.1.1(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-react-refresh: - specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0)) + specifier: ^0.5.3 + version: 0.5.3(eslint@10.5.0(jiti@2.7.0)) glob: specifier: ^13.0.6 version: 13.0.6 next: - specifier: ^16.2.3 - version: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.100.0) + specifier: ^16.2.8 + version: 16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) react: - specifier: ^19.2.5 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.5 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-dts: - specifier: ^5.0.1 - version: 5.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)) + specifier: ^5.0.2 + version: 5.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)) publishDirectory: dist wrappers/nuxt2: dependencies: - '@nuxt/types': + "@nuxt/types": specifier: ^2.18.1 version: 2.18.1 - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/vue2': - specifier: workspace:^ + "@tsparticles/vue2": + specifier: workspace:* version: link:../vue2/dist nuxt: - specifier: '>=2.0.0 <3.0.0' - version: 2.18.1(@vue/compiler-sfc@3.5.34)(buffer@6.0.3)(consola@3.4.2)(encoding@0.1.13)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + specifier: ">=2.0.0 <3.0.0" + version: 2.18.1(@vue/compiler-sfc@3.5.38)(buffer@6.0.3)(consola@3.4.2)(encoding@0.1.13)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 publishDirectory: dist wrappers/nuxt3: dependencies: - '@nuxt/kit': - specifier: ^3.21.2 - version: 3.21.6(magicast@0.5.3) - '@tsparticles/engine': - specifier: workspace:^ + "@nuxt/kit": + specifier: ^3.21.8 + version: 3.21.8(magicast@0.5.3) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/vue3': - specifier: workspace:^ + "@tsparticles/vue3": + specifier: workspace:* version: link:../vue3/dist nuxt: specifier: ^3.0.0 - version: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@nuxt/schema': - specifier: ^3.21.2 - version: 3.21.6 - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@nuxt/schema": + specifier: ^3.21.8 + version: 3.21.8 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 publishDirectory: dist wrappers/nuxt4: dependencies: - '@nuxt/kit': - specifier: ^4.4.2 - version: 4.4.6(magicast@0.5.3) - '@tsparticles/engine': - specifier: workspace:^ + "@nuxt/kit": + specifier: ^4.4.8 + version: 4.4.8(magicast@0.5.3) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/vue3': - specifier: workspace:^ + "@tsparticles/vue3": + specifier: workspace:* version: link:../vue3/dist devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@nuxt/schema': - specifier: ^4.4.2 - version: 4.4.6 - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@nuxt/schema": + specifier: ^4.4.8 + version: 4.4.8 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 nuxt: - specifier: ^4.4.2 - version: 4.4.6(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4))(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + specifier: ^4.4.8 + version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 publishDirectory: dist wrappers/preact: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@babel/plugin-transform-runtime': - specifier: ^7.29.0 - version: 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': - specifier: ^7.29.2 - version: 7.29.5(@babel/core@7.29.0) - '@babel/runtime': - specifier: ^7.29.2 - version: 7.29.2 - '@tsparticles/prettier-config': - specifier: workspace:^ + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/plugin-transform-runtime": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@babel/preset-env": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@babel/runtime": + specifier: ^8.0.0 + version: 8.0.0 + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@types/react': - specifier: ^19.2.14 - version: 19.2.15 - '@types/react-dom': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@types/react": + specifier: ^19.2.17 + version: 19.2.17 + "@types/react-dom": specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.15) - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + version: 19.2.3(@types/react@19.2.17) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) babel-loader: specifier: ^10.1.1 - version: 10.1.1(@babel/core@7.29.0)(webpack@5.107.1) + version: 10.1.1(@babel/core@8.0.1)(webpack@5.107.2) cross-env: specifier: ^10.1.0 version: 10.1.0 eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) preact: - specifier: ^10.29.1 + specifier: ^10.29.2 version: 10.29.2 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 ts-loader: - specifier: ^9.5.7 - version: 9.5.7(typescript@5.9.3)(webpack@5.107.1) + specifier: ^9.6.1 + version: 9.6.1(loader-utils@3.3.1)(typescript@6.0.3)(webpack@5.107.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) typescript: - specifier: ^5.3.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 webpack: - specifier: ^5.106.1 - version: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.2) + specifier: ^5.107.2 + version: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) webpack-bundle-analyzer: specifier: ^5.3.0 version: 5.3.0 webpack-cli: - specifier: ^7.0.2 - version: 7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + specifier: ^7.0.3 + version: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) webpack-node-externals: specifier: ^3.0.0 version: 3.0.0 wrappers/qwik: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@builder.io/qwik': - specifier: 1.19.2 - version: 1.19.2(vite@8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@types/eslint': - specifier: 9.6.1 + "@builder.io/qwik": + specifier: ^1.20.0 + version: 1.20.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@types/eslint": + specifier: ^9.6.1 version: 9.6.1 - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@typescript-eslint/eslint-plugin': - specifier: 8.58.2 - version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/parser': - specifier: 8.58.2 - version: 8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: 10.4.1 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-qwik: - specifier: latest - version: 1.20.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) + specifier: ^1.20.0 + version: 1.20.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) np: - specifier: 11.0.3 - version: 11.0.3(@types/node@25.9.1)(typescript@6.0.2) + specifier: ^11.2.1 + version: 11.2.1(@types/node@25.9.3)(typescript@6.0.3) prettier: - specifier: 3.8.2 - version: 3.8.2 + specifier: ^3.8.4 + version: 3.8.4 tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist typescript: - specifier: 6.0.2 - version: 6.0.2 + specifier: ^6.0.3 + version: 6.0.3 undici: - specifier: 8.1.0 - version: 8.1.0 + specifier: ^8.5.0 + version: 8.5.0 vite: - specifier: 8.0.8 - version: 8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-tsconfig-paths: - specifier: 6.1.1 - version: 6.1.1(typescript@6.0.2)(vite@8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + specifier: ^6.1.1 + version: 6.1.1(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) wrappers/react: devDependencies: - '@tsparticles/engine': + "@tsparticles/engine": specifier: workspace:* version: link:../../engine/dist - '@types/react': - specifier: ^19.2.15 - version: 19.2.15 - '@types/react-dom': + "@types/react": + specifier: ^19.2.17 + version: 19.2.17 + "@types/react-dom": specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.15) - '@typescript-eslint/eslint-plugin': - specifier: ^8.60.0 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.60.0 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vitejs/plugin-react': + version: 19.2.3(@types/react@19.2.17) + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vitejs/plugin-react": specifier: ^6.0.2 - version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 6.0.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) eslint: - specifier: ^10.4.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-react-hooks: specifier: ^7.1.1 - version: 7.1.1(eslint@10.4.1(jiti@2.7.0)) + version: 7.1.1(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-react-refresh: - specifier: ^0.5.2 - version: 0.5.2(eslint@10.4.1(jiti@2.7.0)) + specifier: ^0.5.3 + version: 0.5.3(eslint@10.5.0(jiti@2.7.0)) glob: specifier: ^13.0.6 version: 13.0.6 react: - specifier: ^19.2.6 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.6 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) typescript: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.14 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-dts: - specifier: ^5.0.1 - version: 5.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)) + specifier: ^5.0.2 + version: 5.0.2(@vue/language-core@3.3.5)(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)) vite-plugin-lib-inject-css: specifier: ^2.2.2 - version: 2.2.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 2.2.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist wrappers/riot: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist devDependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@babel/preset-typescript': - specifier: ^7.28.5 - version: 7.28.5(@babel/core@7.29.0) - '@riotjs/cli': + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/preset-typescript": + specifier: ^8.0.0 + version: 8.0.0(@babel/core@8.0.1) + "@riotjs/cli": specifier: ^10.0.0 - version: 10.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5) - '@riotjs/compiler': - specifier: ^10.0.1 + version: 10.0.0(@babel/core@8.0.1)(@types/babel__core@7.20.5) + "@riotjs/compiler": + specifier: ^10.0.2 version: 10.0.2 - '@rollup/plugin-babel': - specifier: ^7.0.0 - version: 7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4) - '@tsparticles/prettier-config': - specifier: workspace:^ + "@rollup/plugin-babel": + specifier: ^7.1.0 + version: 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config chai: specifier: ^6.2.2 @@ -13451,215 +13471,210 @@ importers: specifier: ^3.2.25 version: 3.2.25 jsdom: - specifier: ^29.0.2 + specifier: ^29.1.1 version: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) jsdom-global: specifier: ^3.0.2 version: 3.0.2(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3)) mocha: - specifier: ^11.7.5 + specifier: ^11.7.6 version: 11.7.6 nyc: specifier: ^18.0.0 version: 18.0.0 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 riot: - specifier: ^10.1.3 + specifier: ^10.1.4 version: 10.1.4 rollup: - specifier: ^4.60.1 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 rollup-plugin-riot: specifier: ^10.0.0 - version: 10.0.0(rollup@4.60.4) + version: 10.0.0(rollup@4.62.0) publishDirectory: dist wrappers/solid: devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/engine': - specifier: workspace:^ + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/node': - specifier: ^20.12.12 - version: 20.19.41 - '@typescript-eslint/eslint-plugin': - specifier: ^8.59.1 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.59.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@types/node": + specifier: ^20.14.8 + version: 20.19.43 + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) concurrently: - specifier: ^9.2.1 - version: 9.2.1 + specifier: ^10.0.3 + version: 10.0.3 esbuild: - specifier: ^0.21.3 - version: 0.21.5 + specifier: ^0.28.1 + version: 0.28.1 esbuild-plugin-solid: specifier: ^0.6.0 - version: 0.6.0(esbuild@0.21.5)(solid-js@1.9.13) + version: 0.6.0(esbuild@0.28.1)(solid-js@1.9.13) eslint: - specifier: ^10.3.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-eslint-comments: specifier: ^3.2.0 - version: 3.2.0(eslint@10.4.1(jiti@2.7.0)) + version: 3.2.0(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-no-only-tests: - specifier: ^3.3.0 + specifier: ^3.4.0 version: 3.4.0 jsdom: - specifier: ^29.0.2 + specifier: ^29.1.1 version: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) prettier: specifier: 3.8.2 version: 3.8.2 solid-js: - specifier: ^1.8.17 + specifier: ^1.9.13 version: 1.9.13 tsup: - specifier: ^8.0.2 - version: 8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.15)(typescript@5.9.3)(yaml@2.9.0) + specifier: ^8.5.1 + version: 8.5.1(@swc/core@1.15.41)(jiti@2.7.0)(postcss@8.5.15)(supports-color@8.1.1)(typescript@6.0.3)(yaml@2.9.0) tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.21.5)(solid-js@1.9.13)(tsup@8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.15)(typescript@5.9.3)(yaml@2.9.0)) + version: 2.2.0(esbuild@0.28.1)(solid-js@1.9.13)(tsup@8.5.1(@swc/core@1.15.41)(jiti@2.7.0)(postcss@8.5.15)(supports-color@8.1.1)(typescript@6.0.3)(yaml@2.9.0)) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 vite: - specifier: ^5.2.11 - version: 5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-solid: - specifier: ^2.10.2 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)) + specifier: ^2.11.12 + version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) vitest: - specifier: ^1.6.0 - version: 1.6.1(@types/node@20.19.41)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist wrappers/stencil: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@stencil/core': + "@stencil/core": specifier: ^4.43.5 version: 4.43.5 + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist typescript: specifier: ^6.0.3 version: 6.0.3 wrappers/svelte: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@sveltejs/adapter-auto': + "@sveltejs/adapter-auto": specifier: ^7.0.1 - version: 7.0.1(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))) - '@sveltejs/kit': - specifier: ^2.57.1 - version: 2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@sveltejs/package': - specifier: ^2.5.7 - version: 2.5.7(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3) - '@sveltejs/vite-plugin-svelte': - specifier: ^7.0.0 - version: 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@types/eslint': - specifier: ^9.6.1 - version: 9.6.1 - '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 7.0.1(@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))) + "@sveltejs/kit": + specifier: ^2.65.2 + version: 2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@sveltejs/package": + specifier: ^2.5.8 + version: 2.5.8(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) + "@sveltejs/vite-plugin-svelte": + specifier: ^7.1.2 + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@typescript-eslint/eslint-plugin": + specifier: ^8.61.1 + version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^3.17.0 - version: 3.17.1(eslint@10.4.1(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + specifier: ^3.19.0 + version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-svelte: - specifier: ^4.0.1 - version: 4.0.1(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + specifier: ^4.1.1 + version: 4.1.1(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1)) publint: - specifier: ^0.3.18 + specifier: ^0.3.21 version: 0.3.21 svelte: - specifier: ^5.55.3 - version: 5.55.9(@typescript-eslint/types@8.60.0) + specifier: ^5.56.3 + version: 5.56.3(@typescript-eslint/types@8.61.1) svelte-check: - specifier: ^4.4.6 - version: 4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3) + specifier: ^4.6.0 + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) tslib: specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) publishDirectory: dist wrappers/vue2: dependencies: - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@tsparticles/prettier-config': - specifier: workspace:^ + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vitejs/plugin-vue2': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vitejs/plugin-vue2": specifier: ^2.3.4 - version: 2.3.4(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@2.7.16) + version: 2.3.4(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@2.7.16) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^6.4.1 - version: 6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^6.4.3 + version: 6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-dts: - specifier: ^5.0.1 - version: 5.0.1(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + specifier: ^5.0.2 + version: 5.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue: specifier: ^2.7.16 version: 2.7.16 @@ -13667,8 +13682,8 @@ importers: specifier: ^7.2.6 version: 7.2.6(vue@2.7.16) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) vue-property-decorator: specifier: ^9.1.2 version: 9.1.2(vue-class-component@7.2.6(vue@2.7.16))(vue@2.7.16) @@ -13676,941 +13691,977 @@ importers: specifier: ^2.7.16 version: 2.7.16 vue-tsc: - specifier: ^3.2.6 - version: 3.3.1(typescript@6.0.3) + specifier: ^3.3.5 + version: 3.3.5(typescript@6.0.3) publishDirectory: dist wrappers/vue3: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist - vue: - specifier: ^3.5.32 - version: 3.5.34(typescript@6.0.3) devDependencies: - '@eslint/js': + "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) - '@rushstack/eslint-patch': + version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + "@rushstack/eslint-patch": specifier: ^1.16.1 version: 1.16.1 - '@tsconfig/node18': + "@tsconfig/node18": specifier: ^18.2.6 version: 18.2.6 - '@tsparticles/prettier-config': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/node': - specifier: ^25.6.0 - version: 25.9.1 - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vitejs/plugin-vue': - specifier: ^6.0.5 - version: 6.0.7(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': + "@types/node": + specifier: ^25.9.3 + version: 25.9.3 + "@typescript-eslint/parser": + specifier: ^8.61.1 + version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vitejs/plugin-vue": + specifier: ^6.0.7 + version: 6.0.7(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vitejs/plugin-vue-jsx": specifier: ^5.1.5 - version: 5.1.5(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vue/eslint-config-prettier': + version: 5.1.5(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vue/eslint-config-prettier": specifier: ^10.2.0 - version: 10.2.0(@types/eslint@9.6.1)(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) - '@vue/eslint-config-typescript': - specifier: ^14.7.0 - version: 14.7.0(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@vue/language-core': - specifier: ^3.3.2 - version: 3.3.2 - '@vue/tsconfig': + version: 10.2.0(@types/eslint@9.6.1)(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) + "@vue/eslint-config-typescript": + specifier: ^14.8.0 + version: 14.8.0(eslint-plugin-vue@10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@vue/language-core": + specifier: ^3.3.5 + version: 3.3.5 + "@vue/tsconfig": specifier: ^0.9.1 - version: 0.9.1(typescript@6.0.3)(vue@3.5.34(typescript@6.0.3)) + version: 0.9.1(typescript@6.0.3)(vue@3.5.38(typescript@6.0.3)) eslint: - specifier: ^10.2.0 - version: 10.4.1(jiti@2.7.0) + specifier: ^10.5.0 + version: 10.5.0(jiti@2.7.0) eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + specifier: ^10.9.2 + version: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) globals: - specifier: ^17.5.0 + specifier: ^17.6.0 version: 17.6.0 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.8 - version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-dts: - specifier: ^5.0.1 - version: 5.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)) + specifier: ^5.0.2 + version: 5.0.2(@vue/language-core@3.3.5)(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)) + vue: + specifier: 3.5.38 + version: 3.5.38(typescript@6.0.3) vue-eslint-parser: - specifier: ^10.4.0 - version: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + specifier: ^10.4.1 + version: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) vue-tsc: - specifier: ^3.2.6 - version: 3.3.1(typescript@6.0.3) + specifier: ^3.3.5 + version: 3.3.5(typescript@6.0.3) publishDirectory: dist wrappers/webcomponents: - dependencies: - '@tsparticles/engine': - specifier: workspace:^ - version: link:../../engine/dist devDependencies: - '@rollup/plugin-node-resolve': + "@rollup/plugin-node-resolve": specifier: ^16.0.3 - version: 16.0.3(rollup@4.60.4) - '@rollup/plugin-typescript': + version: 16.0.3(rollup@4.62.0) + "@rollup/plugin-typescript": specifier: ^12.3.0 - version: 12.3.0(rollup@4.60.4)(tslib@2.8.1)(typescript@5.9.3) - '@tsparticles/prettier-config': - specifier: workspace:^ + version: 12.3.0(rollup@4.62.0)(tslib@2.8.1)(typescript@6.0.3) + "@tsparticles/engine": + specifier: workspace:* + version: link:../../engine/dist + "@tsparticles/prettier-config": + specifier: workspace:* version: link:../../cli/utils/prettier-config - '@types/node': - specifier: ^20.1.0 - version: 20.19.41 + "@types/node": + specifier: ^20.6.0 + version: 20.19.43 prettier: - specifier: ^3.8.2 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 rollup: - specifier: ^4.60.1 - version: 4.60.4 + specifier: ^4.62.0 + version: 4.62.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.40)(@types/node@20.19.41)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@20.19.43)(typescript@6.0.3) tslib: specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ^5.0.0 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 publishDirectory: dist wrappers/wordpress: dependencies: - '@tsparticles/all': - specifier: workspace:^ + "@tsparticles/all": + specifier: workspace:* version: link:../../bundles/all/dist - '@tsparticles/basic': - specifier: workspace:^ + "@tsparticles/basic": + specifier: workspace:* version: link:../../bundles/basic/dist - '@tsparticles/effect-bubble': - specifier: workspace:^ + "@tsparticles/effect-bubble": + specifier: workspace:* version: link:../../effects/bubble/dist - '@tsparticles/effect-filter': - specifier: workspace:^ + "@tsparticles/effect-filter": + specifier: workspace:* version: link:../../effects/filter/dist - '@tsparticles/effect-particles': - specifier: workspace:^ + "@tsparticles/effect-particles": + specifier: workspace:* version: link:../../effects/particles/dist - '@tsparticles/effect-shadow': - specifier: workspace:^ + "@tsparticles/effect-shadow": + specifier: workspace:* version: link:../../effects/shadow/dist - '@tsparticles/effect-trail': - specifier: workspace:^ + "@tsparticles/effect-trail": + specifier: workspace:* version: link:../../effects/trail/dist - '@tsparticles/engine': - specifier: workspace:^ + "@tsparticles/engine": + specifier: workspace:* version: link:../../engine/dist - '@tsparticles/interaction-external-attract': - specifier: workspace:^ + "@tsparticles/interaction-external-attract": + specifier: workspace:* version: link:../../interactions/external/attract/dist - '@tsparticles/interaction-external-bounce': - specifier: workspace:^ + "@tsparticles/interaction-external-bounce": + specifier: workspace:* version: link:../../interactions/external/bounce/dist - '@tsparticles/interaction-external-bubble': - specifier: workspace:^ + "@tsparticles/interaction-external-bubble": + specifier: workspace:* version: link:../../interactions/external/bubble/dist - '@tsparticles/interaction-external-cannon': - specifier: workspace:^ + "@tsparticles/interaction-external-cannon": + specifier: workspace:* version: link:../../interactions/external/cannon/dist - '@tsparticles/interaction-external-connect': - specifier: workspace:^ + "@tsparticles/interaction-external-connect": + specifier: workspace:* version: link:../../interactions/external/connect/dist - '@tsparticles/interaction-external-grab': - specifier: workspace:^ + "@tsparticles/interaction-external-destroy": + specifier: workspace:* + version: link:../../interactions/external/destroy/dist + "@tsparticles/interaction-external-drag": + specifier: workspace:* + version: link:../../interactions/external/drag/dist + "@tsparticles/interaction-external-grab": + specifier: workspace:* version: link:../../interactions/external/grab/dist - '@tsparticles/interaction-external-parallax': - specifier: workspace:^ + "@tsparticles/interaction-external-parallax": + specifier: workspace:* version: link:../../interactions/external/parallax/dist - '@tsparticles/interaction-external-particle': - specifier: workspace:^ + "@tsparticles/interaction-external-particle": + specifier: workspace:* version: link:../../interactions/external/particle/dist - '@tsparticles/interaction-external-pause': - specifier: workspace:^ + "@tsparticles/interaction-external-pause": + specifier: workspace:* version: link:../../interactions/external/pause/dist - '@tsparticles/interaction-external-pop': - specifier: workspace:^ + "@tsparticles/interaction-external-pop": + specifier: workspace:* version: link:../../interactions/external/pop/dist - '@tsparticles/interaction-external-push': - specifier: workspace:^ + "@tsparticles/interaction-external-push": + specifier: workspace:* version: link:../../interactions/external/push/dist - '@tsparticles/interaction-external-remove': - specifier: workspace:^ + "@tsparticles/interaction-external-remove": + specifier: workspace:* version: link:../../interactions/external/remove/dist - '@tsparticles/interaction-external-repulse': - specifier: workspace:^ + "@tsparticles/interaction-external-repulse": + specifier: workspace:* version: link:../../interactions/external/repulse/dist - '@tsparticles/interaction-external-slow': - specifier: workspace:^ + "@tsparticles/interaction-external-slow": + specifier: workspace:* version: link:../../interactions/external/slow/dist - '@tsparticles/interaction-external-trail': - specifier: workspace:^ + "@tsparticles/interaction-external-trail": + specifier: workspace:* version: link:../../interactions/external/trail/dist - '@tsparticles/interaction-light': - specifier: workspace:^ + "@tsparticles/interaction-light": + specifier: workspace:* version: link:../../interactions/light/dist - '@tsparticles/interaction-particles-attract': - specifier: workspace:^ + "@tsparticles/interaction-particles-attract": + specifier: workspace:* version: link:../../interactions/particles/attract/dist - '@tsparticles/interaction-particles-collisions': - specifier: workspace:^ + "@tsparticles/interaction-particles-collisions": + specifier: workspace:* version: link:../../interactions/particles/collisions/dist - '@tsparticles/interaction-particles-links': - specifier: workspace:^ + "@tsparticles/interaction-particles-links": + specifier: workspace:* version: link:../../interactions/particles/links/dist - '@tsparticles/interaction-particles-repulse': - specifier: workspace:^ + "@tsparticles/interaction-particles-repulse": + specifier: workspace:* version: link:../../interactions/particles/repulse/dist - '@tsparticles/path-branches': - specifier: workspace:^ + "@tsparticles/path-branches": + specifier: workspace:* version: link:../../paths/branches/dist - '@tsparticles/path-brownian': - specifier: workspace:^ + "@tsparticles/path-brownian": + specifier: workspace:* version: link:../../paths/brownian/dist - '@tsparticles/path-curl-noise': - specifier: workspace:^ + "@tsparticles/path-curl-noise": + specifier: workspace:* version: link:../../paths/curlNoise/dist - '@tsparticles/path-curves': - specifier: workspace:^ + "@tsparticles/path-curves": + specifier: workspace:* version: link:../../paths/curves/dist - '@tsparticles/path-fractal-noise': - specifier: workspace:^ + "@tsparticles/path-fractal-noise": + specifier: workspace:* version: link:../../paths/fractalNoise/dist - '@tsparticles/path-grid': - specifier: workspace:^ + "@tsparticles/path-grid": + specifier: workspace:* version: link:../../paths/grid/dist - '@tsparticles/path-levy': - specifier: workspace:^ + "@tsparticles/path-levy": + specifier: workspace:* version: link:../../paths/levy/dist - '@tsparticles/path-perlin-noise': - specifier: workspace:^ + "@tsparticles/path-perlin-noise": + specifier: workspace:* version: link:../../paths/perlinNoise/dist - '@tsparticles/path-polygon': - specifier: workspace:^ + "@tsparticles/path-polygon": + specifier: workspace:* version: link:../../paths/polygon/dist - '@tsparticles/path-random': - specifier: workspace:^ + "@tsparticles/path-random": + specifier: workspace:* version: link:../../paths/random/dist - '@tsparticles/path-simplex-noise': - specifier: workspace:^ + "@tsparticles/path-simplex-noise": + specifier: workspace:* version: link:../../paths/simplexNoise/dist - '@tsparticles/path-spiral': - specifier: workspace:^ + "@tsparticles/path-spiral": + specifier: workspace:* version: link:../../paths/spiral/dist - '@tsparticles/path-svg': - specifier: workspace:^ + "@tsparticles/path-svg": + specifier: workspace:* version: link:../../paths/svg/dist - '@tsparticles/path-zig-zag': - specifier: workspace:^ + "@tsparticles/path-zig-zag": + specifier: workspace:* version: link:../../paths/zigzag/dist - '@tsparticles/perlin-noise': - specifier: workspace:^ + "@tsparticles/perlin-noise": + specifier: workspace:* version: link:../../utils/perlinNoise/dist - '@tsparticles/pjs': - specifier: workspace:^ + "@tsparticles/pjs": + specifier: workspace:* version: link:../../bundles/pjs/dist - '@tsparticles/plugin-absorbers': - specifier: workspace:^ + "@tsparticles/plugin-absorbers": + specifier: workspace:* version: link:../../plugins/absorbers/dist - '@tsparticles/plugin-background-mask': - specifier: workspace:^ + "@tsparticles/plugin-background-mask": + specifier: workspace:* version: link:../../plugins/backgroundMask/dist - '@tsparticles/plugin-blend': - specifier: workspace:^ + "@tsparticles/plugin-blend": + specifier: workspace:* version: link:../../plugins/blend/dist - '@tsparticles/plugin-canvas-mask': - specifier: workspace:^ + "@tsparticles/plugin-canvas-mask": + specifier: workspace:* version: link:../../plugins/canvasMask/dist - '@tsparticles/plugin-easing-back': - specifier: workspace:^ + "@tsparticles/plugin-easing-back": + specifier: workspace:* version: link:../../plugins/easings/back/dist - '@tsparticles/plugin-easing-bounce': - specifier: workspace:^ + "@tsparticles/plugin-easing-bounce": + specifier: workspace:* version: link:../../plugins/easings/bounce/dist - '@tsparticles/plugin-easing-circ': - specifier: workspace:^ + "@tsparticles/plugin-easing-circ": + specifier: workspace:* version: link:../../plugins/easings/circ/dist - '@tsparticles/plugin-easing-cubic': - specifier: workspace:^ + "@tsparticles/plugin-easing-cubic": + specifier: workspace:* version: link:../../plugins/easings/cubic/dist - '@tsparticles/plugin-easing-elastic': - specifier: workspace:^ + "@tsparticles/plugin-easing-elastic": + specifier: workspace:* version: link:../../plugins/easings/elastic/dist - '@tsparticles/plugin-easing-expo': - specifier: workspace:^ + "@tsparticles/plugin-easing-expo": + specifier: workspace:* version: link:../../plugins/easings/expo/dist - '@tsparticles/plugin-easing-gaussian': - specifier: workspace:^ + "@tsparticles/plugin-easing-gaussian": + specifier: workspace:* version: link:../../plugins/easings/gaussian/dist - '@tsparticles/plugin-easing-linear': - specifier: workspace:^ + "@tsparticles/plugin-easing-linear": + specifier: workspace:* version: link:../../plugins/easings/linear/dist - '@tsparticles/plugin-easing-quad': - specifier: workspace:^ + "@tsparticles/plugin-easing-quad": + specifier: workspace:* version: link:../../plugins/easings/quad/dist - '@tsparticles/plugin-easing-quart': - specifier: workspace:^ + "@tsparticles/plugin-easing-quart": + specifier: workspace:* version: link:../../plugins/easings/quart/dist - '@tsparticles/plugin-easing-quint': - specifier: workspace:^ + "@tsparticles/plugin-easing-quint": + specifier: workspace:* version: link:../../plugins/easings/quint/dist - '@tsparticles/plugin-easing-sigmoid': - specifier: workspace:^ + "@tsparticles/plugin-easing-sigmoid": + specifier: workspace:* version: link:../../plugins/easings/sigmoid/dist - '@tsparticles/plugin-easing-sine': - specifier: workspace:^ + "@tsparticles/plugin-easing-sine": + specifier: workspace:* version: link:../../plugins/easings/sine/dist - '@tsparticles/plugin-easing-smoothstep': - specifier: workspace:^ + "@tsparticles/plugin-easing-smoothstep": + specifier: workspace:* version: link:../../plugins/easings/smoothstep/dist - '@tsparticles/plugin-emitters': - specifier: workspace:^ + "@tsparticles/plugin-emitters": + specifier: workspace:* version: link:../../plugins/emitters/dist - '@tsparticles/plugin-emitters-shape-canvas': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-canvas": + specifier: workspace:* version: link:../../plugins/emittersShapes/canvas/dist - '@tsparticles/plugin-emitters-shape-circle': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-circle": + specifier: workspace:* version: link:../../plugins/emittersShapes/circle/dist - '@tsparticles/plugin-emitters-shape-path': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-path": + specifier: workspace:* version: link:../../plugins/emittersShapes/path/dist - '@tsparticles/plugin-emitters-shape-polygon': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-polygon": + specifier: workspace:* version: link:../../plugins/emittersShapes/polygon/dist - '@tsparticles/plugin-emitters-shape-square': - specifier: workspace:^ + "@tsparticles/plugin-emitters-shape-square": + specifier: workspace:* version: link:../../plugins/emittersShapes/square/dist - '@tsparticles/plugin-export-image': - specifier: workspace:^ + "@tsparticles/plugin-export-image": + specifier: workspace:* version: link:../../plugins/exports/image/dist - '@tsparticles/plugin-export-json': - specifier: workspace:^ + "@tsparticles/plugin-export-json": + specifier: workspace:* version: link:../../plugins/exports/json/dist - '@tsparticles/plugin-export-video': - specifier: workspace:^ + "@tsparticles/plugin-export-video": + specifier: workspace:* version: link:../../plugins/exports/video/dist - '@tsparticles/plugin-hsv-color': - specifier: workspace:^ + "@tsparticles/plugin-hex-color": + specifier: workspace:* + version: link:../../plugins/colors/hex/dist + "@tsparticles/plugin-hsl-color": + specifier: workspace:* + version: link:../../plugins/colors/hsl/dist + "@tsparticles/plugin-hsv-color": + specifier: workspace:* version: link:../../plugins/colors/hsv/dist - '@tsparticles/plugin-hwb-color': - specifier: workspace:^ + "@tsparticles/plugin-hwb-color": + specifier: workspace:* version: link:../../plugins/colors/hwb/dist - '@tsparticles/plugin-infection': - specifier: workspace:^ + "@tsparticles/plugin-infection": + specifier: workspace:* version: link:../../plugins/infection/dist - '@tsparticles/plugin-lab-color': - specifier: workspace:^ + "@tsparticles/plugin-interactivity": + specifier: workspace:* + version: link:../../plugins/interactivity/dist + "@tsparticles/plugin-lab-color": + specifier: workspace:* version: link:../../plugins/colors/lab/dist - '@tsparticles/plugin-lch-color': - specifier: workspace:^ + "@tsparticles/plugin-lch-color": + specifier: workspace:* version: link:../../plugins/colors/lch/dist - '@tsparticles/plugin-manual-particles': - specifier: workspace:^ + "@tsparticles/plugin-manual-particles": + specifier: workspace:* version: link:../../plugins/manualParticles/dist - '@tsparticles/plugin-motion': - specifier: workspace:^ + "@tsparticles/plugin-motion": + specifier: workspace:* version: link:../../plugins/motion/dist - '@tsparticles/plugin-move': - specifier: workspace:^ + "@tsparticles/plugin-move": + specifier: workspace:* version: link:../../plugins/move/dist - '@tsparticles/plugin-named-color': - specifier: workspace:^ + "@tsparticles/plugin-named-color": + specifier: workspace:* version: link:../../plugins/colors/named/dist - '@tsparticles/plugin-oklab-color': - specifier: workspace:^ + "@tsparticles/plugin-oklab-color": + specifier: workspace:* version: link:../../plugins/colors/oklab/dist - '@tsparticles/plugin-oklch-color': - specifier: workspace:^ + "@tsparticles/plugin-oklch-color": + specifier: workspace:* version: link:../../plugins/colors/oklch/dist - '@tsparticles/plugin-poisson-disc': - specifier: workspace:^ + "@tsparticles/plugin-poisson-disc": + specifier: workspace:* version: link:../../plugins/poisson/dist - '@tsparticles/plugin-polygon-mask': - specifier: workspace:^ + "@tsparticles/plugin-polygon-mask": + specifier: workspace:* version: link:../../plugins/polygonMask/dist - '@tsparticles/plugin-responsive': - specifier: workspace:^ + "@tsparticles/plugin-responsive": + specifier: workspace:* version: link:../../plugins/responsive/dist - '@tsparticles/plugin-sounds': - specifier: workspace:^ + "@tsparticles/plugin-rgb-color": + specifier: workspace:* + version: link:../../plugins/colors/rgb/dist + "@tsparticles/plugin-sounds": + specifier: workspace:* version: link:../../plugins/sounds/dist - '@tsparticles/plugin-themes': - specifier: workspace:^ + "@tsparticles/plugin-themes": + specifier: workspace:* version: link:../../plugins/themes/dist - '@tsparticles/plugin-trail': - specifier: workspace:^ + "@tsparticles/plugin-trail": + specifier: workspace:* version: link:../../plugins/trail/dist - '@tsparticles/plugin-zoom': - specifier: workspace:^ + "@tsparticles/plugin-zoom": + specifier: workspace:* version: link:../../plugins/zoom/dist - '@tsparticles/preset-ambient': - specifier: workspace:^ + "@tsparticles/preset-ambient": + specifier: workspace:* version: link:../../presets/ambient/dist - '@tsparticles/preset-big-circles': - specifier: workspace:^ + "@tsparticles/preset-big-circles": + specifier: workspace:* version: link:../../presets/bigCircles/dist - '@tsparticles/preset-bubbles': - specifier: workspace:^ + "@tsparticles/preset-bubbles": + specifier: workspace:* version: link:../../presets/bubbles/dist - '@tsparticles/preset-confetti': - specifier: workspace:^ + "@tsparticles/preset-confetti": + specifier: workspace:* version: link:../../presets/confetti/dist - '@tsparticles/preset-confetti-cannon': - specifier: workspace:^ + "@tsparticles/preset-confetti-cannon": + specifier: workspace:* version: link:../../presets/confettiCannon/dist - '@tsparticles/preset-confetti-explosions': - specifier: workspace:^ + "@tsparticles/preset-confetti-explosions": + specifier: workspace:* version: link:../../presets/confettiExplosions/dist - '@tsparticles/preset-confetti-falling': - specifier: workspace:^ + "@tsparticles/preset-confetti-falling": + specifier: workspace:* version: link:../../presets/confettiFalling/dist - '@tsparticles/preset-confetti-parade': - specifier: workspace:^ + "@tsparticles/preset-confetti-parade": + specifier: workspace:* version: link:../../presets/confettiParade/dist - '@tsparticles/preset-fire': - specifier: workspace:^ + "@tsparticles/preset-fire": + specifier: workspace:* version: link:../../presets/fire/dist - '@tsparticles/preset-firefly': - specifier: workspace:^ + "@tsparticles/preset-firefly": + specifier: workspace:* version: link:../../presets/firefly/dist - '@tsparticles/preset-fireworks': - specifier: workspace:^ + "@tsparticles/preset-fireworks": + specifier: workspace:* version: link:../../presets/fireworks/dist - '@tsparticles/preset-fountain': - specifier: workspace:^ + "@tsparticles/preset-fountain": + specifier: workspace:* version: link:../../presets/fountain/dist - '@tsparticles/preset-hyperspace': - specifier: workspace:^ + "@tsparticles/preset-hyperspace": + specifier: workspace:* version: link:../../presets/hyperspace/dist - '@tsparticles/preset-links': - specifier: workspace:^ + "@tsparticles/preset-links": + specifier: workspace:* version: link:../../presets/links/dist - '@tsparticles/preset-matrix': - specifier: workspace:^ + "@tsparticles/preset-matrix": + specifier: workspace:* version: link:../../presets/matrix/dist - '@tsparticles/preset-sea-anemone': - specifier: workspace:^ + "@tsparticles/preset-meteors": + specifier: workspace:* + version: link:../../presets/meteors/dist + "@tsparticles/preset-party": + specifier: workspace:* + version: link:../../presets/party/dist + "@tsparticles/preset-sea-anemone": + specifier: workspace:* version: link:../../presets/seaAnemone/dist - '@tsparticles/preset-snow': - specifier: workspace:^ + "@tsparticles/preset-snow": + specifier: workspace:* version: link:../../presets/snow/dist - '@tsparticles/preset-squares': - specifier: workspace:^ + "@tsparticles/preset-squares": + specifier: workspace:* version: link:../../presets/squares/dist - '@tsparticles/preset-stars': - specifier: workspace:^ + "@tsparticles/preset-stars": + specifier: workspace:* version: link:../../presets/stars/dist - '@tsparticles/preset-triangles': - specifier: workspace:^ + "@tsparticles/preset-triangles": + specifier: workspace:* version: link:../../presets/triangles/dist - '@tsparticles/shape-arrow': - specifier: workspace:^ + "@tsparticles/shape-arrow": + specifier: workspace:* version: link:../../shapes/arrow/dist - '@tsparticles/shape-cards': - specifier: workspace:^ + "@tsparticles/shape-cards": + specifier: workspace:* version: link:../../shapes/cards/dist - '@tsparticles/shape-circle': - specifier: workspace:^ + "@tsparticles/shape-circle": + specifier: workspace:* version: link:../../shapes/circle/dist - '@tsparticles/shape-cog': - specifier: workspace:^ + "@tsparticles/shape-cog": + specifier: workspace:* version: link:../../shapes/cog/dist - '@tsparticles/shape-emoji': - specifier: workspace:^ + "@tsparticles/shape-emoji": + specifier: workspace:* version: link:../../shapes/emoji/dist - '@tsparticles/shape-heart': - specifier: workspace:^ + "@tsparticles/shape-heart": + specifier: workspace:* version: link:../../shapes/heart/dist - '@tsparticles/shape-image': - specifier: workspace:^ + "@tsparticles/shape-image": + specifier: workspace:* version: link:../../shapes/image/dist - '@tsparticles/shape-infinity': - specifier: workspace:^ + "@tsparticles/shape-infinity": + specifier: workspace:* version: link:../../shapes/infinity/dist - '@tsparticles/shape-line': - specifier: workspace:^ + "@tsparticles/shape-line": + specifier: workspace:* version: link:../../shapes/line/dist - '@tsparticles/shape-matrix': - specifier: workspace:^ + "@tsparticles/shape-matrix": + specifier: workspace:* version: link:../../shapes/matrix/dist - '@tsparticles/shape-path': - specifier: workspace:^ + "@tsparticles/shape-path": + specifier: workspace:* version: link:../../shapes/path/dist - '@tsparticles/shape-polygon': - specifier: workspace:^ + "@tsparticles/shape-polygon": + specifier: workspace:* version: link:../../shapes/polygon/dist - '@tsparticles/shape-rounded-polygon': - specifier: workspace:^ + "@tsparticles/shape-ribbon": + specifier: workspace:* + version: link:../../shapes/ribbon/dist + "@tsparticles/shape-rounded-polygon": + specifier: workspace:* version: link:../../shapes/rounded-polygon/dist - '@tsparticles/shape-rounded-rect': - specifier: workspace:^ + "@tsparticles/shape-rounded-rect": + specifier: workspace:* version: link:../../shapes/rounded-rect/dist - '@tsparticles/shape-spiral': - specifier: workspace:^ + "@tsparticles/shape-spiral": + specifier: workspace:* version: link:../../shapes/spiral/dist - '@tsparticles/shape-square': - specifier: workspace:^ + "@tsparticles/shape-square": + specifier: workspace:* version: link:../../shapes/square/dist - '@tsparticles/shape-squircle': - specifier: workspace:^ + "@tsparticles/shape-squircle": + specifier: workspace:* version: link:../../shapes/squircle/dist - '@tsparticles/shape-star': - specifier: workspace:^ + "@tsparticles/shape-star": + specifier: workspace:* version: link:../../shapes/star/dist - '@tsparticles/shape-text': - specifier: workspace:^ + "@tsparticles/shape-text": + specifier: workspace:* version: link:../../shapes/text/dist - '@tsparticles/simplex-noise': - specifier: workspace:^ + "@tsparticles/simplex-noise": + specifier: workspace:* version: link:../../utils/simplexNoise/dist - '@tsparticles/slim': - specifier: workspace:^ + "@tsparticles/slim": + specifier: workspace:* version: link:../../bundles/slim/dist - '@tsparticles/updater-destroy': - specifier: workspace:^ + "@tsparticles/updater-destroy": + specifier: workspace:* version: link:../../updaters/destroy/dist - '@tsparticles/updater-gradient': - specifier: workspace:^ + "@tsparticles/updater-gradient": + specifier: workspace:* version: link:../../updaters/gradient/dist - '@tsparticles/updater-life': - specifier: workspace:^ + "@tsparticles/updater-life": + specifier: workspace:* version: link:../../updaters/life/dist - '@tsparticles/updater-opacity': - specifier: workspace:^ + "@tsparticles/updater-opacity": + specifier: workspace:* version: link:../../updaters/opacity/dist - '@tsparticles/updater-orbit': - specifier: workspace:^ + "@tsparticles/updater-orbit": + specifier: workspace:* version: link:../../updaters/orbit/dist - '@tsparticles/updater-out-modes': - specifier: workspace:^ + "@tsparticles/updater-out-modes": + specifier: workspace:* version: link:../../updaters/outModes/dist - '@tsparticles/updater-paint': - specifier: workspace:^ + "@tsparticles/updater-paint": + specifier: workspace:* version: link:../../updaters/paint/dist - '@tsparticles/updater-roll': - specifier: workspace:^ + "@tsparticles/updater-roll": + specifier: workspace:* version: link:../../updaters/roll/dist - '@tsparticles/updater-rotate': - specifier: workspace:^ + "@tsparticles/updater-rotate": + specifier: workspace:* version: link:../../updaters/rotate/dist - '@tsparticles/updater-size': - specifier: workspace:^ + "@tsparticles/updater-size": + specifier: workspace:* version: link:../../updaters/size/dist - '@tsparticles/updater-tilt': - specifier: workspace:^ + "@tsparticles/updater-tilt": + specifier: workspace:* version: link:../../updaters/tilt/dist - '@tsparticles/updater-twinkle': - specifier: workspace:^ + "@tsparticles/updater-twinkle": + specifier: workspace:* version: link:../../updaters/twinkle/dist - '@tsparticles/updater-wobble': - specifier: workspace:^ + "@tsparticles/updater-wobble": + specifier: workspace:* version: link:../../updaters/wobble/dist tsparticles: - specifier: workspace:^ + specifier: workspace:* version: link:../../bundles/full/dist devDependencies: - '@babel/core': - specifier: ^7.29.0 - version: 7.29.0 - '@babel/runtime': - specifier: ^7.29.2 - version: 7.29.2 - '@wordpress/block-editor': - specifier: ^15.18.0 - version: 15.19.0(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) - '@wordpress/blocks': - specifier: ^15.18.0 - version: 15.19.0(react@19.2.6) - '@wordpress/browserslist-config': - specifier: ^6.45.0 - version: 6.46.0 - '@wordpress/i18n': - specifier: ^6.18.0 - version: 6.19.0 - '@wordpress/scripts': - specifier: ^32.1.0 - version: 32.2.0(@playwright/test@1.60.0)(@swc/core@1.15.40)(@types/eslint@9.6.1)(@types/node@25.9.1)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(node-notifier@10.0.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1) + "@babel/core": + specifier: ^8.0.1 + version: 8.0.1 + "@babel/runtime": + specifier: ^8.0.0 + version: 8.0.0 + "@wordpress/block-editor": + specifier: ^15.21.1 + version: 15.21.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.31))(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/blocks": + specifier: ^15.21.1 + version: 15.21.1(react@19.2.7) + "@wordpress/browserslist-config": + specifier: ^6.48.1 + version: 6.48.1 + "@wordpress/i18n": + specifier: ^6.21.1 + version: 6.21.1 + "@wordpress/scripts": + specifier: ^32.4.1 + version: 32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@25.9.3)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1) fs-extra: - specifier: ^11.3.4 + specifier: ^11.3.5 version: 11.3.5 gulp: specifier: ^5.0.1 version: 5.0.1 postcss: - specifier: ^8.5.10 + specifier: ^8.5.15 version: 8.5.15 react: - specifier: ^19.2.5 - version: 19.2.6 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.5 - version: 19.2.6(react@19.2.6) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) typescript: specifier: ^6.0.3 version: 6.0.3 packages: - - '@11ty/dependency-tree@2.0.1': - resolution: {integrity: sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==} - - '@11ty/eleventy-dev-server@1.0.4': - resolution: {integrity: sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==} - engines: {node: '>=14'} + "@11ty/dependency-tree-esm@2.0.4": + resolution: + { integrity: sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A== } + + "@11ty/dependency-tree@4.0.2": + resolution: + { integrity: sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA== } + + "@11ty/eleventy-dev-server@2.0.8": + resolution: + { integrity: sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA== } + engines: { node: ">=18" } hasBin: true - '@11ty/eleventy-plugin-syntaxhighlight@5.0.2': - resolution: {integrity: sha512-T6xVVRDJuHlrFMHbUiZkHjj5o1IlLzZW+1IL9eUsyXFU7rY2ztcYhZew/64vmceFFpQwzuSfxQOXxTJYmKkQ+A==} - - '@11ty/eleventy-utils@1.0.3': - resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} - engines: {node: '>=12'} - - '@11ty/eleventy@2.0.1': - resolution: {integrity: sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==} - engines: {node: '>=14'} - hasBin: true - - '@11ty/lodash-custom@4.17.21': - resolution: {integrity: sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==} - engines: {node: '>=14'} - - '@achrinza/node-ipc@9.2.10': - resolution: {integrity: sha512-rCkw57K82y1XA9KwBmuMrupFQr9VOS4Rn77vW2UD2j0+HjlP/npSON9COkUIfocd95B4wv5EpfWMr6lGD4lN3A==} - engines: {node: 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21 || 22 || 23 || 24 || 25} - - '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - - '@adobe/css-tools@4.5.0': - resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} - - '@algolia/abtesting@1.14.1': - resolution: {integrity: sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==} - engines: {node: '>= 14.0.0'} - - '@algolia/abtesting@1.18.1': - resolution: {integrity: sha512-aehCadlWOGvrT91KUIZpC0MbB8KBW9yUuvTJFd2xesR7le/IsT4nJUnjCCZ4ZqZCeTcPHPV5mo//fZ5oxcSVYw==} - engines: {node: '>= 14.0.0'} - - '@algolia/autocomplete-core@1.17.7': - resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} - - '@algolia/autocomplete-plugin-algolia-insights@1.17.7': - resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} - peerDependencies: - search-insights: '>= 1 < 3' - - '@algolia/autocomplete-preset-algolia@1.17.7': - resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-shared@1.17.7': - resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/client-abtesting@5.48.1': - resolution: {integrity: sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-abtesting@5.52.1': - resolution: {integrity: sha512-HmXOGBOAOJPounpBzBpuY0zDYeiCpxgHnQmuA7JO6ScukcBdGp3/XM9zJk5pJx/xNGD68mbPGXWpDxGtl6BwDQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-analytics@5.48.1': - resolution: {integrity: sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==} - engines: {node: '>= 14.0.0'} + "@11ty/eleventy-plugin-bundle@3.0.7": + resolution: + { integrity: sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA== } + engines: { node: ">=18" } - '@algolia/client-analytics@5.52.1': - resolution: {integrity: sha512-5oo4+I8iixie9vXhCyNFCzeIr8pqA3FQ//VsLHTDvZAV4ttYOPGvYHGQq5NSalrLx5Jc3dRro/5uDOlnUMcBJg==} - engines: {node: '>= 14.0.0'} + "@11ty/eleventy-plugin-syntaxhighlight@5.0.2": + resolution: + { integrity: sha512-T6xVVRDJuHlrFMHbUiZkHjj5o1IlLzZW+1IL9eUsyXFU7rY2ztcYhZew/64vmceFFpQwzuSfxQOXxTJYmKkQ+A== } - '@algolia/client-common@5.48.1': - resolution: {integrity: sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==} - engines: {node: '>= 14.0.0'} + "@11ty/eleventy-utils@2.0.7": + resolution: + { integrity: sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ== } + engines: { node: ">=18" } - '@algolia/client-common@5.52.1': - resolution: {integrity: sha512-qCDoZfx5MpX7XQzvQ3bC4tSEMkQWQMaF/ABtLuoze03Y/flR563CCSws02qIJ23oX7lxl92LsilZjINVyTdtLw==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-insights@5.48.1': - resolution: {integrity: sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-insights@5.52.1': - resolution: {integrity: sha512-hnGs0/lsFJ2PWDxNBz7pxreXo/Xz7gxYRcfePBUjsH26ad0kU/sgnVZd9LwWBpsQv65z2jlb5dkyaB9WE9M9FQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-personalization@5.48.1': - resolution: {integrity: sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-personalization@5.52.1': - resolution: {integrity: sha512-2VxxNc/uBysyKvGeBdSM5n9eIDKH8kWD7wd9/yqbJAiVwU4Yv6tU1LSJusHKrXV/aCu1KW7t9Gug9QyeEmtn/Q==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-query-suggestions@5.48.1': - resolution: {integrity: sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-query-suggestions@5.52.1': - resolution: {integrity: sha512-O6mPtsw3xEfNOe6gWFpYLeAZAIljNa4Hgna3bq15PwyN7nbjTY0wXJFRbzs/0YVf75Br+SbOQUmjKxXYjDiSiQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-search@5.48.1': - resolution: {integrity: sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==} - engines: {node: '>= 14.0.0'} - - '@algolia/client-search@5.52.1': - resolution: {integrity: sha512-gA8oJOV1LnQQkDf91iebNnFInHuW0gRPEgLSOQ7EfipCEjYTHm5swm1DlH9H5RaRw4RrHuzHBegnlzc0MAstcg==} - engines: {node: '>= 14.0.0'} - - '@algolia/ingestion@1.48.1': - resolution: {integrity: sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==} - engines: {node: '>= 14.0.0'} - - '@algolia/ingestion@1.52.1': - resolution: {integrity: sha512-U9zZfc5xIu9wRxZkt+HceJUAD4VKHKbAyLSloJdEyMRmphXeibfrY9cxqIXBcmPeZzGhn3Imb35Dq8l19PkJhw==} - engines: {node: '>= 14.0.0'} - - '@algolia/monitoring@1.48.1': - resolution: {integrity: sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==} - engines: {node: '>= 14.0.0'} - - '@algolia/monitoring@1.52.1': - resolution: {integrity: sha512-a3SGNceHmkQfq77iG8Ka+w1pvwfZa/0lzEIgse30fL0kD+yKnd/dg0dQvSfFPAEt2f21DMcGkDSSeJlO3KdQjQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/recommend@5.48.1': - resolution: {integrity: sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==} - engines: {node: '>= 14.0.0'} - - '@algolia/recommend@5.52.1': - resolution: {integrity: sha512-z98QEguCFDpxb4S/PyrUK1igqF8tPsdbqOUUO6ON91vJ58w+Gwa6ncrI0oNXSFcrkxA5EqPKPQ2A1PBCn08TYQ==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-browser-xhr@5.48.1': - resolution: {integrity: sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-browser-xhr@5.52.1': - resolution: {integrity: sha512-CI7+/0I11QeZM59Uc8whd2or0kqzFVjpaPn9Qpwll/krHcBAxk24WkAQ6WX+IwDVMfpont4YGbKwAmCre3vE8Q==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-fetch@5.48.1': - resolution: {integrity: sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-fetch@5.52.1': - resolution: {integrity: sha512-S6bDuw9byfOvm3T71cgdoZgrgnZq6hpdMLkx52Louh57nUAmvGQESz2aojOynQHjbTiV55smvAFbgn0qT4tJrg==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-node-http@5.48.1': - resolution: {integrity: sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==} - engines: {node: '>= 14.0.0'} - - '@algolia/requester-node-http@5.52.1': - resolution: {integrity: sha512-tqZXM+54rWo4mk5jL5Z/flE11nPmNEdXwFBM5py9DkOmbjeCNemfVd45FyM97XdzfZ0dl9uOJC6PYn1FpkeyQg==} - engines: {node: '>= 14.0.0'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@angular-devkit/architect@0.2102.12': - resolution: {integrity: sha512-w9FSMHYeeHkk0kRSAOCvNqEVyOHqpC1SUf3iN7tDnXBOA0dtc6JYvJU7O4joiwf7wMPZDK8LKc/6eu8/Tx87Fw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@11ty/eleventy@3.1.6": + resolution: + { integrity: sha512-ZlSiR1PLdS2lv7TelBgWAhcvMiLNZkPBlLEb+lh7kGYZ+Mk0bo9qcYgVsewvw9W7Em0RH3wd01h5fAstNDh0zA== } + engines: { node: ">=18" } hasBin: true - '@angular-devkit/build-angular@21.2.12': - resolution: {integrity: sha512-gM1eE1Y9zd7kv/BQ0Hx237W13jp6pOajzXvm5q1TabtHq/NlVoM27et20IWNpO1qOEYVO/eCY1E5X1uoI6CU9A==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.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.12 - '@web/test-runner': ^0.20.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 - tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: '>=5.9 <6.0' - peerDependenciesMeta: - '@angular/core': - optional: true - '@angular/localize': - optional: true - '@angular/platform-browser': - optional: true - '@angular/platform-server': - optional: true - '@angular/service-worker': - 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 - - '@angular-devkit/build-webpack@0.2102.12': - resolution: {integrity: sha512-gYsEKFntBLDE4ovEE/SOsc6HcahKq5Qs/sRfktrNAIpbvjBpwpngQMz23jNSvGhnJ0EzykKoOuK/ErimEgupKg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - webpack: ^5.30.0 - webpack-dev-server: ^5.0.2 + "@11ty/lodash-custom@4.17.21": + resolution: + { integrity: sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw== } + engines: { node: ">=14" } + + "@11ty/posthtml-urls@1.0.3": + resolution: + { integrity: sha512-1YvhnkaNlFnnJic1rBMWmTC2adbuy+JQiBfl1Hecr1Wjjik1pQZmGyk/eC9zKX/FQv52s2Nht1Gi/UwhYqrBeg== } + engines: { node: ">= 6" } + + "@11ty/recursive-copy@4.0.4": + resolution: + { integrity: sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ== } + engines: { node: ">=18" } + + "@achrinza/node-ipc@9.2.10": + resolution: + { integrity: sha512-rCkw57K82y1XA9KwBmuMrupFQr9VOS4Rn77vW2UD2j0+HjlP/npSON9COkUIfocd95B4wv5EpfWMr6lGD4lN3A== } + engines: + { node: 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21 || 22 || 23 || 24 || 25 } + + "@adobe/css-tools@4.3.3": + resolution: + { integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== } + + "@adobe/css-tools@4.5.0": + resolution: + { integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q== } + + "@algolia/abtesting@1.18.0": + resolution: + { integrity: sha512-8siuLG+FIns1AjZ/g2SDVwHz9S+ObacDQISEJvS8XsNei1zl3FXqfqQrBpmrG7ACWCyesXHbicMJtvRbg00FEw== } + engines: { node: ">= 14.0.0" } + + "@algolia/abtesting@1.20.1": + resolution: + { integrity: sha512-ZXOLrNfmAAhBrIPp+9LH9CDRHUqIx2Uf17YRN6GJ2D0wVPHhCwvMgegCUKQz3W78xVdmzEzjawqf93pPBZVMOg== } + engines: { node: ">= 14.0.0" } + + "@algolia/autocomplete-core@1.17.7": + resolution: + { integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== } + + "@algolia/autocomplete-plugin-algolia-insights@1.17.7": + resolution: + { integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== } + peerDependencies: + search-insights: ">= 1 < 3" + + "@algolia/autocomplete-preset-algolia@1.17.7": + resolution: + { integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== } + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + + "@algolia/autocomplete-shared@1.17.7": + resolution: + { integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== } + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + + "@algolia/client-abtesting@5.52.0": + resolution: + { integrity: sha512-wtwPgyPmO7b7sQPVgoK29c1VpfS08DnnJCmxX/oU1pV2DlMRJCzQcLN7JSloYpodyKHwM8+9wOzlAM0co3TDmA== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-abtesting@5.54.1": + resolution: + { integrity: sha512-xE6nz1DnpBlkp8Uq+PZdnuU29yhlfrgOIdb2M4+AxDOyDKpK88THFj80x9ZlPLLrFD1iQAt2HAwB5ZeTd4Ea+w== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-analytics@5.52.0": + resolution: + { integrity: sha512-9KY36bRl4AH7RjqSeDDOKnjsz4IxQFBEOB8/fWmEbdQe+Isbs5jGzVJu9NEPQ1Tgwxlf8Uf07Swj3jZyMNUZ2g== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-analytics@5.54.1": + resolution: + { integrity: sha512-fcbniRV8wWJPX3IxGsbVs8JLO+Z5fXqbJOcWBd3duXYm8w0G/LiuFh9PX6ke0weNZNqLZMdQf+we/cR0ANHoOA== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-common@5.52.0": + resolution: + { integrity: sha512-3a/qM3dzJqqfTx7Yrw7uGQ98I3Q0rDfb4Vkv0wEzko96l7YQMxfBVz/VbLq2N+c59GweYv6Vhp8mPeqnWJSITw== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-common@5.54.1": + resolution: + { integrity: sha512-lc7N5SAyNaP30ZzAHJxSSsrLU1G/xztGdOArtGfJBEJ3zgNVpw/epLb1f5oA460VCA8BWDzRjcvd0ljekctItQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-insights@5.52.0": + resolution: + { integrity: sha512-Rki7ACbMcvbQW0BuM84x9dkGHY47ABmv4jU6tYssat2k02p3mIUms2YOLUAMeknhmnFsj6lb6ZzOXdMWMyc1sA== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-insights@5.54.1": + resolution: + { integrity: sha512-GfA5h/GOoEnigQSGmxs8+OWG+NH2VCaxcYIMoswcgjA77W5gQVG1KOvsoEB6k5Z85J9+lgvuYkmEgieFJIjuhg== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-personalization@5.52.0": + resolution: + { integrity: sha512-96s4Uzc3kk+/f4jJXIVVGWP5XlngOGNQ1x6hW9AT59pOixHlOs5tqJg+ZUS/GQ6h/iYP0ceQcmxDQeLyCLTaDQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-personalization@5.54.1": + resolution: + { integrity: sha512-OYqOdhDivnWDAygdgobm+jvHvPQNYzdgQcfN3c11du/lRVVrzrpYQha85auVrvtQ6Q9Wgp3Q2o+Htti7eh0Tig== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-query-suggestions@5.52.0": + resolution: + { integrity: sha512-lqeycNpSPe5Qa0OUWpejVvYQjQWV5nQuLT0a4aq7XzRAvCxprV/6Lf841EygdD2nrFnuS58ok7Au1uOtXzpnkg== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-query-suggestions@5.54.1": + resolution: + { integrity: sha512-d8wpaEfKE1c8/b71v+o5QoPcBZ+MzRLB19CC+j3d8uzCKMAi+8iGv9S89I+qelfHP5sfmkeXSyoAWUlEFzaObA== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-search@5.52.0": + resolution: + { integrity: sha512-ly1wETVGRo30cx61O7fetESN+ElL9c9K+bD/AVgnT1ar4c6v+/Yqjrhdtu6Fm4D0s4NZP081Isf6tunH1wUXHg== } + engines: { node: ">= 14.0.0" } + + "@algolia/client-search@5.54.1": + resolution: + { integrity: sha512-oJdxuIawQpCuZUdQVkJRcv/IRRrz1a6WQBaiXx2F/xkUlrHhpsTkiuVje5hKl5de7asR9I4YuJ/Rm0MmXJt5Fw== } + engines: { node: ">= 14.0.0" } + + "@algolia/ingestion@1.52.0": + resolution: + { integrity: sha512-U4EeTvgmluRjj39ykZSAd5X+a6LD5m7/mcOWDmB7hqm1R6QY0yT8jLxpNVEjYhzgEN5hcDGW6X67EWQY8KiYGQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/ingestion@1.54.1": + resolution: + { integrity: sha512-yPyzbcTJ+yEr0LayhqZzmJnx6mVEu9HHIbC4t2RIfaC9FL5Zs9QoKmfcvdQumTXnW/MxPoiKASsCbgiRQGdHdQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/monitoring@1.52.0": + resolution: + { integrity: sha512-FCPnDcILfpTE94u7BVlV4DmnSV5wE3+j25EEF+3dYPrVzkVCSoAHs318oWDGxnxsAgiL4HpL12Jc4XHmw9shpA== } + engines: { node: ">= 14.0.0" } + + "@algolia/monitoring@1.54.1": + resolution: + { integrity: sha512-lxTECUGxJMb5gYJyKghsKTPu+VkrGCrvRMq4jWVp/fCI/Egj3ppB9RJH69O2+CH0k3oHDYed6o39d7FGYhL5OQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/recommend@5.52.0": + resolution: + { integrity: sha512-br3DO7n4N8CXwTRbZS0MnB4WQ9YHfNjCwkCEzVR/wek/qNTDQKDb0nROmkFaNZ8ucUqUVKZi074dbwMwRDlK8Q== } + engines: { node: ">= 14.0.0" } + + "@algolia/recommend@5.54.1": + resolution: + { integrity: sha512-jmuKjXR+Ktb/hDnGrOwhmGn/1/PRuRdhBqwOV15q+wakSmmdQqavK/KLuLgMih4BtEuT7QsPg2Lbo8EMtOMoOg== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-browser-xhr@5.52.0": + resolution: + { integrity: sha512-b0T/Ca2c9KyEslKsVrGZvbe1UrrKKSdfXhBZ2pbpKahFUzJfziRZ0urbOm7V65O0tO/jwU+Lo/+bIiiyhzGt8w== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-browser-xhr@5.54.1": + resolution: + { integrity: sha512-PlbI8tNAG1XN5/dM7ciCe9pRuNhA/qnDg6U6r04kdEg8z6poY+jV2pdgCZrtCEJ8cOEcSLsRdCG8iK158iE7zw== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-fetch@5.52.0": + resolution: + { integrity: sha512-ozBT8J/mtD4H4IAojw8QPirlcL2gHrI1BGuZ4/ZXXO/rTE1yQ4VIPJj4mTTbwo4FbkS1MoJsD/DsrqLzhnc4/g== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-fetch@5.54.1": + resolution: + { integrity: sha512-TtYAKGxevDhM9gyXoNp+G0ysDsDV7qvkkQzWloG2GwqSJQy7r7+kE5xP7wV224XuJpsqoEM/gxk4yi2wHvTShQ== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-node-http@5.52.0": + resolution: + { integrity: sha512-gyyWcLD22tnabmoit4iukCXuoRc5HYJuUjPSEa8a0D/f/NlRafpWi52AlAaa4Uu/rsl7saHsJFTNjTptWbu2+A== } + engines: { node: ">= 14.0.0" } + + "@algolia/requester-node-http@5.54.1": + resolution: + { integrity: sha512-FwSyDcOZgzs62qBhO2BBmXarp163iKA6IjKcpmuTOZmEMtukj6sVNC9BF2A05hG8b1fTKv5c1VvIfjtUsUqSeA== } + engines: { node: ">= 14.0.0" } + + "@ampproject/remapping@2.3.0": + resolution: + { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== } + engines: { node: ">=6.0.0" } + + "@angular-devkit/architect@0.2200.1": + resolution: + { integrity: sha512-Q3DfpgEIiHtG7uSUO8Tsm35rOeUbJfuxM9pi7cCyC8DvC/z1yNYm7/xEitlEYPzJmSLmks3eqlsaGnYhh0VLVg== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } + hasBin: true - '@angular-devkit/core@20.3.26': - resolution: {integrity: sha512-xzxI3OK+P1a/xLPqLrrhGHghifmv7oP8U3k7A/lX3fnYNYkqJzzyhqXsjWxs7U4sv3p3BvygqAJBg1oGFPiJBw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@angular-devkit/core@20.3.28": + resolution: + { integrity: sha512-WwC7lm+Im3YVTugPLjOoNgjoYlAHzsVLY60jB9euyq5BdF8xB0L0LyhYHVWjEfkdddAiKPrdbLaRu6dMBPSc/w== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } peerDependencies: chokidar: ^4.0.0 peerDependenciesMeta: chokidar: optional: true - '@angular-devkit/core@21.2.12': - resolution: {integrity: sha512-nXms0jVWwHOJK+z6vHvhw7HYFBelxh2gEnkij0OQMABXZN5hoUlTD0DDP1lYR7hQNi8Yb2Ar0UN9ihyUFVM5Kg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@angular-devkit/core@22.0.1": + resolution: + { integrity: sha512-77/WsCAbqGkumDfm/kkw2mFh/42DNF0hB02TvivlfiSC/KfK9DsHg7sKvTlNcuY14ZT/3iHhojLyNBc2HytuvQ== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } peerDependencies: chokidar: ^5.0.0 peerDependenciesMeta: chokidar: optional: true - '@angular-devkit/schematics@20.3.26': - resolution: {integrity: sha512-wnWwxhFSXTUL6jrSgvySOr4E/Zx+Flv+4HtpZTaiw+1nf6ekpM4oZWitE8WautT5qanzjXiYPOF9N/cchG5yHQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@angular-devkit/schematics@20.3.28": + resolution: + { integrity: sha512-12Jeu/0fboJXHRBy7Uo8/ZBVCv4DXZPwtY+RAIYaraHWd0kGk13S9DPG7VMFk+GK1J0mIuDDNIfw33f64L9ddQ== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } - '@angular-devkit/schematics@21.2.12': - resolution: {integrity: sha512-29xe6C9nwHejV9zBcu0js7NmzLWuCFzBGBTmL6eD4JN1NcxEZ/nO1JuaGINjPjzb/UDXPZIqEwHbnFNcGS5v1A==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@angular-devkit/schematics@22.0.1": + resolution: + { integrity: sha512-GWou5meX3vAvqQEkox7xYMT9tIrYBVl0StbP7rGH5yMrzngvi6eyikMiUYnmMvoEoBK9gFNnXaAKeeu2aWvb3Q== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } - '@angular-eslint/builder@21.3.1': - resolution: {integrity: sha512-1f1Lyp5e7OH6txiV224HaY3G1uRCj91OSKq7hT2Vw9NRw6zWFc1anBpDeLVjpL9ptUxzUGIQR5jEV54hOPayoQ==} + "@angular-eslint/builder@22.0.0": + resolution: + { integrity: sha512-T2vWQYUhJs6iUlgocHV12OgoxbmN63f17a+tgW+3sYrKN0KAB3xuHsPOoYpRYoWqkVVC44HD441Ju4IDvo8vKg== } peerDependencies: - '@angular/cli': '>= 21.0.0 < 22.0.0' - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '*' - - '@angular-eslint/bundled-angular-compiler@21.3.1': - resolution: {integrity: sha512-jjbnJPUXQeQBJ8RM+ahlbt4GH2emVN8JvG3AhFbPci1FrqXi9cOOfkbwLmvpoyTli4LF8gy7g4ctFqnlRgqryw==} - - '@angular-eslint/bundled-angular-compiler@21.4.0': - resolution: {integrity: sha512-/3H4BPbQ1BHJkkrUsfusZtmHc+qiFWBBZ9UDPWah4xZMjflexOK9U4GYeH7nMjcuyqFnIlMMeJJNwNLGt/hmdg==} + "@angular/cli": ">= 22.0.0 < 23.0.0" + eslint: ^9.0.0 || ^10.0.0 + typescript: "*" - '@angular-eslint/eslint-plugin-template@21.4.0': - resolution: {integrity: sha512-sJEHx2WYnvOgPpzP1eHnUdRS06zgKmRxbiIR0JiCcaSen5iv1HlsMieXy//FS9TtNW+abHOy4UtDuGuSPflPFA==} - 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 - typescript: '*' + "@angular-eslint/bundled-angular-compiler@22.0.0": + resolution: + { integrity: sha512-rv15vGDpGW8zZFaLdhQ+iIO1f0bZds/xvuxoX277hFisXp5Kt6FumJNNIb4g/qxq3xsY46a7fD6R7KvGY3smHg== } - '@angular-eslint/eslint-plugin@21.3.1': - resolution: {integrity: sha512-08NNTxwawRLTWPLl8dg1BnXMwimx93y4wMEwx2aWQpJbIt4pmNvwJzd+NgoD/Ag2VdLS/gOMadhJH5fgaYKsPQ==} + "@angular-eslint/eslint-plugin-template@22.0.0": + resolution: + { integrity: sha512-y6XL5HJ8C31NpBvkVHpU3bWc+Rk9g1zRtHrs39omhuT29eEUcS3zu47HMFV6tf8rHOI97B2Mstg6qYS5XL9ATg== } peerDependencies: - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '*' + "@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: "*" - '@angular-eslint/template-parser@21.3.1': - resolution: {integrity: sha512-moERVCTekQKOvR8RMuEOtWSO3VS1qrzA3keI1dPto/JVB8Nqp9w3R5ZpEoXHzh4zgEryosxmPgdi6UczJe2ouQ==} + "@angular-eslint/eslint-plugin@22.0.0": + resolution: + { integrity: sha512-mKLScPZhqG64ic0KIQoxqSqCdkPwtEZuTOuunvc9lYTw05MJSHRUM2yVFODlCGq97c6BN1F6KBk2I+a+KFnr1g== } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '*' + "@typescript-eslint/utils": ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 + typescript: "*" - '@angular-eslint/utils@21.3.1': - resolution: {integrity: sha512-Q3SGA1/36phZhmsp1mYrKzp/jcmqofRr861MYn46FaWIKSYXBYRzl+H3FIJKBu5CE36Bggu6hbNpwGPuUp+MCg==} + "@angular-eslint/template-parser@22.0.0": + resolution: + { integrity: sha512-jU5MKQ24bBB4J99gSSexmUrLm2LvTJZCuCHhNTQ1LavWX4e1lrIxhm+6pJILOm6Cixf8jyNXnHMty6nljX8J+Q== } peerDependencies: - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '*' + eslint: ^9.0.0 || ^10.0.0 + typescript: "*" - '@angular-eslint/utils@21.4.0': - resolution: {integrity: sha512-7pi+Ga7QmdH5Ig/diau6fR5L4yubgKr9TOjdCg7OeuE/zo0O3osTCNT6JOodzS/iQM1kSCJFDoIBKFeUOttiNw==} + "@angular-eslint/utils@22.0.0": + resolution: + { integrity: sha512-VFodMojghnPYm+B3U+HRYrqebPMj8NyobNjVzDdY8V5XIBW+4ivOSEINIz81G48rmm/NZKwj56+bJ88bVX4KIw== } peerDependencies: - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '*' - - '@angular/animations@21.2.14': - resolution: {integrity: sha512-9WLnsJE0xqtd1rVtHMvsAUxFy3OdPks4bdmUIqyw23X/je7ytUALAGWNadffcZBwRpa1A6TUnLr9X4+Draz3kw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@angular/core': 21.2.14 - - '@angular/build@21.2.12': - resolution: {integrity: sha512-zYfo21RuldDWXnshuPfWYtmh5ltlO9+XFHpNObdIInQTFxKD6grLNVNOblFFpi+oIIm4Km+CGSXvBHs/aH0ufA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - 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.12 + "@typescript-eslint/utils": ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 + typescript: "*" + + "@angular/animations@22.0.1": + resolution: + { integrity: sha512-5Ydov95+aAmEdzSaiIJdKTOuGEqI+KWRnQOYJVSrjfKyLTeh3hLCW9amoicF8CsvGh7hSnKf4adbNUycG8wfKA== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } + deprecated: "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations." + peerDependencies: + "@angular/core": 22.0.1 + + "@angular/build@22.0.1": + resolution: + { integrity: sha512-05oMhBuRy4qycmuhrBpz3y/OxaW0qeguKj7ArUdTFOJvi6Y1kthzcg6bF1cPPVz0TMGnoTwMf9OCHjoT2QHAKA== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } + peerDependencies: + "@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.1 + 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 peerDependenciesMeta: - '@angular/core': + "@angular/core": + optional: true + "@angular/localize": optional: true - '@angular/localize': + "@angular/platform-browser": optional: true - '@angular/platform-browser': + "@angular/platform-server": optional: true - '@angular/platform-server': + "@angular/service-worker": optional: true - '@angular/service-worker': + "@angular/ssr": optional: true - '@angular/ssr': + istanbul-lib-instrument: optional: true karma: optional: true @@ -14625,1104 +14676,1835 @@ packages: vitest: optional: true - '@angular/cli@21.2.12': - resolution: {integrity: sha512-oLEL1C1fI39b1eQo5f2cyQhQfE+QMv7dm8z2MmxbP7YR7jAdQPVfGU8CXECR5g7mrYi9WgvIRKB+9Oeq2aH6Jw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + "@angular/cli@22.0.1": + resolution: + { integrity: sha512-E1b3yroIDkqKpRJ5M/ihQkmgrF+gTlrntLbLWkSE5XReMSGtkog16I3hewI1zV2K4TMdiDZ1lzJvkJ4CgG3wjA== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } hasBin: true - '@angular/common@21.2.14': - resolution: {integrity: sha512-J6K7cE7uKOKmg4+sxLeGfsmaYDjP5l1XCiMMI0WPT0t68uxLk8g3MzV5Trqfb6ZnRxWcfp9c4c+XxAvMBB7ymA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/common@22.0.1": + resolution: + { integrity: sha512-EczDHu+ziop3x2CSh9+hdkegTSjblYvuH0y4aZ8biqh+pGFRni24Qu9kZiV5VrBprIJG5NeiCEA2rT6fJ7w/Nw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } peerDependencies: - '@angular/core': 21.2.14 + "@angular/core": 22.0.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@21.2.14': - resolution: {integrity: sha512-h+WQfPKFxaDfDhMqUUdOQ1TsDMccav8kLFERmKTRfD4MNOczSMpOMyeXJHCL0Rq4I8WDQvaBJGMG7DXRDefSog==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/compiler-cli@22.0.1": + resolution: + { integrity: sha512-fo/tXV3sqw92/qz898ejru6G4wMvstd9gBjb0HRDJv5rR1XnSWHVKJuhrgrHd6tVkNdc8y6odBB9GKecdqqnGg== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } hasBin: true peerDependencies: - '@angular/compiler': 21.2.14 - typescript: '>=5.9 <6.1' + "@angular/compiler": 22.0.1 + typescript: ">=6.0 <6.1" peerDependenciesMeta: typescript: optional: true - '@angular/compiler@21.2.14': - resolution: {integrity: sha512-8mqgwRYfn2Z1vg/5YVt60dDBattnZL45nNJd2vTMwAiDTzhWhgKgRWKOeVL0aj2JqHeHiwuIlrLnz46acJMulQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/compiler@22.0.1": + resolution: + { integrity: sha512-J8lcmYXJCGZn1+CHx3LSgq6rtS5Efc1/Nafcd/v8VZN2NrsFIkIlTbnAIUxcwHwYxzZs4X5CGfX+5ZIB4X9rUw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } - '@angular/core@21.2.14': - resolution: {integrity: sha512-Z1Ivjh7L2lT//8LA7vQ3tj7Rg6wl2XRA5kPSAukgn8u0Yu0XxG8NE8KG0Eypb3v9CEcbwATwpgnxzbJFZ8TFcw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/core@22.0.1": + resolution: + { integrity: sha512-Sk0fz+LR2q6QhJJtCV9ElN1GzoEX6lOB4difMqpOC0yRh/ue+9iKd+x3RRiL4p+dnAiRLQYAKqsXkYlqUm2SMg== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } peerDependencies: - '@angular/compiler': 21.2.14 + "@angular/compiler": 22.0.1 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: - '@angular/compiler': + "@angular/compiler": optional: true zone.js: optional: true - '@angular/forms@21.2.14': - resolution: {integrity: sha512-HQYIybyMt0CrI31rW6vXbiDsSM2DDtTcOVeT/nWDRNCoqBrREDg8rVsm2Y+fUMsiQVJNa6dCXPwvYhjzJ4r7ug==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/forms@22.0.1": + resolution: + { integrity: sha512-9an74j0DtSeY4XMp5crkAdlxmhdRNq6cKlN9dxGch6udEr2SjHDP7hYoNXJ6y5yna5FEa/t+1SltWF0OVPIVxw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } peerDependencies: - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 + "@angular/common": 22.0.1 + "@angular/core": 22.0.1 + "@angular/platform-browser": 22.0.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/language-service@21.2.14': - resolution: {integrity: sha512-weSWgdToOIfPUTXoMDG/MHnL2qCx/vZ8/96K38ygm8TIItDPaBXidolwQctXc1xtdm1YrgJpOSayzGwC83o3jQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@angular/platform-browser-dynamic@21.2.14': - resolution: {integrity: sha512-m5U4zX8JFnxTAIGpsBXIAyefSmYqdORY/OfHC0aMmZovuFCbXXIYqYRQDBB7+YVNpSDSHllCrKEZFu/CC6dq3g==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@angular/common': 21.2.14 - '@angular/compiler': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 - - '@angular/platform-browser@21.2.14': - resolution: {integrity: sha512-34tBwxh86yN2YifBDhCesm6N+nn9WcbuXjRwfo0mTme15OZ/zt56yw7v1mcK3UFLegIIALtsIgpXXrPWWQoKkA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@angular/animations': 21.2.14 - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 + "@angular/language-service@22.0.1": + resolution: + { integrity: sha512-qbHtMARISHxLgGmQyMyLBRGA7IUWbTyjpnWysJAOoNiAYOSkIGTTTTLi5Pu6ifuSfG5qdovNxiAzCeEH+xrXIw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } + + "@angular/platform-browser-dynamic@22.0.1": + resolution: + { integrity: sha512-Z0h2gVNxPoJqzon7OlOhfScuMgPyW4qbJZAZCBMRYC8se+7YP1w81dw5dmqyeqf66pD+NwhkJXL1hOrYKK1m2g== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } + peerDependencies: + "@angular/common": 22.0.1 + "@angular/compiler": 22.0.1 + "@angular/core": 22.0.1 + "@angular/platform-browser": 22.0.1 + + "@angular/platform-browser@22.0.1": + resolution: + { integrity: sha512-wbj/ddrMIOHKrONcFlDmHfJKUZq4dX8pzcxsLFTQ6sppUKtzWMrkxtCVkSPJLEzs6OG3OupRrc1yHbL/V+ffsw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } + peerDependencies: + "@angular/animations": 22.0.1 + "@angular/common": 22.0.1 + "@angular/core": 22.0.1 peerDependenciesMeta: - '@angular/animations': + "@angular/animations": optional: true - '@angular/router@21.2.14': - resolution: {integrity: sha512-Yo3LdgcqkfMu2/Ycl8o/4QjCBqZhtA+a7B8JVdW5cWdrpFTxKCOrzm+YRUMuIFmH5nzSv9oGnUuz64uk1+7r5Q==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@angular/router@22.0.1": + resolution: + { integrity: sha512-NHMkRAgBMKrE7g5lSe1H/espe0NX8axVBy6TtzEh/l7yxTnZiqUIjmRnIDb+LFGPRQVgDu3FxR/fvwQaosOn0w== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } peerDependencies: - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 + "@angular/common": 22.0.1 + "@angular/core": 22.0.1 + "@angular/platform-browser": 22.0.1 rxjs: ^6.5.3 || ^7.4.0 - '@apideck/better-ajv-errors@0.3.7': - resolution: {integrity: sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==} - engines: {node: '>=10'} + "@apideck/better-ajv-errors@0.3.7": + resolution: + { integrity: sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw== } + engines: { node: ">=10" } peerDependencies: - ajv: '>=8' + ajv: ">=8" - '@ariakit/components@0.1.1': - resolution: {integrity: sha512-AiJ//FpXGQi8NauMhUTRKtXjEx1mbFMK1gYltFSOpRRmBaz/VU9GzMZ0cto1hp/tG305Hi1jxc5NpCtYEaDuBQ==} + "@ariakit/components@0.1.2": + resolution: + { integrity: sha512-tvh2P0x1cJnoPXnmDEJwdRk3z7x6cTB8ArctcZdAUXlRg9tuwW/rJoBFJMzD5qMI9CDDlQ3Zctx58HvENw4BYw== } - '@ariakit/react-components@0.1.1': - resolution: {integrity: sha512-k+YjepGIf092wMkUGRFlhGo9kMzcSnmgvl3CCo6o7rTwEmM1VmLX0yAnTxfIET3CkC5JYzi5hIaVEPgDNj5Hmg==} + "@ariakit/react-components@0.1.2": + resolution: + { integrity: sha512-SM+SPMAVlOZmGAfWNBza+0k9y4mkA5/dJhDoOyhE96cbNARy665uLdwowSJl1JGuFfcZzuzAwGon7f/rYeyfkQ== } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@ariakit/react-store@0.1.1': - resolution: {integrity: sha512-7zkDWpz/LFdwCCotKwZ6a17vtg3tKqw/xTP7KhuT5/CqzvFaWDR8yWl+p4sj3eUZicrJbJEsN8rLQAzZWKMseA==} + "@ariakit/react-store@0.1.2": + resolution: + { integrity: sha512-1r1Gn0tqhnOS0LFvHNGzn5/8C5aOANO5vb0Gxh94oR/be4zwCSE2zfQjOjRfpL+BBDhOcProME2+G6UslEJxbg== } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@ariakit/react-utils@0.1.1': - resolution: {integrity: sha512-rnRlbWx7qlsrHxFggBgnfeBK14WEmKTLnSmH4MwWwqGC5ufiKWe+XfPKSj0wb+jCDw+l1FS6wAM7g+rmSmxXVg==} + "@ariakit/react-utils@0.1.2": + resolution: + { integrity: sha512-Rnl6D1542Mqu80xK++oUv1JXS0PtNmKXd9nkdud5nyvySiBDTrmPqRW44/D+5GbuZrboreQuY3tPYwKL7a7onQ== } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@ariakit/react@0.4.28': - resolution: {integrity: sha512-KHCSAbL6BaDCKrVakLR1TF+18wdmNIaNcYm/bsInLMiJEt6DY6Q/U3FxBHKmKCuPyEZDuqTn88YAIov+1cTF3w==} + "@ariakit/react@0.4.29": + resolution: + { integrity: sha512-SLXlsddWHSwfUol4Yi0zULlalNWjzWjpS3zg7B7aaPd64saONQ5ktWf9KMxqBklcpjMLeF2dB9BAHAvpPVdCIQ== } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@ariakit/store@0.1.1': - resolution: {integrity: sha512-bq03zWDo44oAKipWQ678SN87fNcL63LCmCRJh3dh6cZuKyA120WgXIRBmCQYUg+eKLVpheFiizQPB8tcVXppyg==} - - '@ariakit/utils@0.1.1': - resolution: {integrity: sha512-uXbQPOoVjzy6l+MUfmyzY1GiN1ciC4IsQMoGTeW1dUT6URpU5ULDB3dvpNDkrbh/gcxdckK3kmQDtg7uN8klkw==} - - '@asamuzakjp/css-color@3.2.0': - resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} - - '@asamuzakjp/css-color@5.1.11': - resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@asamuzakjp/dom-selector@7.1.1': - resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@asamuzakjp/generational-cache@1.0.1': - resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@asamuzakjp/nwsapi@2.3.9': - resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - - '@ast-grep/napi-darwin-arm64@0.36.3': - resolution: {integrity: sha512-uM0Hrm5gcHqaBL64ktmPBFMTorTlPKWsUfi0E2Cg09GJfeYWvZmicCqgd7qVtjURmQvFQdb4JSqHIkJvws6Uqw==} - engines: {node: '>= 10'} + "@ariakit/store@0.1.2": + resolution: + { integrity: sha512-SS7bV4+a+1q9M9i0WV6DD4P/ypRKlCvII8soo2UMe1yuaxZA/Fc0htHe+EZwjJ6TMLjHfHh2TDSnXyrjC7QImA== } + + "@ariakit/utils@0.1.2": + resolution: + { integrity: sha512-lBJhtBWpKjIck/9i7G8cahvaUgLsyGklI/Pjv+VtY9KTzyuzX5GpRbbLKMS/e1qLnFPS4C3CybYB70b1bVcAkw== } + + "@asamuzakjp/css-color@3.2.0": + resolution: + { integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== } + + "@asamuzakjp/css-color@5.1.11": + resolution: + { integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } + + "@asamuzakjp/dom-selector@7.1.1": + resolution: + { integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } + + "@asamuzakjp/generational-cache@1.0.1": + resolution: + { integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } + + "@asamuzakjp/nwsapi@2.3.9": + resolution: + { integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q== } + + "@ast-grep/napi-darwin-arm64@0.36.3": + resolution: + { integrity: sha512-uM0Hrm5gcHqaBL64ktmPBFMTorTlPKWsUfi0E2Cg09GJfeYWvZmicCqgd7qVtjURmQvFQdb4JSqHIkJvws6Uqw== } + engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - '@ast-grep/napi-darwin-x64@0.36.3': - resolution: {integrity: sha512-wEMeQw8lRL66puG2m8m0kDRQDtubygj59HA/cmut2V5SPx/13BN3wuEk6JPv97gqGUCUGhG2+5Z6UZ/Ll2q01Q==} - engines: {node: '>= 10'} + "@ast-grep/napi-darwin-x64@0.36.3": + resolution: + { integrity: sha512-wEMeQw8lRL66puG2m8m0kDRQDtubygj59HA/cmut2V5SPx/13BN3wuEk6JPv97gqGUCUGhG2+5Z6UZ/Ll2q01Q== } + engines: { node: ">= 10" } cpu: [x64] os: [darwin] - '@ast-grep/napi-linux-arm64-gnu@0.36.3': - resolution: {integrity: sha512-sMsTMaUjW7SM8KPbLviCSBuM4zgJcwvie1yZI92HKSlFzC7ABe7X7UvyUREB+JwqccDVEL5yOJAjqB8eFSCizw==} - engines: {node: '>= 10'} + "@ast-grep/napi-linux-arm64-gnu@0.36.3": + resolution: + { integrity: sha512-sMsTMaUjW7SM8KPbLviCSBuM4zgJcwvie1yZI92HKSlFzC7ABe7X7UvyUREB+JwqccDVEL5yOJAjqB8eFSCizw== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-arm64-musl@0.36.3': - resolution: {integrity: sha512-2XRmNYuovZu0Pa4J3or4PKMkQZnXXfpVcCrPwWB/2ytX7XUo+TWLgYE8rPVnJOyw5zujkveFb0XUrro9mQgLzw==} - engines: {node: '>= 10'} + "@ast-grep/napi-linux-arm64-musl@0.36.3": + resolution: + { integrity: sha512-2XRmNYuovZu0Pa4J3or4PKMkQZnXXfpVcCrPwWB/2ytX7XUo+TWLgYE8rPVnJOyw5zujkveFb0XUrro9mQgLzw== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [musl] - '@ast-grep/napi-linux-x64-gnu@0.36.3': - resolution: {integrity: sha512-mTwPRbBi1feGqR2b5TWC5gkEDeRi8wfk4euF5sKNihfMGHj6pdfINHQ3QvLVO4C7z0r/wgWLAvditFA0b997dg==} - engines: {node: '>= 10'} + "@ast-grep/napi-linux-x64-gnu@0.36.3": + resolution: + { integrity: sha512-mTwPRbBi1feGqR2b5TWC5gkEDeRi8wfk4euF5sKNihfMGHj6pdfINHQ3QvLVO4C7z0r/wgWLAvditFA0b997dg== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-x64-musl@0.36.3': - resolution: {integrity: sha512-tMGPrT+zuZzJK6n1cD1kOii7HYZE9gUXjwtVNE/uZqXEaWP6lmkfoTMbLjnxEe74VQbmaoDGh1/cjrDBnqC6Uw==} - engines: {node: '>= 10'} + "@ast-grep/napi-linux-x64-musl@0.36.3": + resolution: + { integrity: sha512-tMGPrT+zuZzJK6n1cD1kOii7HYZE9gUXjwtVNE/uZqXEaWP6lmkfoTMbLjnxEe74VQbmaoDGh1/cjrDBnqC6Uw== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [musl] - '@ast-grep/napi-win32-arm64-msvc@0.36.3': - resolution: {integrity: sha512-7pFyr9+dyV+4cBJJ1I57gg6PDXP3GBQeVAsEEitzEruxx4Hb4cyNro54gGtlsS+6ty+N0t004tPQxYO2VrsPIg==} - engines: {node: '>= 10'} + "@ast-grep/napi-win32-arm64-msvc@0.36.3": + resolution: + { integrity: sha512-7pFyr9+dyV+4cBJJ1I57gg6PDXP3GBQeVAsEEitzEruxx4Hb4cyNro54gGtlsS+6ty+N0t004tPQxYO2VrsPIg== } + engines: { node: ">= 10" } cpu: [arm64] os: [win32] - '@ast-grep/napi-win32-ia32-msvc@0.36.3': - resolution: {integrity: sha512-MPAgccH9VscRaFuEBMzDGPS+3c4cKNVGIVJ7WSNa1nZtLQ0eFEaPJ7pyDnCezgVSxfNFVYBvKyyF/vcm7Qc9+A==} - engines: {node: '>= 10'} + "@ast-grep/napi-win32-ia32-msvc@0.36.3": + resolution: + { integrity: sha512-MPAgccH9VscRaFuEBMzDGPS+3c4cKNVGIVJ7WSNa1nZtLQ0eFEaPJ7pyDnCezgVSxfNFVYBvKyyF/vcm7Qc9+A== } + engines: { node: ">= 10" } cpu: [ia32] os: [win32] - '@ast-grep/napi-win32-x64-msvc@0.36.3': - resolution: {integrity: sha512-TIVtuSbXhty9kaSEfr4ULWx5PAuUeGgUkFaR60lmOs7sGTWgpig+suwKfTmevoAblFknCW/aMHOwziwJoUZA6A==} - engines: {node: '>= 10'} + "@ast-grep/napi-win32-x64-msvc@0.36.3": + resolution: + { integrity: sha512-TIVtuSbXhty9kaSEfr4ULWx5PAuUeGgUkFaR60lmOs7sGTWgpig+suwKfTmevoAblFknCW/aMHOwziwJoUZA6A== } + engines: { node: ">= 10" } cpu: [x64] os: [win32] - '@ast-grep/napi@0.36.3': - resolution: {integrity: sha512-ExypohE8L7FvKBHxu7UpwcV9XVfyS+AqNZKyKIfxYwJyD9l7Gw6pmMYd7J2uopJsPEIUf44/emEFds6nFUx/dw==} - engines: {node: '>= 10'} + "@ast-grep/napi@0.36.3": + resolution: + { integrity: sha512-ExypohE8L7FvKBHxu7UpwcV9XVfyS+AqNZKyKIfxYwJyD9l7Gw6pmMYd7J2uopJsPEIUf44/emEFds6nFUx/dw== } + engines: { node: ">= 10" } - '@astrojs/check@0.9.9': - resolution: {integrity: sha512-A5UW8uIuErLWEoRQvzgXpO1gTjUFtK8r7nU2Z7GewAMxUb7bPvpk11qaKKgxqXlHJWlAvaaxy+Xg28A6bmQ1Tg==} + "@astrojs/check@0.9.9": + resolution: + { integrity: sha512-A5UW8uIuErLWEoRQvzgXpO1gTjUFtK8r7nU2Z7GewAMxUb7bPvpk11qaKKgxqXlHJWlAvaaxy+Xg28A6bmQ1Tg== } hasBin: true peerDependencies: typescript: ^5.0.0 || ^6.0.0 - '@astrojs/compiler@2.13.1': - resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} + "@astrojs/compiler@2.13.1": + resolution: + { integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg== } - '@astrojs/compiler@4.0.0': - resolution: {integrity: sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA==} + "@astrojs/compiler@4.0.0": + resolution: + { integrity: sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA== } - '@astrojs/internal-helpers@0.9.1': - resolution: {integrity: sha512-1pWuARqYom/TzuU3+0ZugsTrKlUydWKuULmDqSMTuonY+9IRDUEGKX/8PXQ1nBxRq3w85uGtd9q9SXfqEldMIQ==} + "@astrojs/internal-helpers@0.10.0": + resolution: + { integrity: sha512-Ry2R3VPeIN4uPCSA4xQc+e+vsJXkalKpEbDc07hV+a/o5Bs2N/s/uDcPJH/05L19DKh9tAy7e6JM3YZ6Cxfezw== } - '@astrojs/language-server@2.16.9': - resolution: {integrity: sha512-L9kddTg+ZSO3X0Pwfx0ZPO+Z+eSSq0/39jXRyIkHzcBICzusdn2T464R4P6K0WcDZ6pMkLlFpuGS73u1pOnMSw==} + "@astrojs/language-server@2.16.10": + resolution: + { integrity: sha512-87VQ/5GSdHlRnUA+hGuerYyIGAj+9RbZmATyuKLEUePinUXhQ5YkRnRrHhOD9sSi5JOErLjrLkHnfZFEvGrV8w== } hasBin: true peerDependencies: prettier: ^3.0.0 - prettier-plugin-astro: '>=0.11.0' + prettier-plugin-astro: ">=0.11.0" peerDependenciesMeta: prettier: optional: true prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@7.1.2': - resolution: {integrity: sha512-caXZ4Dc2St2dW8luEg22GlP0gupLdztCTQE4EzZOxW1pqWXz9mbeJEuHUkgDYcKWW8tjIHkydYDhWLVoxJ327Q==} + "@astrojs/markdown-remark@7.2.0": + resolution: + { integrity: sha512-+YxmVQu1Bd+MFfSzjq1rOJvD9+nIOJzz5YIIhdIH01RrxRkKbyKoEgyIqP3yv51MhzMDgd79QaPv+kCVPT8vHw== } + + "@astrojs/prism@4.0.2": + resolution: + { integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA== } + engines: { node: ">=22.12.0" } + + "@astrojs/telemetry@3.3.2": + resolution: + { integrity: sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ== } + engines: { node: 18.20.8 || ^20.3.0 || >=22.0.0 } + + "@astrojs/yaml2ts@0.2.4": + resolution: + { integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A== } + + "@augment-vir/assert@31.73.1": + resolution: + { integrity: sha512-m+Q79DJPlw/gHTjvE7bUHoYip9iV9FTEruQvCo/hT4SEGGpDsUeBdq5TipHz0LVFShE4ipp8DsZyy8d/kaKG5A== } + engines: { node: ">=22" } + + "@augment-vir/common@31.73.1": + resolution: + { integrity: sha512-AKUQi1NIQ06VI5RwYRF8UykMzW5LCi3aXPc6OniQWJIjwVSu33qqdjti/u0g79TTiGYZbIN66ecR+NIpjH2pMg== } + engines: { node: ">=22" } + + "@augment-vir/core@31.73.1": + resolution: + { integrity: sha512-jNXfbbNqundiOJ+/1jPsdv3hA4nOvO9F+n86cO2Y29Jk26P6kCcGzLmUPO5mQ7XwOiB13g+bSmoj9zxoMFKRWA== } + engines: { node: ">=22" } + + "@babel/code-frame@7.29.7": + resolution: + { integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== } + engines: { node: ">=6.9.0" } + + "@babel/code-frame@8.0.0": + resolution: + { integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/compat-data@7.29.7": + resolution: + { integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== } + engines: { node: ">=6.9.0" } + + "@babel/compat-data@8.0.0": + resolution: + { integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/core@7.29.0": + resolution: + { integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== } + engines: { node: ">=6.9.0" } + + "@babel/core@8.0.1": + resolution: + { integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/eslint-parser@7.29.7": + resolution: + { integrity: sha512-zxt+UJTOMKvUt3yOg+D58MLuz334pHp93qifMFcjIIO+9hN6t+ufw2gi7vDPMpxvfnHRR+3VVXvIjineCcgyXw== } + engines: { node: ^10.13.0 || ^12.13.0 || >=14.0.0 } + peerDependencies: + "@babel/core": ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@astrojs/prism@4.0.2': - resolution: {integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==} - engines: {node: '>=22.12.0'} + "@babel/generator@7.29.7": + resolution: + { integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ== } + engines: { node: ">=6.9.0" } + + "@babel/generator@8.0.0": + resolution: + { integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-annotate-as-pure@7.27.3": + resolution: + { integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== } + engines: { node: ">=6.9.0" } + + "@babel/helper-annotate-as-pure@7.29.7": + resolution: + { integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== } + engines: { node: ">=6.9.0" } + + "@babel/helper-annotate-as-pure@8.0.0": + resolution: + { integrity: sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-compilation-targets@7.29.7": + resolution: + { integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== } + engines: { node: ">=6.9.0" } - '@astrojs/telemetry@3.3.2': - resolution: {integrity: sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + "@babel/helper-compilation-targets@8.0.0": + resolution: + { integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-compilation-targets@8.0.0-rc.6": + resolution: + { integrity: sha512-jqQD45/yUSy63U8zs9hE5FMXS8J1TLAI/NTMx76C6xWO021e13gJACQvuGmEF7syloC39LkkKwhqtAbMku1rwg== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-create-class-features-plugin@7.29.7": + resolution: + { integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-create-class-features-plugin@8.0.0": + resolution: + { integrity: sha512-nBuyyMWWnl8Q96V3xtpe5zbnLJASwYOw5o3qOz6s9bTcfPeetf996qmaEWPMaA0hKO8ZBv9GlyBPzyHDIMO+RQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-create-regexp-features-plugin@7.29.7": + resolution: + { integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-create-regexp-features-plugin@8.0.0": + resolution: + { integrity: sha512-7OflBnQGtnr0Td3ID2FwvNehWBYU09ewuJrpL46mwy2GDbNoPHJJg2t+X87Ui9T8vbmaQmabDLL+NOQ8ovX2dw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-define-polyfill-provider@0.6.8": + resolution: + { integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA== } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - '@astrojs/yaml2ts@0.2.4': - resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==} + "@babel/helper-define-polyfill-provider@1.0.0-rc.2": + resolution: + { integrity: sha512-AWy1lGqBObYp6gYE7TCVnjmCMstbTLEVevkzw/wHjD43XZ8HqOOe+PAg2zjROFl9qEjF6LH+QLxSrXGuQqLwBA== } + engines: { node: ^20.19.0 || >=22.12.0 } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-rc.3 - '@augment-vir/assert@31.70.1': - resolution: {integrity: sha512-OactuJDePweV5RJmg4T3H+kyH5va7yuowFz6p8952H7v1uVtDQjxme9YHk9nmXLBNjU4X3eDAf5Ok3v+tL+k+w==} - engines: {node: '>=22'} + "@babel/helper-globals@7.29.7": + resolution: + { integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== } + engines: { node: ">=6.9.0" } - '@augment-vir/common@31.70.1': - resolution: {integrity: sha512-JH746Xto324G7XRX3/iMqgi4ZDnOai0Bj2mcTWtXrN9kaKOEqCml8bE1J6IpPoGvs516i9zl51HH+r0VlYg/Tw==} - engines: {node: '>=22'} + "@babel/helper-globals@8.0.0": + resolution: + { integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-member-expression-to-functions@7.29.7": + resolution: + { integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg== } + engines: { node: ">=6.9.0" } + + "@babel/helper-member-expression-to-functions@8.0.0": + resolution: + { integrity: sha512-xkXrMbtk87Gk7+oKBVmBc6EORg/Qwx++AHESldmHkpvG8wgccdhJJFwrzqlF382Fk8wfXhJHWE/g/43QvEGNPQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-module-imports@7.18.6": + resolution: + { integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.29.7": + resolution: + { integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@8.0.0": + resolution: + { integrity: sha512-NZ7mSS93o4ndX4KrbD7W8Sf3QT8Qe24PrnFyUcuOPDzK6faqDFKjY9RG7he7+I7FdiQ4llpnosFqzrXa+Vy3Ew== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-module-transforms@7.29.7": + resolution: + { integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-module-transforms@8.0.0": + resolution: + { integrity: sha512-mZKKj6uYs23DEMyqvAnMcj5teZKEnBdgLRBTpQjC2e/zJEi8de2iL4PsUT4d+UVSGBAVV6OJDOJN2KNz0y8mZw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-optimise-call-expression@7.29.7": + resolution: + { integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong== } + engines: { node: ">=6.9.0" } + + "@babel/helper-optimise-call-expression@8.0.0": + resolution: + { integrity: sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-plugin-utils@7.29.7": + resolution: + { integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== } + engines: { node: ">=6.9.0" } + + "@babel/helper-plugin-utils@8.0.0": + resolution: + { integrity: sha512-s6IyoAZ0BtRfYgw9SpSXG1SNmkVbFrPQIt0Q5vAmBSyEkX3SwHqvstPY+GZ4xuxYf8V+9+dbRCUEmtDcjRnWlw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-plugin-utils@8.0.0-rc.6": + resolution: + { integrity: sha512-sLAjvuIcjzUQJR+CoHwU0JA4i706o71bCJtF+W9sc4KuHK3LCIJCjbKRuzbVn1eubUc66uAEZdBNWSqhLpwp2g== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0-rc.6 + + "@babel/helper-remap-async-to-generator@7.29.7": + resolution: + { integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-remap-async-to-generator@8.0.0": + resolution: + { integrity: sha512-CpER0+UpceiTLFqdRvNVdu+Xkdh3PyfJBoGz0ciUx9YRkTiSwqvB+6M3g1de9L18tKHd7+qLn34dWu+kgJ8zLg== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-replace-supers@7.29.7": + resolution: + { integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-replace-supers@8.0.0": + resolution: + { integrity: sha512-lk2Y6TWvFTUNRzU5gb5LLEQOQ7m3dPpwyEyqbZvqVEYX9v6HarK2xnrWdnMkyDN802/pU1Feizh/BAFB7/pfjA== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/helper-skip-transparent-expression-wrappers@7.29.7": + resolution: + { integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ== } + engines: { node: ">=6.9.0" } + + "@babel/helper-skip-transparent-expression-wrappers@8.0.0": + resolution: + { integrity: sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-split-export-declaration@7.24.7": + resolution: + { integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@7.29.7": + resolution: + { integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@8.0.0": + resolution: + { integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-validator-identifier@7.29.7": + resolution: + { integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-identifier@8.0.0": + resolution: + { integrity: sha512-kXxQVZHNOctSJJsqzmcbPSCEkM6oHNnDIkua7g9RCO9xRHj2eCiKvRx2KPdfWR9QxcGWnK/oArrtunmie3rL9g== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-validator-option@7.29.7": + resolution: + { integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-option@8.0.0": + resolution: + { integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helper-wrap-function@7.29.7": + resolution: + { integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw== } + engines: { node: ">=6.9.0" } + + "@babel/helper-wrap-function@8.0.0": + resolution: + { integrity: sha512-Qpm8+wi5xfDkBfollanwriCcKniFfBmMmaKB01GVM6VGzKXo1fdxosZp04qEr5HM+LKhwr3hG1yRy8+ORsficA== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/helpers@7.29.7": + resolution: + { integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== } + engines: { node: ">=6.9.0" } + + "@babel/helpers@8.0.0": + resolution: + { integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/parser@7.29.7": + resolution: + { integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== } + engines: { node: ">=6.0.0" } + hasBin: true - '@augment-vir/core@31.70.1': - resolution: {integrity: sha512-pfcMebdKmxr5aKetelmv8Wsyc6NIsmfEvlj24FYCEHTS+dBd/jGuAHp5ep3vvSafAxqEwwVPejG60nFZ6LNFnw==} - engines: {node: '>=22'} + "@babel/parser@8.0.0": + resolution: + { integrity: sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + hasBin: true - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7": + resolution: + { integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 - '@babel/compat-data@7.29.3': - resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@8.0.0": + resolution: + { integrity: sha512-szpR6MTHHwktzC1U9f2yag56F5u657A3Z7ufe7E4HEfTQhrwRESW3QMeLcS6E93dxHxpVqWotXeKb+HVlcB/JA== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/core@7.25.7': - resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7": + resolution: + { integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-safari-class-field-initializer-scope@8.0.0": + resolution: + { integrity: sha512-OMZHazpaadnxj+lY5SpTSCVRUeiFfu6aM6M60XbUdslfsPJSM4H624ou5I1csqRpvciEH0EriiPjBnRE8QuzNQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/eslint-parser@7.28.6': - resolution: {integrity: sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7": + resolution: + { integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + "@babel/core": ^7.0.0 - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@8.0.0": + resolution: + { integrity: sha512-LP+cZ1I/RSRPew9A07JZkQrcWz8r2JkCRuTkCAlV7/1Pj+9pt8F9aCbWKIDQ0q1YVRujnq8hUqe4hUEKwLBx5Q== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/generator@8.0.0-rc.5': - resolution: {integrity: sha512-nFZPWz3FHIS7y6rMIVoa/WBwjdutfIaRJIBQjzn+t3RnecZoRNlGmGcyR2wb0T/IgSd50Kz/6dG8/LvMCRunjg==} - engines: {node: ^22.18.0 || >=24.11.0} + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7": + resolution: + { integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@8.0.0": + resolution: + { integrity: sha512-z6ol16sq34emkTR1BWlP3VYjAxim8UDyFKBrzR1/fcUDdR/3hTqDzeC4F6pfjASN9uJVDtIDLOaZZB0m9+boBw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^7.0.0 - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7": + resolution: + { integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.13.0 - '@babel/helper-create-class-features-plugin@7.29.3': - resolution: {integrity: sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@8.0.0": + resolution: + { integrity: sha512-jmF+qhubKKEfFGhYo2C6LxqZEnp5xfGw8kRUqoArKp7rR34tlkhknuWVY4mIqK7G0jymW7jXr/7JeMix2VRVWA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^8.0.0 - '@babel/helper-create-regexp-features-plugin@7.28.5': - resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7": + resolution: + { integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.8': - resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@8.0.0": + resolution: + { integrity: sha512-sWa2dWgYUf0QfmQV4PL810JD0n8B+Y3sP9zAu/MXi6rrvz5rcIdzaw1DooaYXH18mJQVtIw67MEhuL8TfvNtgA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^8.0.0 - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-class-properties@7.18.6": + resolution: + { integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-decorators@7.29.7": + resolution: + { integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-module-imports@7.18.6': - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-decorators@8.0.0": + resolution: + { integrity: sha512-oXDf993v1BxrqyOgrcWNT6sbRuqNNrjMsCmys6RUQlIo29JYfLAjgCCsQiAWuWBpOF2Nhmx4ooYgsCeP8bMFeA== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-dynamic-import@7.18.6": + resolution: + { integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-nullish-coalescing-operator@7.18.6": + resolution: + { integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-object-rest-spread@7.20.7": + resolution: + { integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-optional-chaining@7.21.0": + resolution: + { integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-private-methods@7.18.6": + resolution: + { integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/helper-replace-supers@7.28.6': - resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + resolution: + { integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-proposal-private-property-in-object@7.21.11": + resolution: + { integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-async-generators@7.8.4": + resolution: + { integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-bigint@7.8.3": + resolution: + { integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-string-parser@8.0.0-rc.5': - resolution: {integrity: sha512-sN7R8rBvDurfaziNfDEIjIntlazmlkCDGO4SNl2RJ3wRCn+QxspLV7hzYAE8WWVd2joVuT8sUxeePdLp2idI1A==} - engines: {node: ^22.18.0 || >=24.11.0} + "@babel/plugin-syntax-class-properties@7.12.13": + resolution: + { integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-class-static-block@7.14.5": + resolution: + { integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-validator-identifier@8.0.0-rc.5': - resolution: {integrity: sha512-ehJDxHvtbZ85RtX/L2fi0h9AGsBNqB5Euv1EB8RMAvGYvD+2X+QbpzzOpbklnNXO+WSZJNOaetw2BBj27xsWVg==} - engines: {node: ^22.18.0 || >=24.11.0} + "@babel/plugin-syntax-decorators@7.29.7": + resolution: + { integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-decorators@8.0.0": + resolution: + { integrity: sha512-r4A4W4NApjGUA024LhXCSmFqRqqxSFejw+6whSK9Ci2Yg/u5VOiolDI1FzBzi0SpkzQrVAp/boit1j6aQnAXhg== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/helper-wrap-function@7.28.6': - resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-dynamic-import@7.8.3": + resolution: + { integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/helpers@7.29.2': - resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-import-assertions@7.29.7": + resolution: + { integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/parser@7.29.3': - resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} - engines: {node: '>=6.0.0'} - hasBin: true + "@babel/plugin-syntax-import-attributes@7.29.7": + resolution: + { integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/parser@8.0.0-rc.4': - resolution: {integrity: sha512-0S/1yefMa15N4i2v3t8Fw9pgMHhf2gF6Lc1UEXI96Ls6FNAjqvHHZouZ2ZS/deqLhbMFtmfVeFac6iTsvFbLwA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true + "@babel/plugin-syntax-import-meta@7.10.4": + resolution: + { integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/parser@8.0.0-rc.5': - resolution: {integrity: sha512-/Mfg83rK3+jsRbl4Vbd0jqxc6M1A1/WNFtgrowRM1unEsD3XcNnrBdMM0JWakd0/RN9lseQKwPduW1TiEwKOlQ==} - engines: {node: ^22.18.0 || >=24.11.0} - hasBin: true + "@babel/plugin-syntax-json-strings@7.8.3": + resolution: + { integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': - resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-jsx@7.29.7": + resolution: + { integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-logical-assignment-operators@7.10.4": + resolution: + { integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-nullish-coalescing-operator@7.8.3": + resolution: + { integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3': - resolution: {integrity: sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-numeric-separator@7.10.4": + resolution: + { integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-object-rest-spread@7.8.3": + resolution: + { integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== } peerDependencies: - '@babel/core': ^7.13.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': - resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-optional-catch-binding@7.8.3": + resolution: + { integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-class-properties@7.18.6': - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + "@babel/plugin-syntax-optional-chaining@7.8.3": + resolution: + { integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-decorators@7.29.0': - resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-private-property-in-object@7.14.5": + resolution: + { integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-dynamic-import@7.18.6': - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. + "@babel/plugin-syntax-top-level-await@7.14.5": + resolution: + { integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + "@babel/plugin-syntax-typescript@7.29.7": + resolution: + { integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-object-rest-spread@7.20.7': - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + "@babel/plugin-syntax-typescript@8.0.0": + resolution: + { integrity: sha512-WtPQBWL6dH91Q4uq0PlAW9mn1NrFzdLJnF52Ht6jciDFDgMAWzsw702lbL4XCDvH1gEcYbrJs19hbcjmNlPmeA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-proposal-optional-chaining@7.21.0': - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + "@babel/plugin-syntax-unicode-sets-regex@7.18.6": + resolution: + { integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0 - '@babel/plugin-proposal-private-methods@7.18.6': - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + "@babel/plugin-transform-arrow-functions@7.29.7": + resolution: + { integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-arrow-functions@8.0.0": + resolution: + { integrity: sha512-e3sFPrDQZ4zcp072SUSLaLon8dJW+Jj6tvPXoim/YcHC1PiVkHOfFFn5mw68IoY8WoOTp7v3MK5o5IxtyMHzxg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-proposal-private-property-in-object@7.21.11': - resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. + "@babel/plugin-transform-async-generator-functions@7.29.7": + resolution: + { integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + "@babel/plugin-transform-async-generator-functions@8.0.0": + resolution: + { integrity: sha512-v0JyaaCfWxePD4+WQuA6KCNBy24r9D+QY5MuoJ0fn8v5aiof8ExaLB3it+8niukmBYotfYe5I+6Q7FLP8ZPQAA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + "@babel/plugin-transform-async-to-generator@7.29.7": + resolution: + { integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + "@babel/plugin-transform-async-to-generator@8.0.0": + resolution: + { integrity: sha512-RS7fbgIlx88NU1x4pfbCnsZ8Ac++9Vtghf2OCdwoEbW/WwCuIXCAXsX825fibniqhqa1nixqKoFHJMiI7HUMgQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-block-scoped-functions@7.29.7": + resolution: + { integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.28.6': - resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-block-scoped-functions@8.0.0": + resolution: + { integrity: sha512-nDDrxhD3r+n5T0NWeZ8cBiJkc0bzviMRNHEiEglzFRd6GaN8d+31y3D3qSF8wd7wzsAIPVfEyGVjMaoD//E71Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + "@babel/plugin-transform-block-scoping@7.29.7": + resolution: + { integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + "@babel/plugin-transform-block-scoping@8.0.0": + resolution: + { integrity: sha512-nZLWWjcmn8BWpDb7RVUe7HCMeoBYSGLRZthbJMF4Nq6ivhlXPDZQO3dL6wC4CxvdmuTuqZVW5vbiGQKeJ+Mx8g== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-import-assertions@7.28.6': - resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-class-properties@7.29.7": + resolution: + { integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-class-properties@8.0.0": + resolution: + { integrity: sha512-kZBzfFQucZU5m+eMFiCL31oBgMfX7R5ARsqN628INR5wSb1zOHwYqkNI1B3IhQEFJP5ZYhpYPDQ5gTjhg+xdhQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-import-attributes@7.28.6': - resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-class-static-block@7.29.7": + resolution: + { integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.12.0 - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + "@babel/plugin-transform-class-static-block@8.0.0": + resolution: + { integrity: sha512-U1HbvBEypUeO552KIWbACA8HOvYc/IW3cbO0mFQeTOPRdNMVgjl5MKKMBH5oqtuTYUQ5pcHZsBIOHefvBh9nfg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + "@babel/plugin-transform-classes@7.29.7": + resolution: + { integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.28.6': - resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-classes@8.0.0": + resolution: + { integrity: sha512-vyPX1LEmsAl+pbet7qUS7GIZcbIvFPsdoAqNqfH5wG1QA6HW0iw3MbvE8ayvj49lKF726D3tWu3I07b+fGgsDw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + "@babel/plugin-transform-computed-properties@7.29.7": + resolution: + { integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + "@babel/plugin-transform-computed-properties@8.0.0": + resolution: + { integrity: sha512-U7L9tppspxmo1ZafT/LcWf68yo4w/VIVdTSgwpxFYGg9ccKwt3JcGrScnqgqXWMW44n2ne+akbvTCokv1Lq3nQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + "@babel/plugin-transform-destructuring@7.29.7": + resolution: + { integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + "@babel/plugin-transform-destructuring@8.0.0": + resolution: + { integrity: sha512-htBgjqUIGjbdtwsKU/QjTEqhEEdQO7kJtnzXwC3FzzRelB26277ztREXx9GM+oy/9MpouSiAXyp1NQVPx1dN9w== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + "@babel/plugin-transform-dotall-regex@7.29.7": + resolution: + { integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + "@babel/plugin-transform-dotall-regex@8.0.0": + resolution: + { integrity: sha512-lD9QwpqKWRoa0Y/EsHu1m6haBB9WOZ2ed7Ksk3lcvImEjuCogIlZ0C05qfuJtWk6QqBk1Cf1akrejyGEy/n4Ug== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-duplicate-keys@7.29.7": + resolution: + { integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-duplicate-keys@8.0.0": + resolution: + { integrity: sha512-Y9LcbY9IsOb0weAfELeEyOkyRelkl78bBN9mcIkX4UkqYGY4SpdmV5Szb3HkbNFxBK5Ta//x7Znwc0drAMGVOQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-syntax-typescript@7.28.6': - resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7": + resolution: + { integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@8.0.0": + resolution: + { integrity: sha512-xWMRzL06hG4r24HYv515/V6RpgijoEJeVVKoUXMvquoBMBteXQgjSDVPuVA6/sM4wZXIqyG/db43RQ984XkqCw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-dynamic-import@7.29.7": + resolution: + { integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.29.0': - resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-dynamic-import@8.0.0": + resolution: + { integrity: sha512-8N/mOH4Ti/EnSeOB3eDrCLZA4EovJQbcFUhKVselMOZIWIhO3uvb+b5qceYBmAP6zGL8JMtQ+K71l2aa5ZyZxg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-async-to-generator@7.28.6': - resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-explicit-resource-management@7.29.7": + resolution: + { integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-explicit-resource-management@8.0.0": + resolution: + { integrity: sha512-2r4c6p+Lq4GjqK4hzX/DIp8UFcgVj4xF/Jgx1LRgkqcfRQc8WBdBmOHEpJcYwAdFU0iojf8ujFMIeCz+RyCm5Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-block-scoping@7.28.6': - resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-exponentiation-operator@7.29.7": + resolution: + { integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.28.6': - resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-exponentiation-operator@8.0.0": + resolution: + { integrity: sha512-qGNu6pY42NaDVH3exmmFOyoNfsQGN5WVimlMwTqXsXCsheIAj8Er2ourInP1t9Thnrfe0yqpdadMH/W24xj01w== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-class-static-block@7.28.6': - resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-export-namespace-from@7.29.7": + resolution: + { integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.12.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-classes@7.28.6': - resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-export-namespace-from@8.0.0": + resolution: + { integrity: sha512-tLw9/5hDS+C7v01RzBLgtQZsoHq4tl7Th6TDWO5xUCcU4WyKOpYGT4th2T1FBiqWaifcHHTAqpg3FigMSCdDYw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-computed-properties@7.28.6': - resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-for-of@7.29.7": + resolution: + { integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.5': - resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-for-of@8.0.0": + resolution: + { integrity: sha512-Q9eB19lAYxiOcNBr1rBoQiUnWDx4/Kx6zzrklXDsUvCJHGePXm4XHJMPmMQLwDHlS+V1gVrBfTvwMScvBxpp7A== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-dotall-regex@7.28.6': - resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-function-name@7.29.7": + resolution: + { integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-function-name@8.0.0": + resolution: + { integrity: sha512-D0TwdKGQNqS9TgoN4fHTx/iN20LsZJ2I2WUZsMs7JPJRb+6nQM8QgjJyBxbOSA5/ZWI5Pm2MDmm6d+kBadpi8A== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-json-strings@7.29.7": + resolution: + { integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-json-strings@8.0.0": + resolution: + { integrity: sha512-eb66PB7GGOC8op5mrC0iwZ5l1YeNLbRc/8Qi+KJ62oHZIMFYRuhBx780vdtIgnYrY4znialh0OO5u54YVpipLg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-explicit-resource-management@7.28.6': - resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-literals@7.29.7": + resolution: + { integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.28.6': - resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-literals@8.0.0": + resolution: + { integrity: sha512-zbn3I/156s2PebjNXOVqNxQrBh89EXepqUCfUrFvkB9M5qTeOyuFPng3o6p1V29gB7F7dehaoOG3+dZt4vTzbQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-logical-assignment-operators@7.29.7": + resolution: + { integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-logical-assignment-operators@8.0.0": + resolution: + { integrity: sha512-bOR97KT5lfPVr0dHF7pO4KoStpNqd7bErIWAQFioPVY6A7115hmfrhs5ziHtFE/xJeIqbvvFaWfWAli/ENqshA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-member-expression-literals@7.29.7": + resolution: + { integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.28.6': - resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-member-expression-literals@8.0.0": + resolution: + { integrity: sha512-NI9/2y+kn77YkxzNY5mYcf19kiynJ8+Xi4K6cM/oM/DPPEckelixm3hUSUh6WBZ7dj4JS7DQME+zTFlWtYa3Wg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-amd@7.29.7": + resolution: + { integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.28.6': - resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-amd@8.0.0": + resolution: + { integrity: sha512-Kdl89XlVT/EgPQ0uahDZiRVt6zfdFLh2i5DCeddCqKWIrPeg5UheyegAB8D1xgZJoG3gLKywYr9mlTM4HqPDVQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-commonjs@7.29.7": + resolution: + { integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-commonjs@8.0.0": + resolution: + { integrity: sha512-ZYkKx/mSb3WFJ2aMi9h2SJiM8o5MiYJu/6ub2bJhhcmvyVEIu3aSqsVM1xXvFnS8ttHfmB6OHETpmAY1vnEiSw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-modules-commonjs@7.28.6': - resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-systemjs@7.29.7": + resolution: + { integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.4': - resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-systemjs@8.0.0": + resolution: + { integrity: sha512-zkxvwTUqdsXXNWpVcvtwOn5hOhVv+2UgBE5AHiIyD6XtSlPYkAm4D+waZA4WRAceHBKCE44VsTH/yDSs2QSTsA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-umd@7.29.7": + resolution: + { integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-modules-umd@8.0.0": + resolution: + { integrity: sha512-/Rw8WLDTHjNfcykwX1MjNBI54yb/TyvReP/sdzN0L+YquYEyjdi4xFlq7IEXu5hhVx/+wlkkN2ZGUq1Eug1J2w== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-named-capturing-groups-regex@7.29.7": + resolution: + { integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': - resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-named-capturing-groups-regex@8.0.0": + resolution: + { integrity: sha512-Wp39/Y6Balln79AxXyS1kyyzwzohwaalv5hjPn5IbgOXRru+DBfpfq56G14oMbiNxuEM5vA7hjj53pCa1h50/Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-numeric-separator@7.28.6': - resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-new-target@7.29.7": + resolution: + { integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-object-assign@7.27.1': - resolution: {integrity: sha512-LP6tsnirA6iy13uBKiYgjJsfQrodmlSrpZModtlo1Vk8sOO68gfo7dfA9TGJyEgxTiO7czK4EGZm8FJEZtk4kQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-new-target@8.0.0": + resolution: + { integrity: sha512-gSr+l4Ne+p17PYL7Kbm5GAdJh19gzoQ394LcRz+0OjaclzXbWSYxSdbWOcemFBPCYXUz1w+cQJh84yilS0EXBQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-object-rest-spread@7.28.6': - resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-nullish-coalescing-operator@7.29.7": + resolution: + { integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-nullish-coalescing-operator@8.0.0": + resolution: + { integrity: sha512-R2kExvgXdRVG7q5vIyM2O6BcFfmIWczel/+5VzzOcS6ABwHktbMUFKrbGN/ekDW2IsBcaJkLoM3qCiSKByonfg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-optional-catch-binding@7.28.6': - resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-numeric-separator@7.29.7": + resolution: + { integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.28.6': - resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-numeric-separator@8.0.0": + resolution: + { integrity: sha512-tacdNZDzyGcMOtFuMaW7zcRl+/hfgFRB7yic5h8fiXPsh7DzKzq4eMP4nvN/bMNKqUXDvlcHsHSFgqxdB2vnUQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-object-assign@7.29.7": + resolution: + { integrity: sha512-sdsm7VWuENjoL6XuuBXKIA7kvRjMICwu+dKewTNFKErSYNKi8+9H8xT5z+HT2R67CmAYx7aM1j2MBhC2HzgZdA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.28.6': - resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-object-rest-spread@7.29.7": + resolution: + { integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.28.6': - resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-object-rest-spread@8.0.0": + resolution: + { integrity: sha512-KmTPGmtelsWmmatYifAsdyFOIB79uVnn7GCg50j5iECULadbV/BgxZdm0NNPvfjTFe3z4Jk2BDMIejQoeeKwMA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-object-super@7.29.7": + resolution: + { integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.27.1': - resolution: {integrity: sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-object-super@8.0.0": + resolution: + { integrity: sha512-iBayQsZBV0gKwb2C95qOTeNfn2sqX5ubqlJCWQU7Z7S31ONy7Dk7UJsDHIA0+oZe51Yf98HQjkbvatb2lm54jQ== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-react-display-name@7.28.0': - resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-optional-catch-binding@7.29.7": + resolution: + { integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-optional-catch-binding@8.0.0": + resolution: + { integrity: sha512-Es86k4/VmVpPtRQ4Y12+nWUuhrtxT15aqlHz/iJZzyTrPOiV6eXYvtXE//so/0+YTGbvbk1AJwuwhjLPxiH59g== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-react-jsx@7.25.7': - resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-optional-chaining@7.29.7": + resolution: + { integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.28.6': - resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-optional-chaining@8.0.0": + resolution: + { integrity: sha512-WP2Zz0XT2Sm5hGa9OW/kDJTkFyH37EIg+TPBi/pP3iW7eh7IyEgG86mDa7v5/V6sEO0Kh8xB0A0DuFeef802Rw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-parameters@7.29.7": + resolution: + { integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.29.0': - resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-parameters@8.0.0": + resolution: + { integrity: sha512-H4EzwsWirHBYISSDNsZtYvrxwnLdDBOWwKItxQROayg4pcCBFsNI4/7SvHGxEuNJGPEzOSEm4eC18evBopIZ3Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-regexp-modifiers@7.28.6': - resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-private-methods@7.29.7": + resolution: + { integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-private-methods@8.0.0": + resolution: + { integrity: sha512-NThL3uI0dEyxBmH5837lBmYGYIK4qgOw4E0rf14dSHzrtA6aMUUp/s0siupV6pbnQwdThauFC8yV8NVa289Qsw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-runtime@7.25.7': - resolution: {integrity: sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-private-property-in-object@7.29.7": + resolution: + { integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-runtime@7.29.0': - resolution: {integrity: sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-private-property-in-object@8.0.0": + resolution: + { integrity: sha512-LUxlEnFbtae+OmYoxu4o9jmEaYf9ArY43euIhXndlhs/0xMuT8BjC2wBXyjntXwWrtQYVTbFp+NKKmeSPY9icA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-property-literals@7.29.7": + resolution: + { integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-spread@7.28.6': - resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-property-literals@8.0.0": + resolution: + { integrity: sha512-1aUWxwED63WzH8JIWyqTrMiH3KooP3X1pNDSM29wbKt+kQRAKHGbtFs7w0ELAKJoEcdD4r6vaK8esxMN2Q3Jkw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-constant-elements@7.29.7": + resolution: + { integrity: sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-display-name@7.29.7": + resolution: + { integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-jsx-development@7.29.7": + resolution: + { integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.6': - resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-jsx@7.29.7": + resolution: + { integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-typescript@7.5.5': - resolution: {integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==} + "@babel/plugin-transform-react-pure-annotations@7.29.7": + resolution: + { integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-regenerator@7.29.7": + resolution: + { integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.28.6': - resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-regenerator@8.0.0": + resolution: + { integrity: sha512-XuNnWFpzlylQlhYREiTLmnQJdTogQ8EqbISAJ3JptnhvQnzwj1Fx4+DpoS/y7D/7F+lDiQAksv32LqKJAYqUoA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-regexp-modifiers@7.29.7": + resolution: + { integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0 - '@babel/plugin-transform-unicode-sets-regex@7.28.6': - resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-regexp-modifiers@8.0.0": + resolution: + { integrity: sha512-TTP0ytUOFAmWvmQ8r+r5VMZEFxvHbYy/e1q9jvZEjHP2b+W4/x0nBVv1VgZnogot5qw0fhNPHojKMb5IAOYxLg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^8.0.0 - '@babel/polyfill@7.12.1': - resolution: {integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==} - deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. + "@babel/plugin-transform-reserved-words@7.29.7": + resolution: + { integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-reserved-words@8.0.0": + resolution: + { integrity: sha512-y2GPme9H8HaFy+hRLdt4ywNhDud+c41EfwJn3RjztWJ3HLeSLIh1IlkAnz/FgDB1iflHew6mDGWFddsLNxxInw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-runtime@7.29.7": + resolution: + { integrity: sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-runtime@8.0.0": + resolution: + { integrity: sha512-hEylRzDAe9Gefwn4u62+msvdqxEwev5JOF7DWrPwh9NIDP7Xw8zhZNLQsQSrthSpMmUyUJdl2vqAeGNONUja3g== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-shorthand-properties@7.29.7": + resolution: + { integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-shorthand-properties@8.0.0": + resolution: + { integrity: sha512-F2ZudxnQpHenBYAs62Be9Uie2JhNP9NMZQspcOnYZoHH55RwuiTvoWjn88AaG31D0ZUruCNPArsMV7pfsTDRuw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-spread@7.29.7": + resolution: + { integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-spread@8.0.0": + resolution: + { integrity: sha512-tgK0hEK3RvxtD/ZzbwiPeVf/hmjw01CL6ZktZ9qtwWu+AXGlHj9PQ7EwF+kr/HQj5Hj7qjeTq20VsIfUsk+hOw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-sticky-regex@7.29.7": + resolution: + { integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-sticky-regex@8.0.0": + resolution: + { integrity: sha512-K47po10ncOaiZfSqI04ubkK3Tgy2GRJQXxGxhaCd0ieveUwy/BwQjH3N1dprIRkqR+dvcL0x3P814j3SD4PlLQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-template-literals@7.29.7": + resolution: + { integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-template-literals@8.0.0": + resolution: + { integrity: sha512-yH07Qc8//fYzXpmz5fkaNKTl4Gbf2dWQ7wv/BDaUuUrLJKoMWRrpam/TZWMqc0AuCkeeZgww3+WPivYrLvQvYQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-typeof-symbol@7.29.7": + resolution: + { integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-typeof-symbol@8.0.0": + resolution: + { integrity: sha512-fP5ioMxZ+lCfHjM+fYqDJi+NqGGRTqOnADqgHDm9gPACFXfAH34nAvfFa0rdTATM1NYs5v1iPA4EjgpSSkwLXg== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-typescript@7.29.7": + resolution: + { integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-typescript@7.5.5": + resolution: + { integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-typescript@8.0.0": + resolution: + { integrity: sha512-HPjHoanWqd5hXEIq/OdfNfppKGxWV/XMpn02q7dyDyY5coimuTbu93gzmQFMU2vRefh2NVUF+SGsJAV+a4w8bA== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 + + "@babel/plugin-transform-unicode-escapes@7.29.7": + resolution: + { integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/preset-env@7.25.7': - resolution: {integrity: sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-escapes@8.0.0": + resolution: + { integrity: sha512-k7xXsfIF3awa4FCkTbSZ13K+S70EjjK8kn43qQQKuucJBD6H+pFm1tsThRpvZK/7EKpiiXKfz1eQXLkt20IVmw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/preset-env@7.29.2': - resolution: {integrity: sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-property-regex@7.29.7": + resolution: + { integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/preset-env@7.29.5': - resolution: {integrity: sha512-/69t2aEzGKHD76DyLbHysF/QH2LJOB8iFnYO37unDTKBTubzcMRv0f3H5EiN1Q6ajOd/eB7dAInF0qdFVS06kA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-property-regex@8.0.0": + resolution: + { integrity: sha512-NL0wamHv9fjUW8ZOozqkr4pO97Ys1M4wAmSIhHcBK+EKp8jgecyOT3tMoW6soW9Y2dlcgPwZn0r4PLYhlQXM+Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + "@babel/plugin-transform-unicode-regex@7.29.7": + resolution: + { integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.0.0-0 - '@babel/preset-react@7.28.5': - resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-regex@8.0.0": + resolution: + { integrity: sha512-OvhHM5qmP4Ibl2JdFWf0JgeWmyCsPtxoCha5Xc3S0hDPk4eXw5rNGGBaMgdql6iWNSLwE3HLpovPSreMLbfWTA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/preset-typescript@7.25.7': - resolution: {integrity: sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-sets-regex@7.29.7": + resolution: + { integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg== } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0 - '@babel/preset-typescript@7.28.5': - resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-unicode-sets-regex@8.0.0": + resolution: + { integrity: sha512-ZUXc7oFqqdkHZEGMv6QsdEsiCwmdjNhoDSdKtrmMppFTVvfk82QUQ47Xn8i93XeVg8LlHcHEe7kaTtwHI4xV5A== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^8.0.0 - '@babel/runtime@7.12.18': - resolution: {integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==} + "@babel/polyfill@7.12.1": + resolution: + { integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== } + deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} + "@babel/preset-env@7.29.7": + resolution: + { integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} + "@babel/preset-env@8.0.0": + resolution: + { integrity: sha512-K1rFEEHgDw05dCsXzCF7H6drC4QJtmgRv8qzHdDkj/O8icRsWPPAvTPP8Pe2nLJtRSPTDRSG2rREL45FN+pyqQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + "@babel/core": ^8.0.0 - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} + "@babel/preset-modules@0.1.6-no-external-plugins": + resolution: + { integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== } + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} + "@babel/preset-react@7.29.7": + resolution: + { integrity: sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@babel/types@8.0.0-rc.5': - resolution: {integrity: sha512-JeSVu/m8x/zpp4CLjYHVNXuhEyOkhPXuxM8YOXjh6L4LlvQNKuUNOTo5KdBuKAcTDHw8DquToTaEkhsBqPXOaA==} - engines: {node: ^22.18.0 || >=24.11.0} + "@babel/preset-typescript@7.29.7": + resolution: + { integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 - '@base-ui/react@1.5.0': - resolution: {integrity: sha512-z1gSAlced1yY+iM+mHDEtIkD8UI3Ebs52MuBPxvV6f5hRutk+xvCH/wuB7hDqDzK9JG5FoMz5nhrqtSs1wjt1A==} - engines: {node: '>=14.0.0'} + "@babel/preset-typescript@8.0.0": + resolution: + { integrity: sha512-hLogd6zubPI2uHQxVIuAgShi1gxvEkSn1I+L/zLgHzO7HR8HCChMRCYNFOHCktOdCHefaoU/AN0B93qBJkOSag== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@date-fns/tz': ^1.2.0 - '@types/react': ^17 || ^18 || ^19 + "@babel/core": ^8.0.0 + + "@babel/runtime@7.12.18": + resolution: + { integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== } + + "@babel/runtime@7.29.7": + resolution: + { integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== } + engines: { node: ">=6.9.0" } + + "@babel/runtime@8.0.0": + resolution: + { integrity: sha512-sL6cvO2IfkSu/iU+zs2S/w01B7A8V7suXSIKEN4hPFFdZoiPGxrj5pAG0lCaqLWiEIrjKzdznIWuaLcxPR53qw== } + + "@babel/template@7.29.7": + resolution: + { integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== } + engines: { node: ">=6.9.0" } + + "@babel/template@8.0.0": + resolution: + { integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/traverse@7.29.7": + resolution: + { integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw== } + engines: { node: ">=6.9.0" } + + "@babel/traverse@8.0.0": + resolution: + { integrity: sha512-bxTj/W2VclGE6CctlfQOpxg8MPDzXArRqkOBePw8EHfebcjF7fETWSS3BriEECo+UiU/Yblq+xUtSImFu7cTbw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@babel/types@7.29.7": + resolution: + { integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== } + engines: { node: ">=6.9.0" } + + "@babel/types@8.0.0": + resolution: + { integrity: sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + "@base-ui/react@1.5.0": + resolution: + { integrity: sha512-z1gSAlced1yY+iM+mHDEtIkD8UI3Ebs52MuBPxvV6f5hRutk+xvCH/wuB7hDqDzK9JG5FoMz5nhrqtSs1wjt1A== } + engines: { node: ">=14.0.0" } + peerDependencies: + "@date-fns/tz": ^1.2.0 + "@types/react": ^17 || ^18 || ^19 date-fns: ^4.0.0 react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 peerDependenciesMeta: - '@date-fns/tz': + "@date-fns/tz": optional: true - '@types/react': + "@types/react": optional: true date-fns: optional: true - '@base-ui/utils@0.2.9': - resolution: {integrity: sha512-x/PDDCYzoqPpjrdyb3VcyylTI2IjUXEtYDGi5foh7KsnmNJIIaVwA2GLgDH1dps1GgXiJbA60hM+AyuTfQzIvw==} + "@base-ui/utils@0.2.9": + resolution: + { integrity: sha512-x/PDDCYzoqPpjrdyb3VcyylTI2IjUXEtYDGi5foh7KsnmNJIIaVwA2GLgDH1dps1GgXiJbA60hM+AyuTfQzIvw== } peerDependencies: - '@types/react': ^17 || ^18 || ^19 + "@types/react": ^17 || ^18 || ^19 react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + "@bcoe/v8-coverage@0.2.3": + resolution: + { integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== } - '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} - engines: {node: '>=18'} + "@bcoe/v8-coverage@1.0.2": + resolution: + { integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== } + engines: { node: ">=18" } - '@bomb.sh/tab@0.0.15': - resolution: {integrity: sha512-Y90ub44TAvbdO9P8mcD/XPyQjFhiR5xmd4Fk7JErmWmEWEUimNnjWiBrVZ16Tj3GA1rLZ+uvCN2V/pzLawv31g==} + "@bomb.sh/tab@0.0.15": + resolution: + { integrity: sha512-Y90ub44TAvbdO9P8mcD/XPyQjFhiR5xmd4Fk7JErmWmEWEUimNnjWiBrVZ16Tj3GA1rLZ+uvCN2V/pzLawv31g== } hasBin: true peerDependencies: cac: ^6.7.14 @@ -15736,155 +16518,191 @@ packages: commander: optional: true - '@bramus/specificity@2.4.2': - resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + "@bramus/specificity@2.4.2": + resolution: + { integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw== } hasBin: true - '@builder.io/qwik@1.19.2': - resolution: {integrity: sha512-aLQIZm3BdX6jStSR6XdXhT9jQo5JN9bxuYJOD8p5IhZxBNgjQaRwIfZkXksgs6RkzdTsSpXo5+G6lkb/jMZQsg==} - engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} + "@builder.io/qwik@1.20.0": + resolution: + { integrity: sha512-mPnENUgyOGYQW9UNGGeGP67hg8rI/hi4WQ0z/rM3PAgQl3UjfreBxyj1njxvSLAz5nei6yD20/W/eywVIxOCIw== } + engines: { node: ">=16.8.0 <18.0.0 || >=18.11" } hasBin: true peerDependencies: - vite: '>=5 <8' + vite: ">=5 <8" - '@cacheable/memory@2.0.9': - resolution: {integrity: sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==} + "@cacheable/memory@2.0.9": + resolution: + { integrity: sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA== } - '@cacheable/utils@2.4.1': - resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==} + "@cacheable/utils@2.4.1": + resolution: + { integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA== } - '@capacitor/app@8.1.0': - resolution: {integrity: sha512-MlmttTOWHDedr/G4SrhNRxsXMqY+R75S4MM4eIgzsgCzOYhb/MpCkA5Q3nuOCfL1oHm26xjUzqZ5aupbOwdfYg==} + "@capacitor/app@8.1.0": + resolution: + { integrity: sha512-MlmttTOWHDedr/G4SrhNRxsXMqY+R75S4MM4eIgzsgCzOYhb/MpCkA5Q3nuOCfL1oHm26xjUzqZ5aupbOwdfYg== } peerDependencies: - '@capacitor/core': '>=8.0.0' + "@capacitor/core": ">=8.0.0" - '@capacitor/cli@8.3.4': - resolution: {integrity: sha512-QEmyNdiDDVNYl0Mahm7YTVA/3t2tKcy7FWYDapeKGavS6HDNHZSjyTVwQpUXQbDZrrs/PS2Wau3Aii+LIFwm/A==} - engines: {node: '>=22.0.0'} + "@capacitor/cli@8.4.0": + resolution: + { integrity: sha512-5Z9RKHxiqJYRTLrfMeZmzR4qrlg5B85MxsWZ5goyXsLkO3bgpW9a1qV/6fR1SX9s5gwLza5y7PZVwITl/hDJ7g== } + engines: { node: ">=22.0.0" } hasBin: true - '@capacitor/core@8.3.4': - resolution: {integrity: sha512-CqRQCkb6HXxcx/N7s+hHTN6ef2CmamFiRMITwm4qB840ph56mS42bzUgn6tKCP+RZjdDweiRHj9ytDDeN6jFag==} + "@capacitor/core@8.4.0": + resolution: + { integrity: sha512-LrS1xPIrqLtJABBIPDGXxxKmI9OyesrzWw8DiHbxhSC9JoiLUleUAJlX1a0LWIVLRbuY4Szgf9huFeRqYH2SAQ== } - '@capacitor/haptics@8.0.2': - resolution: {integrity: sha512-c2hZzRR5Fk1tbTvhG1jhh2XBAf3EhnIerMIb2sl7Mt41Gxx1fhBJFDa0/BI1IbY4loVepyyuqNC9820/GZuoWQ==} + "@capacitor/haptics@8.0.2": + resolution: + { integrity: sha512-c2hZzRR5Fk1tbTvhG1jhh2XBAf3EhnIerMIb2sl7Mt41Gxx1fhBJFDa0/BI1IbY4loVepyyuqNC9820/GZuoWQ== } peerDependencies: - '@capacitor/core': '>=8.0.0' + "@capacitor/core": ">=8.0.0" - '@capacitor/keyboard@8.0.3': - resolution: {integrity: sha512-27Bv5/2w1Ss2njguBgTS98O0Bb8DRJhAARyzXYib0JlT/n6BrJw/EZ0CokM4C8GFUjFDjJnEKF1Ie01buTMEXQ==} + "@capacitor/keyboard@8.0.5": + resolution: + { integrity: sha512-oFXygC4eKYA5l2MdpTR06L2M/4x6e2SLD5yS1T9+UBDKTkzyvhWKEhbYLUaTIBPpLKqlfGudJw1X73S1H9eUzQ== } peerDependencies: - '@capacitor/core': '>=8.0.0' + "@capacitor/core": ">=8.0.0" - '@capacitor/status-bar@8.0.2': - resolution: {integrity: sha512-WXs8YB8B9eEaPZz+bcdY6t2nForF1FLoj/JU0Dl9RRgQnddnS98FEEyDooQhaY7wivr000j4+SC1FyeJkrFO7A==} + "@capacitor/status-bar@8.0.2": + resolution: + { integrity: sha512-WXs8YB8B9eEaPZz+bcdY6t2nForF1FLoj/JU0Dl9RRgQnddnS98FEEyDooQhaY7wivr000j4+SC1FyeJkrFO7A== } peerDependencies: - '@capacitor/core': '>=8.0.0' + "@capacitor/core": ">=8.0.0" - '@capsizecss/unpack@4.0.0': - resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} - engines: {node: '>=18'} + "@capsizecss/unpack@4.0.1": + resolution: + { integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ== } + engines: { node: ">=18" } - '@clack/core@1.3.1': - resolution: {integrity: sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==} - engines: {node: '>= 20.12.0'} + "@clack/core@1.4.1": + resolution: + { integrity: sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw== } + engines: { node: ">= 20.12.0" } - '@clack/prompts@1.4.0': - resolution: {integrity: sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==} - engines: {node: '>= 20.12.0'} + "@clack/prompts@1.5.1": + resolution: + { integrity: sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw== } + engines: { node: ">= 20.12.0" } - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} - engines: {node: '>=18.0.0'} + "@cloudflare/kv-asset-handler@0.4.2": + resolution: + { integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ== } + engines: { node: ">=18.0.0" } - '@cnakazawa/watch@1.0.4': - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} + "@cnakazawa/watch@1.0.4": + resolution: + { integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== } + engines: { node: ">=0.1.95" } hasBin: true - '@colordx/core@5.4.3': - resolution: {integrity: sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ==} + "@colordx/core@5.4.3": + resolution: + { integrity: sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ== } - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} + "@colors/colors@1.5.0": + resolution: + { integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== } + engines: { node: ">=0.1.90" } - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + "@colors/colors@1.6.0": + resolution: + { integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== } + engines: { node: ">=0.1.90" } - '@commitlint/cli@21.0.2': - resolution: {integrity: sha512-YMmfLbqBg+ZRvvmPhc+cilSQFrh/AgzVgCT1U/OifmUZEwPbvCtA8rN//YNaF9d5eoZphxVMGYtmwA2QgQORgg==} - engines: {node: '>=22.12.0'} + "@commitlint/cli@21.0.2": + resolution: + { integrity: sha512-YMmfLbqBg+ZRvvmPhc+cilSQFrh/AgzVgCT1U/OifmUZEwPbvCtA8rN//YNaF9d5eoZphxVMGYtmwA2QgQORgg== } + engines: { node: ">=22.12.0" } hasBin: true - '@commitlint/config-conventional@21.0.2': - resolution: {integrity: sha512-P/ZRhryQmkj0Z0dY9FOoRwe3xkwJyyAdtXwt01NT2kuZttcG2CNYp1q5Ci3u+nDT2jcbJRw2kt13Czl1qKNPfg==} - engines: {node: '>=22.12.0'} - - '@commitlint/config-validator@21.0.1': - resolution: {integrity: sha512-Zd2UFdndeMMaW2O96HK0tdfT4gOImUvidMpAd/pws2zZ4m1nrAZ/9b/v2JYuE8fs86GpXv9F7LNaIuCIWhY+pA==} - engines: {node: '>=22.12.0'} - - '@commitlint/ensure@21.0.1': - resolution: {integrity: sha512-jJ1037967wU7YN/xkv+iRlOBlmaOXPhPO5KQSqya6GyXzBlwuLzELBFao16DVg9dZyqmNrhewzwZ3SAibetHBQ==} - engines: {node: '>=22.12.0'} - - '@commitlint/execute-rule@21.0.1': - resolution: {integrity: sha512-RifH+FmImozKBE6mozhF4K3r2RRKP7SMi/Q/zLCmExtp5e05lhHOUYqGBlFBAGNHaZxU/WYw1XuugYK9jQzqnA==} - engines: {node: '>=22.12.0'} - - '@commitlint/format@21.0.1': - resolution: {integrity: sha512-ksmG2+cHGtuDPQQbhBbC4unwm444+6TiPw0d1bKf67hntgZqZ8E0g1MuYKUuyT5IH4IMmXZhKq22/Z3jBvtQIw==} - engines: {node: '>=22.12.0'} - - '@commitlint/is-ignored@21.0.2': - resolution: {integrity: sha512-H5z4t8PC9tUsmZ/o+EptM3Nq8sTFtskAShdcqxCoyzklW5eaVT5xbrDAET2uypzir9Vsj4ZZmBtyKjYe2XqgeQ==} - engines: {node: '>=22.12.0'} - - '@commitlint/lint@21.0.2': - resolution: {integrity: sha512-PnUmLYGeGLfW8oVatR9KpNxSHYAnJOEWlMZzfdeFOUq6WUrFx1fGQaWCWJqMoIll/xPM+GdfJV+tKHZVHhl0Fg==} - engines: {node: '>=22.12.0'} - - '@commitlint/load@21.0.2': - resolution: {integrity: sha512-lwUE70hN0/qE/ZRROhbaX65ly/FF12DrqfReLCESo37M0OQCFAf2jRS+2tSCSORq+bm4Kdju7qNDj46uc1QzTA==} - engines: {node: '>=22.12.0'} - - '@commitlint/message@21.0.2': - resolution: {integrity: sha512-5n4aqHGD/FNnom/D5L8i7cYtV+xjuXcBL832C3w9VglEsZzIsoHpJsvxzJ7cgiOsOdc/2jU4t5+7qMHh7GBX3g==} - engines: {node: '>=22.12.0'} - - '@commitlint/parse@21.0.2': - resolution: {integrity: sha512-QVZJhGHTm+oiuWyEKOCTQ0ZM3mfJ0eGWFeHuj7WzSKEth+UukcCHac9GD8pgdFlg/qGkFWOtyaNd1T8REgagaw==} - engines: {node: '>=22.12.0'} - - '@commitlint/read@21.0.2': - resolution: {integrity: sha512-BtsrnLVycSSKf4Q0gMch4giCj5NNlmcbhc8ra5vONgGtP2IjRDo33bEFtr5Pm+2N+5fXGWb2MksWPrspPfdhdw==} - engines: {node: '>=22.12.0'} - - '@commitlint/resolve-extends@21.0.1': - resolution: {integrity: sha512-0DhjYWL6uYrY16Efa032fYk3woGJDU4AGWiG1XXltT9AMUNYKyb5cIZU2ivbaMZ3+kKFqUjikD2cjh66Sbh/Sg==} - engines: {node: '>=22.12.0'} - - '@commitlint/rules@21.0.2': - resolution: {integrity: sha512-k6tQ69Td7t2qUSIbik8D3TL1q3ZJpkEbV+yLogDzCRAdOxJm4ndhtBNREsLA1/puRfWvzS9eioF2w43WT+hHgQ==} - engines: {node: '>=22.12.0'} - - '@commitlint/to-lines@21.0.1': - resolution: {integrity: sha512-bd1BFII7p1EQZre9Kaj+kKaMFP3cFCdt21K7DItVux9XP5WjLgJ0/Uy1pJJh9aPwVJ6SKg62PxqlZaHI8hQAXw==} - engines: {node: '>=22.12.0'} - - '@commitlint/top-level@21.0.2': - resolution: {integrity: sha512-s9KKM+e+mXgFeIh4n7KmOGAVT3mkJ3Fp1bBYHIK5pjeUwlEMzp/tZfb5u0Poa680AsQTXMEMRxZi1vQ9m2X5ug==} - engines: {node: '>=22.12.0'} - - '@commitlint/types@21.0.1': - resolution: {integrity: sha512-4u7w8jcoCUFWhjWnASYzZHAP34OqOtuFBN87nQmFvqda03YU0T6z+yB4w0gSAMpekiRqqGk5rt+qSlW+a2vSEg==} - engines: {node: '>=22.12.0'} - - '@conventional-changelog/git-client@2.7.0': - resolution: {integrity: sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw==} - engines: {node: '>=18'} + "@commitlint/config-conventional@21.0.2": + resolution: + { integrity: sha512-P/ZRhryQmkj0Z0dY9FOoRwe3xkwJyyAdtXwt01NT2kuZttcG2CNYp1q5Ci3u+nDT2jcbJRw2kt13Czl1qKNPfg== } + engines: { node: ">=22.12.0" } + + "@commitlint/config-validator@21.0.1": + resolution: + { integrity: sha512-Zd2UFdndeMMaW2O96HK0tdfT4gOImUvidMpAd/pws2zZ4m1nrAZ/9b/v2JYuE8fs86GpXv9F7LNaIuCIWhY+pA== } + engines: { node: ">=22.12.0" } + + "@commitlint/ensure@21.0.1": + resolution: + { integrity: sha512-jJ1037967wU7YN/xkv+iRlOBlmaOXPhPO5KQSqya6GyXzBlwuLzELBFao16DVg9dZyqmNrhewzwZ3SAibetHBQ== } + engines: { node: ">=22.12.0" } + + "@commitlint/execute-rule@21.0.1": + resolution: + { integrity: sha512-RifH+FmImozKBE6mozhF4K3r2RRKP7SMi/Q/zLCmExtp5e05lhHOUYqGBlFBAGNHaZxU/WYw1XuugYK9jQzqnA== } + engines: { node: ">=22.12.0" } + + "@commitlint/format@21.0.1": + resolution: + { integrity: sha512-ksmG2+cHGtuDPQQbhBbC4unwm444+6TiPw0d1bKf67hntgZqZ8E0g1MuYKUuyT5IH4IMmXZhKq22/Z3jBvtQIw== } + engines: { node: ">=22.12.0" } + + "@commitlint/is-ignored@21.0.2": + resolution: + { integrity: sha512-H5z4t8PC9tUsmZ/o+EptM3Nq8sTFtskAShdcqxCoyzklW5eaVT5xbrDAET2uypzir9Vsj4ZZmBtyKjYe2XqgeQ== } + engines: { node: ">=22.12.0" } + + "@commitlint/lint@21.0.2": + resolution: + { integrity: sha512-PnUmLYGeGLfW8oVatR9KpNxSHYAnJOEWlMZzfdeFOUq6WUrFx1fGQaWCWJqMoIll/xPM+GdfJV+tKHZVHhl0Fg== } + engines: { node: ">=22.12.0" } + + "@commitlint/load@21.0.2": + resolution: + { integrity: sha512-lwUE70hN0/qE/ZRROhbaX65ly/FF12DrqfReLCESo37M0OQCFAf2jRS+2tSCSORq+bm4Kdju7qNDj46uc1QzTA== } + engines: { node: ">=22.12.0" } + + "@commitlint/message@21.0.2": + resolution: + { integrity: sha512-5n4aqHGD/FNnom/D5L8i7cYtV+xjuXcBL832C3w9VglEsZzIsoHpJsvxzJ7cgiOsOdc/2jU4t5+7qMHh7GBX3g== } + engines: { node: ">=22.12.0" } + + "@commitlint/parse@21.0.2": + resolution: + { integrity: sha512-QVZJhGHTm+oiuWyEKOCTQ0ZM3mfJ0eGWFeHuj7WzSKEth+UukcCHac9GD8pgdFlg/qGkFWOtyaNd1T8REgagaw== } + engines: { node: ">=22.12.0" } + + "@commitlint/read@21.0.2": + resolution: + { integrity: sha512-BtsrnLVycSSKf4Q0gMch4giCj5NNlmcbhc8ra5vONgGtP2IjRDo33bEFtr5Pm+2N+5fXGWb2MksWPrspPfdhdw== } + engines: { node: ">=22.12.0" } + + "@commitlint/resolve-extends@21.0.1": + resolution: + { integrity: sha512-0DhjYWL6uYrY16Efa032fYk3woGJDU4AGWiG1XXltT9AMUNYKyb5cIZU2ivbaMZ3+kKFqUjikD2cjh66Sbh/Sg== } + engines: { node: ">=22.12.0" } + + "@commitlint/rules@21.0.2": + resolution: + { integrity: sha512-k6tQ69Td7t2qUSIbik8D3TL1q3ZJpkEbV+yLogDzCRAdOxJm4ndhtBNREsLA1/puRfWvzS9eioF2w43WT+hHgQ== } + engines: { node: ">=22.12.0" } + + "@commitlint/to-lines@21.0.1": + resolution: + { integrity: sha512-bd1BFII7p1EQZre9Kaj+kKaMFP3cFCdt21K7DItVux9XP5WjLgJ0/Uy1pJJh9aPwVJ6SKg62PxqlZaHI8hQAXw== } + engines: { node: ">=22.12.0" } + + "@commitlint/top-level@21.0.2": + resolution: + { integrity: sha512-s9KKM+e+mXgFeIh4n7KmOGAVT3mkJ3Fp1bBYHIK5pjeUwlEMzp/tZfb5u0Poa680AsQTXMEMRxZi1vQ9m2X5ug== } + engines: { node: ">=22.12.0" } + + "@commitlint/types@21.0.1": + resolution: + { integrity: sha512-4u7w8jcoCUFWhjWnASYzZHAP34OqOtuFBN87nQmFvqda03YU0T6z+yB4w0gSAMpekiRqqGk5rt+qSlW+a2vSEg== } + engines: { node: ">=22.12.0" } + + "@conventional-changelog/git-client@2.7.0": + resolution: + { integrity: sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw== } + engines: { node: ">=18" } peerDependencies: conventional-commits-filter: ^5.0.0 conventional-commits-parser: ^6.4.0 @@ -15894,379 +16712,445 @@ packages: conventional-commits-parser: optional: true - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + "@cspotcode/source-map-support@0.8.1": + resolution: + { integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== } + engines: { node: ">=12" } - '@csstools/cascade-layer-name-parser@1.0.13': - resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/cascade-layer-name-parser@1.0.13": + resolution: + { integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 - '@csstools/color-helpers@4.2.1': - resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/color-helpers@4.2.1": + resolution: + { integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw== } + engines: { node: ^14 || ^16 || >=18 } - '@csstools/color-helpers@5.1.0': - resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} - engines: {node: '>=18'} + "@csstools/color-helpers@5.1.0": + resolution: + { integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== } + engines: { node: ">=18" } - '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} - engines: {node: '>=20.19.0'} + "@csstools/color-helpers@6.0.2": + resolution: + { integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q== } + engines: { node: ">=20.19.0" } - '@csstools/css-calc@1.2.4': - resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/css-calc@1.2.4": + resolution: + { integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} + "@csstools/css-calc@2.1.4": + resolution: + { integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== } + engines: { node: ">=18" } peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + "@csstools/css-parser-algorithms": ^3.0.5 + "@csstools/css-tokenizer": ^3.0.4 - '@csstools/css-calc@3.2.1': - resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} - engines: {node: '>=20.19.0'} + "@csstools/css-calc@3.2.1": + resolution: + { integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg== } + engines: { node: ">=20.19.0" } peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 - '@csstools/css-color-parser@2.0.5': - resolution: {integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/css-color-parser@2.0.5": + resolution: + { integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 - '@csstools/css-color-parser@3.1.0': - resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} - engines: {node: '>=18'} + "@csstools/css-color-parser@3.1.0": + resolution: + { integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== } + engines: { node: ">=18" } peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + "@csstools/css-parser-algorithms": ^3.0.5 + "@csstools/css-tokenizer": ^3.0.4 - '@csstools/css-color-parser@4.1.1': - resolution: {integrity: sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==} - engines: {node: '>=20.19.0'} + "@csstools/css-color-parser@4.1.7": + resolution: + { integrity: sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ== } + engines: { node: ">=20.19.0" } peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 - '@csstools/css-parser-algorithms@2.7.1': - resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/css-parser-algorithms@2.7.1": + resolution: + { integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: - '@csstools/css-tokenizer': ^2.4.1 + "@csstools/css-tokenizer": ^2.4.1 - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} + "@csstools/css-parser-algorithms@3.0.5": + resolution: + { integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== } + engines: { node: ">=18" } peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 + "@csstools/css-tokenizer": ^3.0.4 - '@csstools/css-parser-algorithms@4.0.0': - resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} - engines: {node: '>=20.19.0'} + "@csstools/css-parser-algorithms@4.0.0": + resolution: + { integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w== } + engines: { node: ">=20.19.0" } peerDependencies: - '@csstools/css-tokenizer': ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.4': - resolution: {integrity: sha512-wgsqt92b7C7tQhIdPNxj0n9zuUbQlvAuI1exyzeNrOKOi62SD7ren8zqszmpVREjAOqg8cD2FqYhQfAuKjk4sw==} + "@csstools/css-syntax-patches-for-csstree@1.1.5": + resolution: + { integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A== } peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: css-tree: optional: true - '@csstools/css-tokenizer@2.4.1': - resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/css-tokenizer@2.4.1": + resolution: + { integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg== } + engines: { node: ^14 || ^16 || >=18 } - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} + "@csstools/css-tokenizer@3.0.4": + resolution: + { integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== } + engines: { node: ">=18" } - '@csstools/css-tokenizer@4.0.0': - resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} - engines: {node: '>=20.19.0'} + "@csstools/css-tokenizer@4.0.0": + resolution: + { integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA== } + engines: { node: ">=20.19.0" } - '@csstools/media-query-list-parser@2.1.13': - resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/media-query-list-parser@2.1.13": + resolution: + { integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 - '@csstools/media-query-list-parser@3.0.1': - resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} - engines: {node: '>=18'} + "@csstools/media-query-list-parser@3.0.1": + resolution: + { integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw== } + engines: { node: ">=18" } peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 + "@csstools/css-parser-algorithms": ^3.0.1 + "@csstools/css-tokenizer": ^3.0.1 - '@csstools/media-query-list-parser@4.0.3': - resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} - engines: {node: '>=18'} + "@csstools/media-query-list-parser@4.0.3": + resolution: + { integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== } + engines: { node: ">=18" } peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + "@csstools/css-parser-algorithms": ^3.0.5 + "@csstools/css-tokenizer": ^3.0.4 - '@csstools/postcss-cascade-layers@4.0.6': - resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-cascade-layers@4.0.6": + resolution: + { integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@3.0.19': - resolution: {integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-color-function@3.0.19": + resolution: + { integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@2.0.19': - resolution: {integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-color-mix-function@2.0.19": + resolution: + { integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@1.0.0': - resolution: {integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-content-alt-text@1.0.0": + resolution: + { integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@1.0.9': - resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-exponential-functions@1.0.9": + resolution: + { integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-font-format-keywords@3.0.2': - resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-font-format-keywords@3.0.2": + resolution: + { integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@1.0.11': - resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-gamut-mapping@1.0.11": + resolution: + { integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@4.0.20': - resolution: {integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-gradients-interpolation-method@4.0.20": + resolution: + { integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@3.0.18': - resolution: {integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-hwb-function@3.0.18": + resolution: + { integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@3.0.7': - resolution: {integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-ic-unit@3.0.7": + resolution: + { integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-initial@1.0.1': - resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-initial@1.0.1": + resolution: + { integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-is-pseudo-class@4.0.8': - resolution: {integrity: sha512-0aj591yGlq5Qac+plaWCbn5cpjs5Sh0daovYUKJUOMjIp70prGH/XPLp7QjxtbFXz3CTvb0H9a35dpEuIuUi3Q==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-is-pseudo-class@4.0.8": + resolution: + { integrity: sha512-0aj591yGlq5Qac+plaWCbn5cpjs5Sh0daovYUKJUOMjIp70prGH/XPLp7QjxtbFXz3CTvb0H9a35dpEuIuUi3Q== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@1.0.8': - resolution: {integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-light-dark-function@1.0.8": + resolution: + { integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-float-and-clear@2.0.1': - resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-logical-float-and-clear@2.0.1": + resolution: + { integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-overflow@1.0.1': - resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-logical-overflow@1.0.1": + resolution: + { integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-overscroll-behavior@1.0.1': - resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-logical-overscroll-behavior@1.0.1": + resolution: + { integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-resize@2.0.1': - resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-logical-resize@2.0.1": + resolution: + { integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@2.0.11': - resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-logical-viewport-units@2.0.11": + resolution: + { integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@1.1.8': - resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-media-minmax@1.1.8": + resolution: + { integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11': - resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11": + resolution: + { integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-nested-calc@3.0.2': - resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-nested-calc@3.0.2": + resolution: + { integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-normalize-display-values@3.0.2': - resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-normalize-display-values@3.0.2": + resolution: + { integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@3.0.19': - resolution: {integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-oklab-function@3.0.19": + resolution: + { integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@3.3.0': - resolution: {integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-progressive-custom-properties@3.3.0": + resolution: + { integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@2.0.19': - resolution: {integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-relative-color-syntax@2.0.19": + resolution: + { integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-scope-pseudo-class@3.0.1': - resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-scope-pseudo-class@3.0.1": + resolution: + { integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@3.0.10': - resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-stepped-value-functions@3.0.10": + resolution: + { integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@3.0.7': - resolution: {integrity: sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-text-decoration-shorthand@3.0.7": + resolution: + { integrity: sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@3.0.10': - resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-trigonometric-functions@3.0.10": + resolution: + { integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/postcss-unset-value@3.0.1': - resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/postcss-unset-value@3.0.1": + resolution: + { integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@csstools/selector-resolve-nested@1.1.0': - resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/selector-resolve-nested@1.1.0": + resolution: + { integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss-selector-parser: ^6.0.13 - '@csstools/selector-specificity@3.1.1': - resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/selector-specificity@3.1.1": + resolution: + { integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss-selector-parser: ^6.0.13 - '@csstools/selector-specificity@5.0.0': - resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} - engines: {node: '>=18'} + "@csstools/selector-specificity@5.0.0": + resolution: + { integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== } + engines: { node: ">=18" } peerDependencies: postcss-selector-parser: ^7.0.0 - '@csstools/utilities@1.0.0': - resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} - engines: {node: ^14 || ^16 || >=18} + "@csstools/utilities@1.0.0": + resolution: + { integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 - '@dabh/diagnostics@2.0.8': - resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + "@dabh/diagnostics@2.0.8": + resolution: + { integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q== } - '@datalust/winston-seq@3.0.1': - resolution: {integrity: sha512-jWJd5PKcj/nM5f1T65KJgKaxPJRADWe+GEWtj1yEji1H0ub4RWhBEDLYzIFdwUy365lxtc5njsakenp4Evmv+g==} + "@datalust/winston-seq@3.0.1": + resolution: + { integrity: sha512-jWJd5PKcj/nM5f1T65KJgKaxPJRADWe+GEWtj1yEji1H0ub4RWhBEDLYzIFdwUy365lxtc5njsakenp4Evmv+g== } peerDependencies: winston: ^3.17.0 - '@date-fns/tz@1.5.0': - resolution: {integrity: sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==} - - '@date-fns/utc@2.1.1': - resolution: {integrity: sha512-SlJDfG6RPeEX8wEVv6ZB3kak4MmbtyiI2qX/5zuKdordbrhB/iaJ58GVMZgJ6P1sJaM1gMgENFYYeg1JWrCFrA==} - - '@date-vir/duration@8.3.2': - resolution: {integrity: sha512-17LP5iSeFsXe5Gnggo71jzJi5Az3Laj2Gz6AWvkbMSmbJrkHAugNBVyKLrbxL7qsHwpTFdr2LGK5ncOH06fJ4Q==} - engines: {node: '>=22'} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@discoveryjs/json-ext@0.6.3': - resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} - engines: {node: '>=14.17.0'} - - '@discoveryjs/json-ext@1.1.0': - resolution: {integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA==} - engines: {node: '>=14.17.0'} - - '@docsearch/css@3.8.2': - resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} - - '@docsearch/js@3.8.2': - resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} - - '@docsearch/react@3.8.2': - resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0' - react-dom: '>= 16.8.0 < 19.0.0' - search-insights: '>= 1 < 3' + "@date-fns/tz@1.5.0": + resolution: + { integrity: sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg== } + + "@date-fns/utc@2.1.1": + resolution: + { integrity: sha512-SlJDfG6RPeEX8wEVv6ZB3kak4MmbtyiI2qX/5zuKdordbrhB/iaJ58GVMZgJ6P1sJaM1gMgENFYYeg1JWrCFrA== } + + "@date-vir/duration@8.5.0": + resolution: + { integrity: sha512-ZCrAGEJKSK0/FFID4EfJDbp5s+krrja9RFwxZ1ZwENGKd89umleZsO4YD75gQBKJvH0c3MXwCNV0NenVAPuj9Q== } + engines: { node: ">=22" } + + "@discoveryjs/json-ext@0.5.7": + resolution: + { integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== } + engines: { node: ">=10.0.0" } + + "@discoveryjs/json-ext@0.6.3": + resolution: + { integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== } + engines: { node: ">=14.17.0" } + + "@discoveryjs/json-ext@1.1.0": + resolution: + { integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA== } + engines: { node: ">=14.17.0" } + + "@docsearch/css@3.8.2": + resolution: + { integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== } + + "@docsearch/js@3.8.2": + resolution: + { integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ== } + + "@docsearch/react@3.8.2": + resolution: + { integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== } + peerDependencies: + "@types/react": ">= 16.8.0 < 19.0.0" + react: ">= 16.8.0 < 19.0.0" + react-dom: ">= 16.8.0 < 19.0.0" + search-insights: ">= 1 < 3" peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react: optional: true @@ -16275,2643 +17159,3160 @@ packages: search-insights: optional: true - '@dual-bundle/import-meta-resolve@4.2.1': - resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} + "@dual-bundle/import-meta-resolve@4.2.1": + resolution: + { integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg== } - '@dxup/nuxt@0.4.1': - resolution: {integrity: sha512-gtYffW6OfWNvoLW+XD3Mx/K8uUq08PMGLYJoDxc92EzZAWqR0FhcR5iaLm5r/OxyGTKz+P5f5Y7Aoir9+SjYaw==} + "@dxup/nuxt@0.4.1": + resolution: + { integrity: sha512-gtYffW6OfWNvoLW+XD3Mx/K8uUq08PMGLYJoDxc92EzZAWqR0FhcR5iaLm5r/OxyGTKz+P5f5Y7Aoir9+SjYaw== } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@dxup/unimport@0.1.2': - resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} + "@dxup/unimport@0.1.2": + resolution: + { integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ== } - '@electron/asar@4.2.0': - resolution: {integrity: sha512-npW1NW5yy8EB9XY/vEw9sUdgmq0sJEhmSBb6bqyFOAw1CSkrhvAvO6QWlW8CdIMo8VN1lkdF345l/MeW0LrY0Q==} - engines: {node: '>=22.12.0'} - hasBin: true + "@electron-internal/extract-zip@1.0.3": + resolution: + { integrity: sha512-OjKpjB7gohtEjZiq6nDx1egqjZJhGPN1iFOIED+NFhB/MMkXw/XRcHjh1DGXKT5z2W9eW7Jy2UKU3gpjvusFTQ== } + engines: { node: ">=22.12.0" } - '@electron/get@2.0.3': - resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} - engines: {node: '>=12'} + "@electron/asar@4.2.0": + resolution: + { integrity: sha512-npW1NW5yy8EB9XY/vEw9sUdgmq0sJEhmSBb6bqyFOAw1CSkrhvAvO6QWlW8CdIMo8VN1lkdF345l/MeW0LrY0Q== } + engines: { node: ">=22.12.0" } + hasBin: true - '@electron/get@5.0.0': - resolution: {integrity: sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==} - engines: {node: '>=22.12.0'} + "@electron/get@5.0.0": + resolution: + { integrity: sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA== } + engines: { node: ">=22.12.0" } - '@electron/notarize@3.1.1': - resolution: {integrity: sha512-uQQSlOiJnqRkTL1wlEBAxe90nVN/Fc/hEmk0bqpKk8nKjV1if/tXLHKUPePtv9Xsx90PtZU8aidx5lAiOpjkQQ==} - engines: {node: '>= 22.12.0'} + "@electron/notarize@3.1.1": + resolution: + { integrity: sha512-uQQSlOiJnqRkTL1wlEBAxe90nVN/Fc/hEmk0bqpKk8nKjV1if/tXLHKUPePtv9Xsx90PtZU8aidx5lAiOpjkQQ== } + engines: { node: ">= 22.12.0" } - '@electron/osx-sign@2.4.0': - resolution: {integrity: sha512-9mJiKF/yrn2FYt1Pd9hIN8bUWs6w6uhm8DJJ/tZtTPMVmqv9/NO1JvRh+NyOJp8kE2bfffK4YkU3ZyM+rHipUw==} - engines: {node: '>=22.12.0'} + "@electron/osx-sign@2.4.0": + resolution: + { integrity: sha512-9mJiKF/yrn2FYt1Pd9hIN8bUWs6w6uhm8DJJ/tZtTPMVmqv9/NO1JvRh+NyOJp8kE2bfffK4YkU3ZyM+rHipUw== } + engines: { node: ">=22.12.0" } hasBin: true - '@electron/packager@20.0.0': - resolution: {integrity: sha512-kl4c4LcsrQflg0wAi3mqpmmZFRdTYoZFLZPBP9YeEIvWwQR1NmkZphwT7558UeLOdhr6Ac5l83r8W69KaJBedg==} - engines: {node: '>= 22.12.0'} + "@electron/packager@20.0.1": + resolution: + { integrity: sha512-Fz45favukZRRPCXU49hbi/15GFFlxYWtlbH7AXLY1A9tQw15c8hKhs26d431sbUvKrFicuKLpYnKaOGNPoOfjw== } + engines: { node: ">= 22.12.0" } hasBin: true - '@electron/universal@3.0.4': - resolution: {integrity: sha512-G7mNdfZIdPbx54dTorGlV7SN7nHAKlbJU1NjjeuEo7RzEMYBG62+tKpA2VrzocGcvFLxqJI5XYIknca9EijwOw==} - engines: {node: '>=22.12.0'} + "@electron/universal@3.0.4": + resolution: + { integrity: sha512-G7mNdfZIdPbx54dTorGlV7SN7nHAKlbJU1NjjeuEo7RzEMYBG62+tKpA2VrzocGcvFLxqJI5XYIknca9EijwOw== } + engines: { node: ">=22.12.0" } - '@electron/windows-sign@2.0.3': - resolution: {integrity: sha512-lJGpt2artEZNiOsQtU1JmcLr4Ow/AGskwjTTNaxL2+R2wLN7G2BHL4Z9unOoW321N69kBP1nzObSMdDbQydjbA==} - engines: {node: '>=22.12.0'} + "@electron/windows-sign@2.0.3": + resolution: + { integrity: sha512-lJGpt2artEZNiOsQtU1JmcLr4Ow/AGskwjTTNaxL2+R2wLN7G2BHL4Z9unOoW321N69kBP1nzObSMdDbQydjbA== } + engines: { node: ">=22.12.0" } hasBin: true - '@ember-data/rfc395-data@0.0.4': - resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==} + "@ember-data/rfc395-data@0.0.4": + resolution: + { integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ== } - '@ember-tooling/blueprint-blueprint@0.2.1': - resolution: {integrity: sha512-eZ5qicL3gfFFbmzLaSiEWPSmoRUJGnqg+dQmU0R81vv+0Ni7W/cS7MXx1l4HpN9B7Yg4M9GgdQTkeJnb6abQug==} + "@ember-tooling/blueprint-blueprint@0.3.0": + resolution: + { integrity: sha512-9mwMGda8OC9oEJbvxnXX1DT5ZFR6YQumfmPwV+uUJCbGsaUkgr1UeTkcpgdL+Izvb4kjF/+BWcOtnaSvmR7Yig== } - '@ember-tooling/blueprint-model@0.5.0': - resolution: {integrity: sha512-2zAebSmmzpUO2wt6EyfX5TlcmvB9cTkteuZ3QhPmXLMthUpU5nUifcz3hlYcXPK7WM0HdO9qL4GdGQCoxhzaGg==} + "@ember-tooling/blueprint-model@0.6.3": + resolution: + { integrity: sha512-Cn38jhmsyOTT/3ecJcyKRQqTbGYA4TFx/mbi8DY0a/vP29A7tnycpvPQ3uwqWT3y/Pj3LOrs5QvRPLeZMZfeFg== } - '@ember-tooling/classic-build-addon-blueprint@6.12.0': - resolution: {integrity: sha512-2sf34DIJO6RnpzcQy0A4RmGNwukE4vihHv/b9loDZzV4lnFNOTyHua09S5ai4szO7Iv91Q2OPEgOBo09yG+7SQ==} + "@ember-tooling/classic-build-addon-blueprint@7.0.0": + resolution: + { integrity: sha512-P2eTo8n/hE0Bn8xBfTGi8vsen9N6k8NqwHqT2CA1VYaXTB46euRC1R3gwgPhrapdbDMlij0G2pB6MKV9luPflg== } - '@ember-tooling/classic-build-app-blueprint@6.12.0': - resolution: {integrity: sha512-dU6ig33VN+SA2yrkyJGdCMzJ6hB0fRVXpcSpnmWl2RI7TQCxlQsYR162BkMUdRN6ZWbycalDjWGW0r8KrIxzgA==} + "@ember-tooling/classic-build-app-blueprint@7.0.0": + resolution: + { integrity: sha512-kXpRaqBbYrhA+g85dbclmtuURjagt87+VQ24crKxNJ4xvklgxTLdpCsHwbRBjUdwUyWGuxCiveBoI6XSZfw8kw== } - '@ember/app-blueprint@6.12.3': - resolution: {integrity: sha512-Bf950zkgbKn6/pMunLTk/mkqInHU8CaNTvjR/umX1CjUNFRPTZPQb19OhstlBYTl+99jUN3feZ0xfuOt1t6c7A==} + "@ember/app-blueprint@7.0.1": + resolution: + { integrity: sha512-dEYVhrQU/kImyxLk4AsDU9IU3Am9Vsa/cL7SKx5qG5xgQFFJRV+40mXUoebA8TiWPLQ6rqT0Dp0VHXLQ+JxwMg== } - '@ember/edition-utils@1.2.0': - resolution: {integrity: sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==} + "@ember/edition-utils@1.2.0": + resolution: + { integrity: sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog== } - '@ember/optional-features@3.0.0': - resolution: {integrity: sha512-HMQqZoBb16I4NyHfQglIYjopSG6folcEJah2WPa0FuolWRA/8cS5ozQmFK5BQx7cijTQJxj6viLpQK9KrXuYdw==} - engines: {node: '>= 20.19'} + "@ember/optional-features@3.0.0": + resolution: + { integrity: sha512-HMQqZoBb16I4NyHfQglIYjopSG6folcEJah2WPa0FuolWRA/8cS5ozQmFK5BQx7cijTQJxj6viLpQK9KrXuYdw== } + engines: { node: ">= 20.19" } - '@ember/test-helpers@5.4.2': - resolution: {integrity: sha512-ZT++x8DbixXgvxO00J064rzNcsn9WycMPisNvee6dg9u6G4Z1yx0Hc8HqUFBJP7NyxVKZCokHlRWRQuz9S6wvQ==} + "@ember/test-helpers@5.4.3": + resolution: + { integrity: sha512-WeNABJsXBidEXP87AH5gaI/KAyb0zEUYJxWa31A/Us5lqg85E3tPlHjBwCrlReOrJbSgvvArMnrdCwt7TRpjPQ== } - '@ember/test-waiters@4.1.1': - resolution: {integrity: sha512-HbK70JYCDJcGI0CrwcbjeL2QHAn0HLwa3oGep7mr6l/yO95U7JYA8VN+/9VTsWJTmKueLtWayUqEmGS3a3mVOg==} + "@ember/test-waiters@4.1.2": + resolution: + { integrity: sha512-zJwFaHLHjJn6mKoXYVM1SEyMT+U1JpaaSKg3JBmxHJwiIoJRI5djJ/CE33Z7N09mk5JfXd2xdhbd9LBWdlvAzg== } - '@embroider/addon-shim@1.10.2': - resolution: {integrity: sha512-EfI9cJ5/3QSUJtwm7x1MXrx3TEa2p7RNgSHefy7fvGm8/DP1xUFL25nST1NaHbHcqR1UhMlrTtv5iUIDoVzeQQ==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/addon-shim@1.10.3": + resolution: + { integrity: sha512-GYbaiC1v9inbiwVg5s+Sd14Jc66NYxg23mEOocgWAZFCtOfhMnRLaLAA6SytW76myVVYImGHX5PFK4PVuH2yng== } + engines: { node: 12.* || 14.* || >= 16 } - '@embroider/macros@1.20.2': - resolution: {integrity: sha512-WJWSkG9vIL0s93vKwtNFqqAOCOflNkWNpqsC7VAqXeeTKNpCc7wtdOhPkNGJpb52CEt7vlQ5R/zMyCfGAB7MEA==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/macros@1.20.4": + resolution: + { integrity: sha512-R83kUvMXRNPtFSCyplyBEF6FFYCCclQf4epT3mPBo/GfmchxtChOSNYz/skyhpbhnD47WIW1A+aROXBQPlKI8A== } + engines: { node: 12.* || 14.* || >= 16 } peerDependencies: - '@glint/template': ^1.0.0 + "@glint/template": ^1.0.0 peerDependenciesMeta: - '@glint/template': + "@glint/template": optional: true - '@embroider/reverse-exports@0.2.0': - resolution: {integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/reverse-exports@0.2.0": + resolution: + { integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg== } + engines: { node: 12.* || 14.* || >= 16 } - '@embroider/shared-internals@2.9.2': - resolution: {integrity: sha512-d96ub/WkS1Gx6dRDxZ0mCRPwFAHIMlMr2iti6uTYxTFzC85Wgt6j7bYr6ppkEuwEwKQVyzKRT0kTsJz6P74caQ==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/shared-internals@2.9.2": + resolution: + { integrity: sha512-d96ub/WkS1Gx6dRDxZ0mCRPwFAHIMlMr2iti6uTYxTFzC85Wgt6j7bYr6ppkEuwEwKQVyzKRT0kTsJz6P74caQ== } + engines: { node: 12.* || 14.* || >= 16 } - '@embroider/shared-internals@3.0.2': - resolution: {integrity: sha512-/SusdG+zgosc3t+9sPFVKSFOYyiSgLfXOT6lYNWoG1YtnhWDxlK4S8leZ0jhcVjemdaHln5rTyxCnq8oFLxqpQ==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/shared-internals@3.1.1": + resolution: + { integrity: sha512-IlxD8okTt9cRUFpJKD8gTuQUBuEflrhCUju1xZFdYvmGm5XVqHPfG4I6+bEdKb8NO92aqHxr9SYuYibDmpMM9w== } + engines: { node: 12.* || 14.* || >= 16 } - '@embroider/test-setup@4.0.0': - resolution: {integrity: sha512-1S3Ebk0CEh3XDqD93AWSwQZBCk+oGv03gtkaGgdgyXGIR7jrVyDgEnEuslN/hJ0cuU8TqhiXrzHMw7bJwIGhWw==} - engines: {node: 12.* || 14.* || >= 16} + "@embroider/test-setup@4.0.0": + resolution: + { integrity: sha512-1S3Ebk0CEh3XDqD93AWSwQZBCk+oGv03gtkaGgdgyXGIR7jrVyDgEnEuslN/hJ0cuU8TqhiXrzHMw7bJwIGhWw== } + engines: { node: 12.* || 14.* || >= 16 } peerDependencies: - '@embroider/compat': ^3.4.8 - '@embroider/core': ^3.4.8 - '@embroider/webpack': ^4.0.0 + "@embroider/compat": ^3.4.8 + "@embroider/core": ^3.4.8 + "@embroider/webpack": ^4.0.0 peerDependenciesMeta: - '@embroider/compat': + "@embroider/compat": optional: true - '@embroider/core': + "@embroider/core": optional: true - '@embroider/webpack': + "@embroider/webpack": optional: true - '@emmetio/abbreviation@2.3.3': - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + "@emmetio/abbreviation@2.3.3": + resolution: + { integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA== } + + "@emmetio/css-abbreviation@2.1.8": + resolution: + { integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw== } + + "@emmetio/css-parser@0.4.1": + resolution: + { integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ== } + + "@emmetio/html-matcher@1.3.0": + resolution: + { integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ== } + + "@emmetio/scanner@1.0.4": + resolution: + { integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA== } - '@emmetio/css-abbreviation@2.1.8': - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + "@emmetio/stream-reader-utils@0.1.0": + resolution: + { integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A== } - '@emmetio/css-parser@0.4.1': - resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} + "@emmetio/stream-reader@2.2.0": + resolution: + { integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw== } - '@emmetio/html-matcher@1.3.0': - resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + "@emnapi/core@1.10.0": + resolution: + { integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw== } - '@emmetio/scanner@1.0.4': - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + "@emnapi/core@1.11.0": + resolution: + { integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q== } - '@emmetio/stream-reader-utils@0.1.0': - resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + "@emnapi/core@1.4.5": + resolution: + { integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q== } - '@emmetio/stream-reader@2.2.0': - resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + "@emnapi/core@1.9.2": + resolution: + { integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA== } - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + "@emnapi/runtime@1.10.0": + resolution: + { integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA== } - '@emnapi/core@1.4.5': - resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} + "@emnapi/runtime@1.11.0": + resolution: + { integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg== } - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + "@emnapi/runtime@1.11.1": + resolution: + { integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw== } - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + "@emnapi/runtime@1.4.5": + resolution: + { integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg== } - '@emnapi/runtime@1.4.5': - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + "@emnapi/runtime@1.9.2": + resolution: + { integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw== } - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + "@emnapi/wasi-threads@1.0.4": + resolution: + { integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g== } - '@emnapi/wasi-threads@1.0.4': - resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + "@emnapi/wasi-threads@1.2.1": + resolution: + { integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w== } - '@emnapi/wasi-threads@1.2.1': - resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + "@emnapi/wasi-threads@1.2.2": + resolution: + { integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA== } - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + "@emotion/babel-plugin@11.13.5": + resolution: + { integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ== } - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + "@emotion/cache@11.14.0": + resolution: + { integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== } - '@emotion/css@11.13.5': - resolution: {integrity: sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==} + "@emotion/css@11.13.5": + resolution: + { integrity: sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w== } - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + "@emotion/hash@0.9.2": + resolution: + { integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== } - '@emotion/is-prop-valid@1.4.0': - resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} + "@emotion/is-prop-valid@1.4.0": + resolution: + { integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw== } - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + "@emotion/memoize@0.9.0": + resolution: + { integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== } - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + "@emotion/react@11.14.0": + resolution: + { integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== } peerDependencies: - '@types/react': '*' - react: '>=16.8.0' + "@types/react": "*" + react: ">=16.8.0" peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + "@emotion/serialize@1.3.3": + resolution: + { integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA== } - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + "@emotion/sheet@1.4.0": + resolution: + { integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== } - '@emotion/styled@11.14.1': - resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==} + "@emotion/styled@11.14.1": + resolution: + { integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw== } peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' + "@emotion/react": ^11.0.0-rc.0 + "@types/react": "*" + react: ">=16.8.0" peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + "@emotion/unitless@0.10.0": + resolution: + { integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg== } - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + "@emotion/use-insertion-effect-with-fallbacks@1.2.0": + resolution: + { integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg== } peerDependencies: - react: '>=16.8.0' + react: ">=16.8.0" - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + "@emotion/utils@1.4.2": + resolution: + { integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA== } - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + "@emotion/weak-memoize@0.4.0": + resolution: + { integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== } - '@epic-web/invariant@1.0.0': - resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + "@epic-web/invariant@1.0.0": + resolution: + { integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA== } - '@es-joy/jsdoccomment@0.50.2': - resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} - engines: {node: '>=18'} + "@es-joy/jsdoccomment@0.50.2": + resolution: + { integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA== } + engines: { node: ">=18" } - '@es-joy/jsdoccomment@0.86.0': - resolution: {integrity: sha512-ukZmRQ81WiTpDWO6D/cTBM7XbrNtutHKvAVnZN/8pldAwLoJArGOvkNyxPTBGsPjsoaQBJxlH+tE2TNA/92Qgw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@es-joy/jsdoccomment@0.87.0": + resolution: + { integrity: sha512-mFXZloZMzuJZXSHUmAFu/pXTk0ZJTJBluuAkrvbzidpTN8W6F2bpRFuedSH+85kbdlRLJqc+gfN+kD3JOLJK5g== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@es-joy/resolve.exports@1.2.0': - resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} - engines: {node: '>=10'} + "@es-joy/resolve.exports@1.2.0": + resolution: + { integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g== } + engines: { node: ">=10" } - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + "@esbuild/aix-ppc64@0.21.5": + resolution: + { integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== } + engines: { node: ">=12" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} + "@esbuild/aix-ppc64@0.25.12": + resolution: + { integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} - engines: {node: '>=18'} + "@esbuild/aix-ppc64@0.27.7": + resolution: + { integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg== } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} - engines: {node: '>=18'} + "@esbuild/aix-ppc64@0.28.0": + resolution: + { integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.28.0': - resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} - engines: {node: '>=18'} + "@esbuild/aix-ppc64@0.28.1": + resolution: + { integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.21.5": + resolution: + { integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== } + engines: { node: ">=12" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} + "@esbuild/android-arm64@0.25.12": + resolution: + { integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} - engines: {node: '>=18'} + "@esbuild/android-arm64@0.27.7": + resolution: + { integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ== } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} - engines: {node: '>=18'} + "@esbuild/android-arm64@0.28.0": + resolution: + { integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.28.0': - resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} - engines: {node: '>=18'} + "@esbuild/android-arm64@0.28.1": + resolution: + { integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.21.5": + resolution: + { integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== } + engines: { node: ">=12" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} + "@esbuild/android-arm@0.25.12": + resolution: + { integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} - engines: {node: '>=18'} + "@esbuild/android-arm@0.27.7": + resolution: + { integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ== } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} - engines: {node: '>=18'} + "@esbuild/android-arm@0.28.0": + resolution: + { integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.28.0': - resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} - engines: {node: '>=18'} + "@esbuild/android-arm@0.28.1": + resolution: + { integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.21.5": + resolution: + { integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} + "@esbuild/android-x64@0.25.12": + resolution: + { integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== } + engines: { node: ">=18" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} - engines: {node: '>=18'} + "@esbuild/android-x64@0.27.7": + resolution: + { integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg== } + engines: { node: ">=18" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} - engines: {node: '>=18'} + "@esbuild/android-x64@0.28.0": + resolution: + { integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== } + engines: { node: ">=18" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.28.0': - resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} - engines: {node: '>=18'} + "@esbuild/android-x64@0.28.1": + resolution: + { integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== } + engines: { node: ">=18" } cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.21.5": + resolution: + { integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} + "@esbuild/darwin-arm64@0.25.12": + resolution: + { integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} - engines: {node: '>=18'} + "@esbuild/darwin-arm64@0.27.7": + resolution: + { integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw== } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} - engines: {node: '>=18'} + "@esbuild/darwin-arm64@0.28.0": + resolution: + { integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.28.0': - resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} - engines: {node: '>=18'} + "@esbuild/darwin-arm64@0.28.1": + resolution: + { integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.21.5": + resolution: + { integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} + "@esbuild/darwin-x64@0.25.12": + resolution: + { integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} - engines: {node: '>=18'} + "@esbuild/darwin-x64@0.27.7": + resolution: + { integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ== } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} - engines: {node: '>=18'} + "@esbuild/darwin-x64@0.28.0": + resolution: + { integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.28.0': - resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} - engines: {node: '>=18'} + "@esbuild/darwin-x64@0.28.1": + resolution: + { integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.21.5": + resolution: + { integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} + "@esbuild/freebsd-arm64@0.25.12": + resolution: + { integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} - engines: {node: '>=18'} + "@esbuild/freebsd-arm64@0.27.7": + resolution: + { integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w== } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} - engines: {node: '>=18'} + "@esbuild/freebsd-arm64@0.28.0": + resolution: + { integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.28.0': - resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} - engines: {node: '>=18'} + "@esbuild/freebsd-arm64@0.28.1": + resolution: + { integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + "@esbuild/freebsd-x64@0.21.5": + resolution: + { integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} + "@esbuild/freebsd-x64@0.25.12": + resolution: + { integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} - engines: {node: '>=18'} + "@esbuild/freebsd-x64@0.27.7": + resolution: + { integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ== } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} - engines: {node: '>=18'} + "@esbuild/freebsd-x64@0.28.0": + resolution: + { integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.28.0': - resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} - engines: {node: '>=18'} + "@esbuild/freebsd-x64@0.28.1": + resolution: + { integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.21.5": + resolution: + { integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== } + engines: { node: ">=12" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} + "@esbuild/linux-arm64@0.25.12": + resolution: + { integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} - engines: {node: '>=18'} + "@esbuild/linux-arm64@0.27.7": + resolution: + { integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A== } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} - engines: {node: '>=18'} + "@esbuild/linux-arm64@0.28.0": + resolution: + { integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.28.0': - resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} - engines: {node: '>=18'} + "@esbuild/linux-arm64@0.28.1": + resolution: + { integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.21.5": + resolution: + { integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== } + engines: { node: ">=12" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} + "@esbuild/linux-arm@0.25.12": + resolution: + { integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} - engines: {node: '>=18'} + "@esbuild/linux-arm@0.27.7": + resolution: + { integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA== } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} - engines: {node: '>=18'} + "@esbuild/linux-arm@0.28.0": + resolution: + { integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.28.0': - resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} - engines: {node: '>=18'} + "@esbuild/linux-arm@0.28.1": + resolution: + { integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.21.5": + resolution: + { integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} + "@esbuild/linux-ia32@0.25.12": + resolution: + { integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} - engines: {node: '>=18'} + "@esbuild/linux-ia32@0.27.7": + resolution: + { integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg== } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} - engines: {node: '>=18'} + "@esbuild/linux-ia32@0.28.0": + resolution: + { integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.28.0': - resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} - engines: {node: '>=18'} + "@esbuild/linux-ia32@0.28.1": + resolution: + { integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.21.5": + resolution: + { integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} + "@esbuild/linux-loong64@0.25.12": + resolution: + { integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} - engines: {node: '>=18'} + "@esbuild/linux-loong64@0.27.7": + resolution: + { integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q== } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} - engines: {node: '>=18'} + "@esbuild/linux-loong64@0.28.0": + resolution: + { integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.28.0': - resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} - engines: {node: '>=18'} + "@esbuild/linux-loong64@0.28.1": + resolution: + { integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.21.5": + resolution: + { integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} + "@esbuild/linux-mips64el@0.25.12": + resolution: + { integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} - engines: {node: '>=18'} + "@esbuild/linux-mips64el@0.27.7": + resolution: + { integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw== } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} - engines: {node: '>=18'} + "@esbuild/linux-mips64el@0.28.0": + resolution: + { integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.28.0': - resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} - engines: {node: '>=18'} + "@esbuild/linux-mips64el@0.28.1": + resolution: + { integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + "@esbuild/linux-ppc64@0.21.5": + resolution: + { integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} + "@esbuild/linux-ppc64@0.25.12": + resolution: + { integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} - engines: {node: '>=18'} + "@esbuild/linux-ppc64@0.27.7": + resolution: + { integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ== } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} - engines: {node: '>=18'} + "@esbuild/linux-ppc64@0.28.0": + resolution: + { integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.28.0': - resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} - engines: {node: '>=18'} + "@esbuild/linux-ppc64@0.28.1": + resolution: + { integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.21.5": + resolution: + { integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} + "@esbuild/linux-riscv64@0.25.12": + resolution: + { integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} - engines: {node: '>=18'} + "@esbuild/linux-riscv64@0.27.7": + resolution: + { integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ== } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} - engines: {node: '>=18'} + "@esbuild/linux-riscv64@0.28.0": + resolution: + { integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.28.0': - resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} - engines: {node: '>=18'} + "@esbuild/linux-riscv64@0.28.1": + resolution: + { integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.21.5": + resolution: + { integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} + "@esbuild/linux-s390x@0.25.12": + resolution: + { integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} - engines: {node: '>=18'} + "@esbuild/linux-s390x@0.27.7": + resolution: + { integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw== } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} - engines: {node: '>=18'} + "@esbuild/linux-s390x@0.28.0": + resolution: + { integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.28.0': - resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} - engines: {node: '>=18'} + "@esbuild/linux-s390x@0.28.1": + resolution: + { integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + "@esbuild/linux-x64@0.21.5": + resolution: + { integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== } + engines: { node: ">=12" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} + "@esbuild/linux-x64@0.25.12": + resolution: + { integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} - engines: {node: '>=18'} + "@esbuild/linux-x64@0.27.7": + resolution: + { integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA== } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} - engines: {node: '>=18'} + "@esbuild/linux-x64@0.28.0": + resolution: + { integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.28.0': - resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} - engines: {node: '>=18'} + "@esbuild/linux-x64@0.28.1": + resolution: + { integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} + "@esbuild/netbsd-arm64@0.25.12": + resolution: + { integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== } + engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} - engines: {node: '>=18'} + "@esbuild/netbsd-arm64@0.27.7": + resolution: + { integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w== } + engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} - engines: {node: '>=18'} + "@esbuild/netbsd-arm64@0.28.0": + resolution: + { integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== } + engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.28.0': - resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} - engines: {node: '>=18'} + "@esbuild/netbsd-arm64@0.28.1": + resolution: + { integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== } + engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.21.5": + resolution: + { integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} + "@esbuild/netbsd-x64@0.25.12": + resolution: + { integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} - engines: {node: '>=18'} + "@esbuild/netbsd-x64@0.27.7": + resolution: + { integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw== } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} - engines: {node: '>=18'} + "@esbuild/netbsd-x64@0.28.0": + resolution: + { integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.28.0': - resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} - engines: {node: '>=18'} + "@esbuild/netbsd-x64@0.28.1": + resolution: + { integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} + "@esbuild/openbsd-arm64@0.25.12": + resolution: + { integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== } + engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} - engines: {node: '>=18'} + "@esbuild/openbsd-arm64@0.27.7": + resolution: + { integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A== } + engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} - engines: {node: '>=18'} + "@esbuild/openbsd-arm64@0.28.0": + resolution: + { integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== } + engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.28.0': - resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} - engines: {node: '>=18'} + "@esbuild/openbsd-arm64@0.28.1": + resolution: + { integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== } + engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.21.5": + resolution: + { integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} + "@esbuild/openbsd-x64@0.25.12": + resolution: + { integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} - engines: {node: '>=18'} + "@esbuild/openbsd-x64@0.27.7": + resolution: + { integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg== } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} - engines: {node: '>=18'} + "@esbuild/openbsd-x64@0.28.0": + resolution: + { integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.28.0': - resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} - engines: {node: '>=18'} + "@esbuild/openbsd-x64@0.28.1": + resolution: + { integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} + "@esbuild/openharmony-arm64@0.25.12": + resolution: + { integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== } + engines: { node: ">=18" } cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} - engines: {node: '>=18'} + "@esbuild/openharmony-arm64@0.27.7": + resolution: + { integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw== } + engines: { node: ">=18" } cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} - engines: {node: '>=18'} + "@esbuild/openharmony-arm64@0.28.0": + resolution: + { integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== } + engines: { node: ">=18" } cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.28.0': - resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} - engines: {node: '>=18'} + "@esbuild/openharmony-arm64@0.28.1": + resolution: + { integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== } + engines: { node: ">=18" } cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + "@esbuild/sunos-x64@0.21.5": + resolution: + { integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== } + engines: { node: ">=12" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} + "@esbuild/sunos-x64@0.25.12": + resolution: + { integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} - engines: {node: '>=18'} + "@esbuild/sunos-x64@0.27.7": + resolution: + { integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA== } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} - engines: {node: '>=18'} + "@esbuild/sunos-x64@0.28.0": + resolution: + { integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.28.0': - resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} - engines: {node: '>=18'} + "@esbuild/sunos-x64@0.28.1": + resolution: + { integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.21.5": + resolution: + { integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} + "@esbuild/win32-arm64@0.25.12": + resolution: + { integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} - engines: {node: '>=18'} + "@esbuild/win32-arm64@0.27.7": + resolution: + { integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA== } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} - engines: {node: '>=18'} + "@esbuild/win32-arm64@0.28.0": + resolution: + { integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.28.0': - resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} - engines: {node: '>=18'} + "@esbuild/win32-arm64@0.28.1": + resolution: + { integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + "@esbuild/win32-ia32@0.21.5": + resolution: + { integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== } + engines: { node: ">=12" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} + "@esbuild/win32-ia32@0.25.12": + resolution: + { integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} - engines: {node: '>=18'} + "@esbuild/win32-ia32@0.27.7": + resolution: + { integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw== } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} - engines: {node: '>=18'} + "@esbuild/win32-ia32@0.28.0": + resolution: + { integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.28.0': - resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} - engines: {node: '>=18'} + "@esbuild/win32-ia32@0.28.1": + resolution: + { integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.21.5": + resolution: + { integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== } + engines: { node: ">=12" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} + "@esbuild/win32-x64@0.25.12": + resolution: + { integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} - engines: {node: '>=18'} + "@esbuild/win32-x64@0.27.7": + resolution: + { integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg== } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} - engines: {node: '>=18'} + "@esbuild/win32-x64@0.28.0": + resolution: + { integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.28.0': - resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} - engines: {node: '>=18'} + "@esbuild/win32-x64@0.28.1": + resolution: + { integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@eslint-community/eslint-plugin-eslint-comments@4.7.1': - resolution: {integrity: sha512-Ql2nJFwA8wUGpILYGOQaT1glPsmvEwE0d+a+l7AALLzQvInqdbXJdx7aSu0DpUX9dB1wMVBMhm99/++S3MdEtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + "@eslint-community/eslint-plugin-eslint-comments@4.7.2": + resolution: + { integrity: sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + "@eslint-community/eslint-utils@4.9.1": + resolution: + { integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + "@eslint-community/regexpp@4.12.2": + resolution: + { integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - '@eslint/compat@2.1.0': - resolution: {integrity: sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/compat@2.1.0": + resolution: + { integrity: sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } peerDependencies: eslint: ^8.40 || 9 || 10 peerDependenciesMeta: eslint: optional: true - '@eslint/config-array@0.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/config-array@0.23.5": + resolution: + { integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@eslint/config-helpers@0.6.0': - resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/config-helpers@0.6.0": + resolution: + { integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/core@1.2.1": + resolution: + { integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/js@10.0.1": + resolution: + { integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } peerDependencies: eslint: ^10.0.0 peerDependenciesMeta: eslint: optional: true - '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/js@9.39.4": + resolution: + { integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@eslint/plugin-kit@0.7.2': - resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + "@eslint/object-schema@3.0.5": + resolution: + { integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@esm-bundle/chai@4.3.4-fix.0': - resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} + "@eslint/plugin-kit@0.7.2": + resolution: + { integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@exodus/bytes@1.15.1': - resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + "@esm-bundle/chai@4.3.4-fix.0": + resolution: + { integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw== } + + "@exodus/bytes@1.15.1": + resolution: + { integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } peerDependencies: - '@noble/hashes': ^1.8.0 || ^2.0.0 + "@noble/hashes": ^1.8.0 || ^2.0.0 peerDependenciesMeta: - '@noble/hashes': + "@noble/hashes": optional: true - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + "@floating-ui/core@1.7.5": + resolution: + { integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ== } - '@floating-ui/react-dom@2.0.8': - resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + "@floating-ui/dom@1.7.6": + resolution: + { integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ== } - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + "@floating-ui/react-dom@2.1.8": + resolution: + { integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A== } peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - - '@fontsource/fira-mono@5.2.7': - resolution: {integrity: sha512-wYrAn6i3nH6luqQBZxtWUpl4UTUvs9AEbEeZxksPMwIqyjRRaxHTNW3c2VfM50gabS2IS7pT8lVWS2USB4ukYA==} - - '@formatjs/ecma402-abstract@2.3.6': - resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} - - '@formatjs/fast-memoize@2.2.7': - resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - - '@formatjs/icu-messageformat-parser@2.11.4': - resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} - - '@formatjs/icu-skeleton-parser@1.8.16': - resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} - - '@formatjs/intl-localematcher@0.6.2': - resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - - '@fortawesome/fontawesome-free@6.7.2': - resolution: {integrity: sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==} - engines: {node: '>=6'} - - '@fortawesome/fontawesome-free@7.2.0': - resolution: {integrity: sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==} - engines: {node: '>=6'} - - '@gar/promise-retry@1.0.3': - resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - - '@gerrit0/mini-shiki@3.23.0': - resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} - - '@glimmer/component@1.1.2': - resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} - engines: {node: 6.* || 8.* || >= 10.*} - - '@glimmer/component@2.1.1': - resolution: {integrity: sha512-zFZFaMbWy+9WOcDg/kCgrkGgqkLT39EE4FgyFD0MIkQO5coQsrRZyLsiBu1tbchyM+8hT8jAv+EQVUd8u+MdSQ==} - engines: {node: '>= 18'} - - '@glimmer/di@0.1.11': - resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==} - - '@glimmer/env@0.1.7': - resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==} - - '@glimmer/interfaces@0.94.6': - resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==} - - '@glimmer/syntax@0.95.0': - resolution: {integrity: sha512-W/PHdODnpONsXjbbdY9nedgIHpglMfOzncf/moLVrKIcCfeQhw2vG07Rs/YW8KeJCgJRCLkQsi+Ix7XvrurGAg==} + react: ">=16.8.0" + react-dom: ">=16.8.0" - '@glimmer/tracking@1.1.2': - resolution: {integrity: sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA==} + "@floating-ui/utils@0.2.11": + resolution: + { integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg== } - '@glimmer/util@0.44.0': - resolution: {integrity: sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg==} + "@fontsource/fira-mono@5.2.7": + resolution: + { integrity: sha512-wYrAn6i3nH6luqQBZxtWUpl4UTUvs9AEbEeZxksPMwIqyjRRaxHTNW3c2VfM50gabS2IS7pT8lVWS2USB4ukYA== } - '@glimmer/util@0.94.8': - resolution: {integrity: sha512-HfCKeZ74clF9BsPDBOqK/yRNa/ke6niXFPM6zRn9OVYw+ZAidLs7V8He/xljUHlLRL322kaZZY8XxRW7ALEwyg==} + "@formatjs/ecma402-abstract@2.3.6": + resolution: + { integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw== } - '@glimmer/validator@0.44.0': - resolution: {integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==} + "@formatjs/fast-memoize@2.2.7": + resolution: + { integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ== } - '@glimmer/wire-format@0.94.8': - resolution: {integrity: sha512-A+Cp5m6vZMAEu0Kg/YwU2dJZXyYxVJs2zI57d3CP6NctmX7FsT8WjViiRUmt5abVmMmRH5b8BUovqY6GSMAdrw==} + "@formatjs/icu-messageformat-parser@2.11.4": + resolution: + { integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw== } - '@gulpjs/messages@1.1.0': - resolution: {integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==} - engines: {node: '>=10.13.0'} + "@formatjs/icu-skeleton-parser@1.8.16": + resolution: + { integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ== } - '@gulpjs/to-absolute-glob@4.0.0': - resolution: {integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==} - engines: {node: '>=10.13.0'} + "@formatjs/intl-localematcher@0.6.2": + resolution: + { integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA== } - '@handlebars/parser@2.2.2': - resolution: {integrity: sha512-n/SZW+12rwikx/f8YcSv9JCi5p9vn1Bnts9ZtVvfErG4h0gbjHI1H1ZMhVUnaOC7yzFc6PtsCKIK8XeTnL90Gw==} - engines: {node: ^18 || ^20 || ^22 || >=24} + "@fortawesome/fontawesome-free@7.2.0": + resolution: + { integrity: sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg== } + engines: { node: ">=6" } - '@hapi/address@5.1.1': - resolution: {integrity: sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==} - engines: {node: '>=14.0.0'} + "@gar/promise-retry@1.0.3": + resolution: + { integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@gar/promisify@1.1.3": + resolution: + { integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== } + + "@gerrit0/mini-shiki@3.23.0": + resolution: + { integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg== } + + "@glimmer/component@1.1.2": + resolution: + { integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A== } + engines: { node: 6.* || 8.* || >= 10.* } + + "@glimmer/component@2.1.1": + resolution: + { integrity: sha512-zFZFaMbWy+9WOcDg/kCgrkGgqkLT39EE4FgyFD0MIkQO5coQsrRZyLsiBu1tbchyM+8hT8jAv+EQVUd8u+MdSQ== } + engines: { node: ">= 18" } + + "@glimmer/di@0.1.11": + resolution: + { integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg== } + + "@glimmer/env@0.1.7": + resolution: + { integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw== } + + "@glimmer/interfaces@0.94.6": + resolution: + { integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA== } + + "@glimmer/syntax@0.95.0": + resolution: + { integrity: sha512-W/PHdODnpONsXjbbdY9nedgIHpglMfOzncf/moLVrKIcCfeQhw2vG07Rs/YW8KeJCgJRCLkQsi+Ix7XvrurGAg== } + + "@glimmer/tracking@1.1.2": + resolution: + { integrity: sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA== } + + "@glimmer/util@0.44.0": + resolution: + { integrity: sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg== } + + "@glimmer/util@0.94.8": + resolution: + { integrity: sha512-HfCKeZ74clF9BsPDBOqK/yRNa/ke6niXFPM6zRn9OVYw+ZAidLs7V8He/xljUHlLRL322kaZZY8XxRW7ALEwyg== } - '@hapi/bourne@3.0.0': - resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} - - '@hapi/formula@3.0.2': - resolution: {integrity: sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==} - - '@hapi/hoek@11.0.7': - resolution: {integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/pinpoint@2.0.1': - resolution: {integrity: sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==} - - '@hapi/tlds@1.1.6': - resolution: {integrity: sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw==} - engines: {node: '>=14.0.0'} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@hapi/topo@6.0.2': - resolution: {integrity: sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==} - - '@harperfast/extended-iterable@1.0.3': - resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} - - '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} - engines: {node: '>=18.14.1'} + "@glimmer/validator@0.44.0": + resolution: + { integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw== } + + "@glimmer/wire-format@0.94.8": + resolution: + { integrity: sha512-A+Cp5m6vZMAEu0Kg/YwU2dJZXyYxVJs2zI57d3CP6NctmX7FsT8WjViiRUmt5abVmMmRH5b8BUovqY6GSMAdrw== } + + "@gulpjs/messages@1.1.0": + resolution: + { integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg== } + engines: { node: ">=10.13.0" } + + "@gulpjs/to-absolute-glob@4.0.0": + resolution: + { integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA== } + engines: { node: ">=10.13.0" } + + "@handlebars/parser@2.2.2": + resolution: + { integrity: sha512-n/SZW+12rwikx/f8YcSv9JCi5p9vn1Bnts9ZtVvfErG4h0gbjHI1H1ZMhVUnaOC7yzFc6PtsCKIK8XeTnL90Gw== } + engines: { node: ^18 || ^20 || ^22 || >=24 } + + "@hapi/address@5.1.1": + resolution: + { integrity: sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA== } + engines: { node: ">=14.0.0" } + + "@hapi/bourne@3.0.0": + resolution: + { integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w== } + + "@hapi/formula@3.0.2": + resolution: + { integrity: sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw== } + + "@hapi/hoek@11.0.7": + resolution: + { integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ== } + + "@hapi/hoek@9.3.0": + resolution: + { integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== } + + "@hapi/pinpoint@2.0.1": + resolution: + { integrity: sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q== } + + "@hapi/tlds@1.1.7": + resolution: + { integrity: sha512-MgNjRwy9Ti92yVAixLmDc8dd1bJIKwO9qlWCfFQRwRmUEDPQHYn4G6hwPFvFGUTzAa0FsS+inMjLin7GnyBRhA== } + engines: { node: ">=14.0.0" } + + "@hapi/topo@5.1.0": + resolution: + { integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== } + + "@hapi/topo@6.0.2": + resolution: + { integrity: sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg== } + + "@harperfast/extended-iterable@1.0.3": + resolution: + { integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw== } + + "@hono/node-server@1.19.14": + resolution: + { integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw== } + engines: { node: ">=18.14.1" } peerDependencies: hono: ^4 - '@humanfs/core@0.19.2': - resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.8': - resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} - engines: {node: '>=18.18.0'} - - '@humanfs/types@0.15.0': - resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - - '@hutson/parse-repository-url@3.0.2': - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} - - '@iarna/toml@2.2.5': - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - - '@iconify-json/simple-icons@1.2.83': - resolution: {integrity: sha512-6Pp9V++XisT9RKH7FB4RLPqUDzcmLtSma0ovOEIoEWGrXtHwBFsH7oN1z8vvCVCb95fb87QgR46/zRLyN9Y3kg==} - - '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@humanfs/core@0.19.2": + resolution: + { integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA== } + engines: { node: ">=18.18.0" } + + "@humanfs/node@0.16.8": + resolution: + { integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ== } + engines: { node: ">=18.18.0" } + + "@humanfs/types@0.15.0": + resolution: + { integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q== } + engines: { node: ">=18.18.0" } + + "@humanwhocodes/module-importer@1.0.1": + resolution: + { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } + engines: { node: ">=12.22" } + + "@humanwhocodes/retry@0.4.3": + resolution: + { integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== } + engines: { node: ">=18.18" } + + "@hutson/parse-repository-url@3.0.2": + resolution: + { integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== } + engines: { node: ">=6.9.0" } + + "@iconify-json/simple-icons@1.2.86": + resolution: + { integrity: sha512-t3jck5qPQuK1qy+bRn9eCoDQhIB7XSazKz1Fjp8hcan3XOAsTI5Mq/s3F0ekOKSvMQqkVORYK6ns6o6T9f5EMA== } + + "@iconify/types@2.0.0": + resolution: + { integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== } + + "@img/colour@1.1.0": + resolution: + { integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== } + engines: { node: ">=18" } + + "@img/sharp-darwin-arm64@0.34.5": + resolution: + { integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-darwin-x64@0.34.5": + resolution: + { integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + "@img/sharp-libvips-darwin-arm64@1.2.4": + resolution: + { integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== } cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + "@img/sharp-libvips-darwin-x64@1.2.4": + resolution: + { integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg== } cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + "@img/sharp-libvips-linux-arm64@1.2.4": + resolution: + { integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw== } cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + "@img/sharp-libvips-linux-arm@1.2.4": + resolution: + { integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A== } cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + "@img/sharp-libvips-linux-ppc64@1.2.4": + resolution: + { integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA== } cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + "@img/sharp-libvips-linux-riscv64@1.2.4": + resolution: + { integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA== } cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + "@img/sharp-libvips-linux-s390x@1.2.4": + resolution: + { integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ== } cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + "@img/sharp-libvips-linux-x64@1.2.4": + resolution: + { integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw== } cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + "@img/sharp-libvips-linuxmusl-arm64@1.2.4": + resolution: + { integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw== } cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + "@img/sharp-libvips-linuxmusl-x64@1.2.4": + resolution: + { integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg== } cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-arm64@0.34.5": + resolution: + { integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-arm@0.34.5": + resolution: + { integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-ppc64@0.34.5": + resolution: + { integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-riscv64@0.34.5": + resolution: + { integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-s390x@0.34.5": + resolution: + { integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linux-x64@0.34.5": + resolution: + { integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linuxmusl-arm64@0.34.5": + resolution: + { integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-linuxmusl-x64@0.34.5": + resolution: + { integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-wasm32@0.34.5": + resolution: + { integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-win32-arm64@0.34.5": + resolution: + { integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-win32-ia32@0.34.5": + resolution: + { integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + "@img/sharp-win32-x64@0.34.5": + resolution: + { integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [win32] - '@inquirer/ansi@1.0.2': - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} - engines: {node: '>=18'} + "@inquirer/ansi@1.0.2": + resolution: + { integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== } + engines: { node: ">=18" } + + "@inquirer/ansi@2.0.7": + resolution: + { integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } - '@inquirer/ansi@2.0.5': - resolution: {integrity: sha512-doc2sWgJpbFQ64UflSVd17ibMGDuxO1yKgOgLMwavzESnXjFWJqUeG8saYosqKpHp4kWiM5x1nXvEjbpx90gzw==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/checkbox@4.3.2": + resolution: + { integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA== } + engines: { node: ">=18" } + peerDependencies: + "@types/node": ">=18" + peerDependenciesMeta: + "@types/node": + optional: true - '@inquirer/checkbox@4.3.2': - resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} - engines: {node: '>=18'} + "@inquirer/checkbox@5.2.1": + resolution: + { integrity: sha512-b6xmA/VlTe0ZgDQHDui+Nav470u7u49nRd8/iuhOcQPO9Ch7lGuogydhi2VOmNlZ+zXcM8IcPuNSwQcdJaF/kw== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/checkbox@5.1.5': - resolution: {integrity: sha512-Jmf9tgBHIEK5SAOB7swYfStqmtkZb00xOTpSQmkoGEpdxOTpJi9RS0A8bkfDPHTTItZRJrRdZrEMu25wyj0VfQ==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/confirm@5.1.21": + resolution: + { integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/confirm@5.1.21': - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} - engines: {node: '>=18'} + "@inquirer/confirm@6.0.12": + resolution: + { integrity: sha512-h9FgGun3QwVYNj5TWIZZ+slii73bMoBFjPfVIGtnFuL4t8gBiNDV9PcSfIzkuxvgquJKt9nr1QzszpBzTbH8Og== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/confirm@6.0.13': - resolution: {integrity: sha512-wkGPC7yJ5WJk1DJ5SX7fzk+gfj4BM8cf5dDDi71B/551xHrdsZVRJOC0WyikXd0pEsb/9cLniuE4atbsMqmFkw==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/confirm@6.1.1": + resolution: + { integrity: sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/core@10.3.2': - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} - engines: {node: '>=18'} + "@inquirer/core@10.3.2": + resolution: + { integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/core@11.1.10': - resolution: {integrity: sha512-a4Q5BXHQAHa9eO202sTaFCHFYVB3x5fauDuThEAdZ9gfn76pSxiKU7wWcEH0N1O0XmQvNfQNU6QXpiRxmYQx+A==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/core@11.2.1": + resolution: + { integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/editor@4.2.23': - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} - engines: {node: '>=18'} + "@inquirer/editor@4.2.23": + resolution: + { integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/editor@5.1.2': - resolution: {integrity: sha512-Y3Nor7S/DhIPo+8Ym/dSY4efwKI4BsflKDwXh0jNeXJsSF3dteS/3Yf+z4wkibVZDvYMyCgknSTQlNahfunGHg==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/editor@5.2.2": + resolution: + { integrity: sha512-ZRVd/oD+sYsUd5zVm0NflqEzlqfYCyHNsqkHl2oWXEUHs12tCbcSFi+wVFEvD8+LGRaMUsVrE7qeo6lSG/S1Vg== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/expand@4.0.23': - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} - engines: {node: '>=18'} + "@inquirer/expand@4.0.23": + resolution: + { integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/expand@5.0.14': - resolution: {integrity: sha512-qyY9zcIX2eKYwaAUiQo9zORd61Lc3sXeM72fVbeHkYnDkqfr8/armcRbmVAIrExeJhI2puk+uomeKtWrpUVUmQ==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/expand@5.1.1": + resolution: + { integrity: sha512-YmQpenjbFSHAK3sOd44puHh3V1KXXr+JiNpUztoSQ4drLh2rTVzTap/YtlAVu/5xavifIlBfNEzJ/neZJ1a/1g== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} - engines: {node: '>=18'} + "@inquirer/external-editor@1.0.3": + resolution: + { integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/external-editor@3.0.0': - resolution: {integrity: sha512-lDSwMgg+M5rq6JKBYaJwSX6T9e/HK2qqZ1oxmOwn4AQoJE5D+7TumsxLGC02PWS//rkIVqbZv3XA3ejsc9FYvg==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/external-editor@3.0.3": + resolution: + { integrity: sha512-6thf5I8q7lZwzGLAxPaaGEREEkZ3nyePPDQ1oyobblxmEE8mqTLguScP7pDjUTAibiyb4hfXl+qjUEJ+di/aNA== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} + "@inquirer/figures@1.0.15": + resolution: + { integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g== } + engines: { node: ">=18" } - '@inquirer/figures@2.0.5': - resolution: {integrity: sha512-NsSs4kzfm12lNetHwAn3GEuH317IzpwrMCbOuMIVytpjnJ90YYHNwdRgYGuKmVxwuIqSgqk3M5qqQt1cDk0tGQ==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/figures@2.0.7": + resolution: + { integrity: sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } - '@inquirer/input@4.3.1': - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} - engines: {node: '>=18'} + "@inquirer/input@4.3.1": + resolution: + { integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/input@5.0.13': - resolution: {integrity: sha512-0l0jCHlJnXIV8CTxwQC0C+5Ziq8WP22edWgmciW2xYvoeoSck4v5FvCS1ctKdqLLR0dUo93uAHgWHywgBSoRyw==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/input@5.1.2": + resolution: + { integrity: sha512-9K/DDBSQpOyZSkt6sOVP9Vo0TR7atX2kuILsUu0x3wVcVbe97lJwIJKMLdMw25tDYuXl/qp6erT0Xs1rfmcfZg== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/number@3.0.23': - resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} - engines: {node: '>=18'} + "@inquirer/number@3.0.23": + resolution: + { integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/number@4.0.13': - resolution: {integrity: sha512-WHmkYnnJAou5gx7RgcvAfUggnHNM1zWfoh0dFPl3dxVssuqt+dK5rIbaOYQXNyOegvFnopbKupjnhw2O8gANNg==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/number@4.1.1": + resolution: + { integrity: sha512-XF4IXAbPnGPgw0wsbC/i2tPcyfdZgDpUlhsqU0SfT4IRIGWha6Xm9VRgN5yYxJq+jnyXlfXI/nQ3ulfk0iEICA== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/password@4.0.23': - resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} - engines: {node: '>=18'} + "@inquirer/password@4.0.23": + resolution: + { integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/password@5.0.13': - resolution: {integrity: sha512-XDGu64ROHZjOOXLAANvJN7iIxWKhOSCG5VakrZ5kaScVR+snVJCFglD/hL3/677awtWcu4pXoWa280CDIYcBeg==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/password@5.1.1": + resolution: + { integrity: sha512-3XBfF7DAsp5qeDsvN5Rd1HmbNokVvEQoUM0QLrRcybC9nX96w3Pbmu7qUsb3IT3J3jBvs2+mTXaKHOUsgHMLzg== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/prompts@7.10.1': - resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} - engines: {node: '>=18'} + "@inquirer/prompts@7.10.1": + resolution: + { integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/prompts@8.4.3': - resolution: {integrity: sha512-ai5LseTw9HhegupIgmo4cn7RpnCGznjjXu4OI+7jMR8vu7T1ZCCNMzFFAovUCjL1fl0cceksIN1++yQE59SmZw==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/prompts@8.4.2": + resolution: + { integrity: sha512-XJmn/wY4AX56l1BRU+ZjDrFtg9+2uBEi4JvJQj82kwJDQKiPgSn4CEsbfGGygS4Gw6rkL4W18oATjfVfaqub2Q== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/rawlist@4.1.11': - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} - engines: {node: '>=18'} + "@inquirer/prompts@8.5.2": + resolution: + { integrity: sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/rawlist@5.2.9': - resolution: {integrity: sha512-a1ErXEfgjfPYpyQ89dp+7n2IISjH9oQg3ygvF5adz8B7aHn4n2PjEgu1wpVTp69K3bj3lVLxP0qJ2b1clk1Whw==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/rawlist@4.1.11": + resolution: + { integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/search@3.2.2': - resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} - engines: {node: '>=18'} + "@inquirer/rawlist@5.3.1": + resolution: + { integrity: sha512-QqdTqQddL3qPX/PPrjobpsO25NZ4dWXgTLenrR445L2ptLEYE6Z+PD5c5CNDJNx4ugRgELAIpSIJxZaO2jJ2Og== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/search@4.1.9': - resolution: {integrity: sha512-ZlbM28Q9lmLkFPNAIv+ZuY530n5Km8U1WW48oYEvDhe9yc2uL3m3t+JSdRUkQlk5fuIuskgiIVjcb7czFzQpuA==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/search@3.2.2": + resolution: + { integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/select@4.4.2': - resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} - engines: {node: '>=18'} + "@inquirer/search@4.2.1": + resolution: + { integrity: sha512-xJj8QWKRSrfKoBIITLZK61dD3zwo0Rz11fgDImku30/Oe81zMdIdGgrLY2h6RkJ+KZ/GhNYIRMKnH/62qBTA5g== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/select@5.1.5': - resolution: {integrity: sha512-6SRg6kHfK/sjLXOsuqNebuir+sjwrf/iWuRUnXgB2slzEewppI1WfzeS16XxDcOQmXBruMmmB9Cgrz7wsAxqMg==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/select@4.4.2": + resolution: + { integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/type@3.0.10': - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} - engines: {node: '>=18'} + "@inquirer/select@5.2.1": + resolution: + { integrity: sha512-FlDndEUww8m7BfukO2nJa25vhD+H5jxxCv4oGioKqzyWz3nPHhhw4LKdYRSlXuAx7DsdWia7iyaBPKKS95Evfw== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@inquirer/type@4.0.5': - resolution: {integrity: sha512-aetVUNeKNc/VriqXlw1NRSW0zhMBB0W4bNbWRJgzRl/3d0QNDQFfk0GO5SDdtjMZVg6o8ZKEiadd7SCCzoOn5Q==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + "@inquirer/type@3.0.10": + resolution: + { integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@ionic/angular-toolkit@12.3.0': - resolution: {integrity: sha512-9cPTMmwggviB2W7wf4sv4vFeQnYq5HbO6V89UqQHopShokdhSvUFpaQ2w1/Mdf/ot8PghGjR3t5IdnXV7i1LvA==} - - '@ionic/angular@8.8.8': - resolution: {integrity: sha512-qUZlsYIwAvDTUmL8elFSqCaGa/gbJaE7Lbrz4z+KU6n0pu4CEkB3WmHHTwuS1Az+th8mNa0CWoas1qvNwxYxnw==} + "@inquirer/type@4.0.7": + resolution: + { integrity: sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^20.17.0" } peerDependencies: - '@angular/core': '>=16.0.0' - '@angular/forms': '>=16.0.0' - '@angular/router': '>=16.0.0' - rxjs: '>=7.5.0' - zone.js: '>=0.13.0' - - '@ionic/cli-framework-output@2.2.8': - resolution: {integrity: sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==} - engines: {node: '>=16.0.0'} - - '@ionic/core@8.8.8': - resolution: {integrity: sha512-GGvYtEzLtn1gBUC1/vb4pvA3gQzYskTNVIsvdTVIgnwLtdt70rwTibrZRSqmkyHeqpjg/u3+9XsM2c0kzc/V3w==} - engines: {node: '>= 16'} - - '@ionic/utils-array@2.1.6': - resolution: {integrity: sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-fs@3.1.7': - resolution: {integrity: sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-object@2.1.6': - resolution: {integrity: sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-process@2.1.12': - resolution: {integrity: sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-stream@3.1.7': - resolution: {integrity: sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-subprocess@3.0.1': - resolution: {integrity: sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==} - engines: {node: '>=16.0.0'} - - '@ionic/utils-terminal@2.3.5': - resolution: {integrity: sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==} - engines: {node: '>=16.0.0'} - - '@ioredis/commands@1.5.1': - resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/cliui@9.0.0': - resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} - engines: {node: '>=18'} - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.6': - resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@types/node": ">=18" + peerDependenciesMeta: + "@types/node": + optional: true + + "@ionic/angular-toolkit@12.3.0": + resolution: + { integrity: sha512-9cPTMmwggviB2W7wf4sv4vFeQnYq5HbO6V89UqQHopShokdhSvUFpaQ2w1/Mdf/ot8PghGjR3t5IdnXV7i1LvA== } + + "@ionic/angular@8.8.10": + resolution: + { integrity: sha512-ViOexy5QbdCFtSIWGZVQwykww192lfKFp1HEoEX4CH3Hs95YXWTYN7PnwnhSJcecohjx9PkEmSZS5CNNrn4bpQ== } + peerDependencies: + "@angular/core": ">=16.0.0" + "@angular/forms": ">=16.0.0" + "@angular/router": ">=16.0.0" + rxjs: ">=7.5.0" + zone.js: ">=0.13.0" + + "@ionic/cli-framework-output@2.2.8": + resolution: + { integrity: sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g== } + engines: { node: ">=16.0.0" } + + "@ionic/core@8.8.10": + resolution: + { integrity: sha512-pNujZuU/vydXKtE3yOqmeOIySbXodspxuK4QcbRitWoikNZhGalqW2JvtEJqeRRvE4KJ4dJ3gXF8i6+rtVSG3Q== } + engines: { node: ">= 16" } + + "@ionic/utils-array@2.1.6": + resolution: + { integrity: sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-fs@3.1.7": + resolution: + { integrity: sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-object@2.1.6": + resolution: + { integrity: sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-process@2.1.12": + resolution: + { integrity: sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-stream@3.1.7": + resolution: + { integrity: sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-subprocess@3.0.1": + resolution: + { integrity: sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A== } + engines: { node: ">=16.0.0" } + + "@ionic/utils-terminal@2.3.5": + resolution: + { integrity: sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A== } + engines: { node: ">=16.0.0" } + + "@ioredis/commands@1.10.0": + resolution: + { integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q== } + + "@isaacs/cliui@8.0.2": + resolution: + { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== } + engines: { node: ">=12" } + + "@isaacs/cliui@9.0.0": + resolution: + { integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg== } + engines: { node: ">=18" } + + "@isaacs/fs-minipass@4.0.1": + resolution: + { integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== } + engines: { node: ">=18.0.0" } + + "@isaacs/string-locale-compare@1.1.0": + resolution: + { integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== } + + "@istanbuljs/load-nyc-config@1.1.0": + resolution: + { integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== } + engines: { node: ">=8" } + + "@istanbuljs/schema@0.1.6": + resolution: + { integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw== } + engines: { node: ">=8" } + + "@jest/console@29.7.0": + resolution: + { integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/core@29.7.0": + resolution: + { integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/diff-sequences@30.0.1': - resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + "@jest/diff-sequences@30.0.1": + resolution: + { integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - '@jest/diff-sequences@30.4.0': - resolution: {integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + "@jest/diff-sequences@30.4.0": + resolution: + { integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - '@jest/environment-jsdom-abstract@30.4.1': - resolution: {integrity: sha512-dSlKrqug3siYNHVnjwIldShY12wAH3spwRltO/+8VOjg0X+xEq7vOs3DbBs4LRKsu7OH+NUb9kuZUNBF9Ho3TA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + "@jest/environment-jsdom-abstract@30.4.1": + resolution: + { integrity: sha512-dSlKrqug3siYNHVnjwIldShY12wAH3spwRltO/+8VOjg0X+xEq7vOs3DbBs4LRKsu7OH+NUb9kuZUNBF9Ho3TA== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } peerDependencies: canvas: ^3.0.0 - jsdom: '*' + jsdom: "*" peerDependenciesMeta: canvas: optional: true - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/environment@30.4.1': - resolution: {integrity: sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@30.4.1': - resolution: {integrity: sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@30.4.1': - resolution: {integrity: sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/get-type@30.1.0': - resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/pattern@30.4.0': - resolution: {integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/environment@29.7.0": + resolution: + { integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/environment@30.4.1": + resolution: + { integrity: sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jest/expect-utils@29.7.0": + resolution: + { integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/expect-utils@30.4.1": + resolution: + { integrity: sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jest/expect@29.7.0": + resolution: + { integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/fake-timers@29.7.0": + resolution: + { integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/fake-timers@30.4.1": + resolution: + { integrity: sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jest/get-type@30.1.0": + resolution: + { integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jest/globals@29.7.0": + resolution: + { integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + "@jest/pattern@30.4.0": + resolution: + { integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jest/reporters@29.7.0": + resolution: + { integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/schemas@29.6.3": + resolution: + { integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/schemas@30.4.1': - resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + "@jest/schemas@30.4.1": + resolution: + { integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/source-map@29.6.3": + resolution: + { integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/test-result@29.7.0": + resolution: + { integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/test-sequencer@29.7.0": + resolution: + { integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/transform@29.7.0": + resolution: + { integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/types@29.6.3": + resolution: + { integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/types@30.4.1': - resolution: {integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + "@jest/types@30.4.1": + resolution: + { integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + "@jridgewell/gen-mapping@0.3.13": + resolution: + { integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== } - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + "@jridgewell/remapping@2.3.5": + resolution: + { integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== } - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + "@jridgewell/resolve-uri@3.1.2": + resolution: + { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } + engines: { node: ">=6.0.0" } - '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + "@jridgewell/source-map@0.3.11": + resolution: + { integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== } - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + "@jridgewell/sourcemap-codec@1.5.5": + resolution: + { integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== } - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + "@jridgewell/trace-mapping@0.3.31": + resolution: + { integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== } - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + "@jridgewell/trace-mapping@0.3.9": + resolution: + { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } - '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} + "@jsonjoy.com/base64@1.1.2": + resolution: + { integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/base64@17.67.0': - resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} - engines: {node: '>=10.0'} + "@jsonjoy.com/base64@17.67.0": + resolution: + { integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/buffers@1.2.1': - resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} - engines: {node: '>=10.0'} + "@jsonjoy.com/buffers@1.2.1": + resolution: + { integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/buffers@17.67.0': - resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} - engines: {node: '>=10.0'} + "@jsonjoy.com/buffers@17.67.0": + resolution: + { integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/codegen@1.0.0': - resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} - engines: {node: '>=10.0'} + "@jsonjoy.com/codegen@1.0.0": + resolution: + { integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/codegen@17.67.0': - resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} - engines: {node: '>=10.0'} + "@jsonjoy.com/codegen@17.67.0": + resolution: + { integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-core@4.57.2': - resolution: {integrity: sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-core@4.57.7": + resolution: + { integrity: sha512-GDKuYHjP7vAI1kjBo73V+STKr9XIMZknW/xirpRW/EcShX0IKSev/ALafeRfC8Q331nodrXUFu04PugPB0MAhw== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-fsa@4.57.2': - resolution: {integrity: sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-fsa@4.57.7": + resolution: + { integrity: sha512-1rWsah2nZtRbNeP+c61QcfGfVrJXBmBD0Hm7Akvv4C9MKEasXnbiOS//iH3T3HwUSSBATGrfSp0Xi8nlNhATeQ== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-node-builtins@4.57.2': - resolution: {integrity: sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-node-builtins@4.57.7": + resolution: + { integrity: sha512-LWqfY1m+uAosjwM1RrKhMkUnP9jcq1RUczHsNO779ovm1E9v8I/pmj04eBAcoBjhC7ltcPbNFGyRJ5JqSJ7Jdg== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-node-to-fsa@4.57.2': - resolution: {integrity: sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-node-to-fsa@4.57.7": + resolution: + { integrity: sha512-9T0zC9LKcAWXDoTLRdLMoJ0seOvJ5bgDKq1tSBoQAFQpPDstQUeV1Oe7PLypdu7F2D3ddRstmwgeNUEN/VaZ4Q== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-node-utils@4.57.2': - resolution: {integrity: sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-node-utils@4.57.7": + resolution: + { integrity: sha512-jjWSDOsfcog2cZnUCwX5AHmlIq6b6wx5Pz/2LAcNjJ62Rajwg89Fy7ubN+lDHew0/1reLDa9Z5urybYadhh37g== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-node@4.57.2': - resolution: {integrity: sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-node@4.57.7": + resolution: + { integrity: sha512-xhnyeyEVTiIOibFvda/5n89nChMLCPKHHM2WQ+GGDf6+U/IrQBW3Qx6x+Uq1bkDbxBkybLOdIGoBtVBrE8Nngg== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-print@4.57.2': - resolution: {integrity: sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-print@4.57.7": + resolution: + { integrity: sha512-mFM4P4Gjq0QQHkLnXzPYPEMFrAoe6a5Myedgb6+CmL+nGd3MKvTxYPuD7N1dLIH9RBy1fLdzxd80qvuK8xrx3Q== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/fs-snapshot@4.57.2': - resolution: {integrity: sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==} - engines: {node: '>=10.0'} + "@jsonjoy.com/fs-snapshot@4.57.7": + resolution: + { integrity: sha512-1GS3+plfm2giB3PqokiqyydyqYTPLcCQIKSkp0TdMNRh3KVk7rqRM6U785FLlVRG7XLmkc0KWr215OY+22K3QA== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/json-pack@1.21.0': - resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} - engines: {node: '>=10.0'} + "@jsonjoy.com/json-pack@1.21.0": + resolution: + { integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/json-pack@17.67.0': - resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} - engines: {node: '>=10.0'} + "@jsonjoy.com/json-pack@17.67.0": + resolution: + { integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/json-pointer@1.0.2': - resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} - engines: {node: '>=10.0'} + "@jsonjoy.com/json-pointer@1.0.2": + resolution: + { integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/json-pointer@17.67.0': - resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} - engines: {node: '>=10.0'} + "@jsonjoy.com/json-pointer@17.67.0": + resolution: + { integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/util@1.9.0': - resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} - engines: {node: '>=10.0'} + "@jsonjoy.com/util@1.9.0": + resolution: + { integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@jsonjoy.com/util@17.67.0': - resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} - engines: {node: '>=10.0'} + "@jsonjoy.com/util@17.67.0": + resolution: + { integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" - '@keyv/bigmap@1.3.1': - resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} - engines: {node: '>= 18'} + "@keyv/bigmap@1.3.1": + resolution: + { integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ== } + engines: { node: ">= 18" } peerDependencies: keyv: ^5.6.0 - '@keyv/serialize@1.1.1': - resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + "@keyv/serialize@1.1.1": + resolution: + { integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA== } - '@koa/cors@3.4.3': - resolution: {integrity: sha512-WPXQUaAeAMVaLTEFpoq3T2O1C+FstkjJnDQqy95Ck1UdILajsRhu6mhJ8H2f4NFPRBoCNN+qywTJfq/gGki5mw==} - engines: {node: '>= 8.0.0'} + "@koa/cors@3.4.3": + resolution: + { integrity: sha512-WPXQUaAeAMVaLTEFpoq3T2O1C+FstkjJnDQqy95Ck1UdILajsRhu6mhJ8H2f4NFPRBoCNN+qywTJfq/gGki5mw== } + engines: { node: ">= 8.0.0" } - '@kwsites/file-exists@1.1.1': - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + "@kwsites/file-exists@1.1.1": + resolution: + { integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== } - '@kwsites/promise-deferred@1.1.1': - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + "@kwsites/promise-deferred@1.1.1": + resolution: + { integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== } - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + "@leichtgewicht/ip-codec@2.0.5": + resolution: + { integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== } - '@lint-todo/utils@13.1.1': - resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==} - engines: {node: 12.* || >= 14} + "@lint-todo/utils@13.1.1": + resolution: + { integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg== } + engines: { node: 12.* || >= 14 } - '@listr2/prompt-adapter-inquirer@3.0.5': - resolution: {integrity: sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==} - engines: {node: '>=20.0.0'} + "@listr2/prompt-adapter-inquirer@4.2.3": + resolution: + { integrity: sha512-Co9U3AJ3LW0J8XBHjVoNKA79dMAyFt8EZH3OaKTMcDTj8r+6kG3vSUPq/eGLHT7P0iK3uLaFfhdFYd3033P24g== } + engines: { node: ">=22.13.0" } peerDependencies: - '@inquirer/prompts': '>= 3 < 8' - listr2: 9.0.5 + "@inquirer/prompts": ">= 3 < 9" + listr2: 10.2.1 - '@lit-labs/ssr-dom-shim@1.6.0': - resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==} + "@lit-labs/ssr-dom-shim@1.6.0": + resolution: + { integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ== } - '@lit/reactive-element@2.1.2': - resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} + "@lit/reactive-element@2.1.2": + resolution: + { integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A== } - '@lmdb/lmdb-darwin-arm64@3.5.1': - resolution: {integrity: sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==} + "@lmdb/lmdb-darwin-arm64@3.5.4": + resolution: + { integrity: sha512-Kk4Kz3iyu1QiLsLZBS9Af1eSKUC8VR2T+/jyE2iAyuGw2VwK08pp5iTbZnXn6sWu0LogO/RFktMxOjiDA2sS3w== } cpu: [arm64] os: [darwin] - '@lmdb/lmdb-darwin-x64@3.5.1': - resolution: {integrity: sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==} + "@lmdb/lmdb-darwin-x64@3.5.4": + resolution: + { integrity: sha512-BEe5Rp3trn26oxoXOVL5HVDoiYmjUDwr8NRPkBOdUdCSBEorKI+7JrZLRKAdxO+G6cGQLgseXk0gR7qIQa7aGw== } cpu: [x64] os: [darwin] - '@lmdb/lmdb-linux-arm64@3.5.1': - resolution: {integrity: sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==} + "@lmdb/lmdb-linux-arm64@3.5.4": + resolution: + { integrity: sha512-cUXEengO8o60v1SWerJTH4/RH4U3+9jC0/4njp2Z9NdmvaGzhKsbRM2wpXuRYrN8tytsoJCg0SvWEWwHAwLbCA== } cpu: [arm64] os: [linux] - '@lmdb/lmdb-linux-arm@3.5.1': - resolution: {integrity: sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==} + "@lmdb/lmdb-linux-arm@3.5.4": + resolution: + { integrity: sha512-SGbFR7816uBcTHc2ZY4S6WyOkl9bICnzqTQd2Mv4V/j24cfds88xx2nC6cm/y8zGQL7Ds31YF/5NGxjgcdM5Hw== } cpu: [arm] os: [linux] - '@lmdb/lmdb-linux-x64@3.5.1': - resolution: {integrity: sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==} + "@lmdb/lmdb-linux-x64@3.5.4": + resolution: + { integrity: sha512-Gxq8jpgOWXwd0PUR+c9R2Ik1/uBnGd5GMIIzRRDqABCkvmjtC3KWcyhesV9jSPCz759isl0NlbsstZ2oyvk8lA== } cpu: [x64] os: [linux] - '@lmdb/lmdb-win32-arm64@3.5.1': - resolution: {integrity: sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==} + "@lmdb/lmdb-win32-arm64@3.5.4": + resolution: + { integrity: sha512-pKv1DJ1bPZAaHkdFsSz5IDfUG8x9vntgquXF9/Dm2xuupcIe/EkLzylpoBxppFVK5vzbV561Dq26jNY2fIMA7g== } cpu: [arm64] os: [win32] - '@lmdb/lmdb-win32-x64@3.5.1': - resolution: {integrity: sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==} + "@lmdb/lmdb-win32-x64@3.5.4": + resolution: + { integrity: sha512-JF1BmLCm9kGEVZgYmJq43zeQVdHVgAJnTi/NURWEsy6L1ZrrlSmdltS+D17QN4LODwf+1LMXAA9auIZVXtWwzw== } cpu: [x64] os: [win32] - '@malept/cross-spawn-promise@2.0.0': - resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} - engines: {node: '>= 12.13.0'} + "@malept/cross-spawn-promise@2.0.0": + resolution: + { integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg== } + engines: { node: ">= 12.13.0" } - '@mapbox/node-pre-gyp@2.0.3': - resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} - engines: {node: '>=18'} + "@mapbox/node-pre-gyp@2.0.3": + resolution: + { integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg== } + engines: { node: ">=18" } hasBin: true - '@mdn/browser-compat-data@5.7.6': - resolution: {integrity: sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==} + "@mdn/browser-compat-data@5.7.6": + resolution: + { integrity: sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg== } + + "@mdn/browser-compat-data@6.1.5": + resolution: + { integrity: sha512-PzdZZzRhcXvKB0begee28n5lvwAcinGKYuLZOVxHAZm+n7y01ddEGfdS1ZXRuVcV+ndG6mSEAE8vgudom5UjYg== } - '@microsoft/tsdoc-config@0.18.1': - resolution: {integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==} + "@microsoft/tsdoc-config@0.18.1": + resolution: + { integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg== } - '@microsoft/tsdoc@0.16.0': - resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} + "@microsoft/tsdoc@0.16.0": + resolution: + { integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA== } - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} - engines: {node: '>=18'} + "@modelcontextprotocol/sdk@1.29.0": + resolution: + { integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ== } + engines: { node: ">=18" } peerDependencies: - '@cfworker/json-schema': ^4.1.1 + "@cfworker/json-schema": ^4.1.1 zod: ^3.25 || ^4.0 peerDependenciesMeta: - '@cfworker/json-schema': + "@cfworker/json-schema": optional: true - '@mrmlnc/readdir-enhanced@2.2.1': - resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} - engines: {node: '>=4'} - - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4": + resolution: + { integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ== } cpu: [arm64] os: [darwin] - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4": + resolution: + { integrity: sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w== } cpu: [x64] os: [darwin] - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4": + resolution: + { integrity: sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw== } cpu: [arm64] os: [linux] - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4": + resolution: + { integrity: sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw== } cpu: [arm] os: [linux] - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4": + resolution: + { integrity: sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ== } cpu: [x64] os: [linux] - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4": + resolution: + { integrity: sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ== } cpu: [x64] os: [win32] - '@napi-rs/nice-android-arm-eabi@1.1.1': - resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} - engines: {node: '>= 10'} + "@napi-rs/nice-android-arm-eabi@1.1.1": + resolution: + { integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw== } + engines: { node: ">= 10" } cpu: [arm] os: [android] - '@napi-rs/nice-android-arm64@1.1.1': - resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} - engines: {node: '>= 10'} + "@napi-rs/nice-android-arm64@1.1.1": + resolution: + { integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw== } + engines: { node: ">= 10" } cpu: [arm64] os: [android] - '@napi-rs/nice-darwin-arm64@1.1.1': - resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} - engines: {node: '>= 10'} + "@napi-rs/nice-darwin-arm64@1.1.1": + resolution: + { integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A== } + engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - '@napi-rs/nice-darwin-x64@1.1.1': - resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-darwin-x64@1.1.1": + resolution: + { integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ== } + engines: { node: ">= 10" } cpu: [x64] os: [darwin] - '@napi-rs/nice-freebsd-x64@1.1.1': - resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-freebsd-x64@1.1.1": + resolution: + { integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ== } + engines: { node: ">= 10" } cpu: [x64] os: [freebsd] - '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': - resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-arm-gnueabihf@1.1.1": + resolution: + { integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg== } + engines: { node: ">= 10" } cpu: [arm] os: [linux] - '@napi-rs/nice-linux-arm64-gnu@1.1.1': - resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-arm64-gnu@1.1.1": + resolution: + { integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [glibc] - '@napi-rs/nice-linux-arm64-musl@1.1.1': - resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-arm64-musl@1.1.1": + resolution: + { integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [musl] - '@napi-rs/nice-linux-ppc64-gnu@1.1.1': - resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-ppc64-gnu@1.1.1": + resolution: + { integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg== } + engines: { node: ">= 10" } cpu: [ppc64] os: [linux] libc: [glibc] - '@napi-rs/nice-linux-riscv64-gnu@1.1.1': - resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-riscv64-gnu@1.1.1": + resolution: + { integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw== } + engines: { node: ">= 10" } cpu: [riscv64] os: [linux] libc: [glibc] - '@napi-rs/nice-linux-s390x-gnu@1.1.1': - resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-s390x-gnu@1.1.1": + resolution: + { integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ== } + engines: { node: ">= 10" } cpu: [s390x] os: [linux] libc: [glibc] - '@napi-rs/nice-linux-x64-gnu@1.1.1': - resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-x64-gnu@1.1.1": + resolution: + { integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [glibc] - '@napi-rs/nice-linux-x64-musl@1.1.1': - resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} - engines: {node: '>= 10'} + "@napi-rs/nice-linux-x64-musl@1.1.1": + resolution: + { integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [musl] - '@napi-rs/nice-openharmony-arm64@1.1.1': - resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-openharmony-arm64@1.1.1": + resolution: + { integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ== } + engines: { node: ">= 10" } cpu: [arm64] os: [openharmony] - '@napi-rs/nice-win32-arm64-msvc@1.1.1': - resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} - engines: {node: '>= 10'} + "@napi-rs/nice-win32-arm64-msvc@1.1.1": + resolution: + { integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA== } + engines: { node: ">= 10" } cpu: [arm64] os: [win32] - '@napi-rs/nice-win32-ia32-msvc@1.1.1': - resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} - engines: {node: '>= 10'} + "@napi-rs/nice-win32-ia32-msvc@1.1.1": + resolution: + { integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug== } + engines: { node: ">= 10" } cpu: [ia32] os: [win32] - '@napi-rs/nice-win32-x64-msvc@1.1.1': - resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} - engines: {node: '>= 10'} + "@napi-rs/nice-win32-x64-msvc@1.1.1": + resolution: + { integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ== } + engines: { node: ">= 10" } cpu: [x64] os: [win32] - '@napi-rs/nice@1.1.1': - resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} - engines: {node: '>= 10'} + "@napi-rs/nice@1.1.1": + resolution: + { integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw== } + engines: { node: ">= 10" } - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + "@napi-rs/wasm-runtime@0.2.4": + resolution: + { integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ== } - '@napi-rs/wasm-runtime@1.1.4': - resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + "@napi-rs/wasm-runtime@1.1.5": + resolution: + { integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q== } peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 + "@emnapi/core": ^1.7.1 + "@emnapi/runtime": ^1.7.1 - '@next/env@16.2.6': - resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==} + "@next/env@16.2.9": + resolution: + { integrity: sha512-ki5VxxXfzD/9TDe13wyeTKIjQTAwBVpnr8KhRDUr8ltMUq1/NBpWNT5tiPoxiGl+PHM4X2ahSOiPk6iAimIzPg== } - '@next/eslint-plugin-next@16.2.6': - resolution: {integrity: sha512-Z8l6o4JWKUl755x4R+wogD86KPeU+Ckw4K+SYG4kHeOJtRenDeK+OSbGcqZpDtbwn9DsJVdir2UxmwXuinUbUw==} + "@next/eslint-plugin-next@16.2.9": + resolution: + { integrity: sha512-UZi8+YT/MLgTC9nrrn2Xd4lBYv1B7lVmtWHfPcthAI5Tt/C1LuDe6DfmtCtJ+WQod3ksY4VrKSvk3oMVAnL7qw== } - '@next/swc-darwin-arm64@16.2.6': - resolution: {integrity: sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==} - engines: {node: '>= 10'} + "@next/swc-darwin-arm64@16.2.9": + resolution: + { integrity: sha512-HkfxNYUCmcct0Xsqib5KxqMSHV4AHJq857BNRchyBDs4YS19aHzVfn1kDuBYKqLLQBjXgnkIsjV2Kd4d2wzYhw== } + engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.6': - resolution: {integrity: sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==} - engines: {node: '>= 10'} + "@next/swc-darwin-x64@16.2.9": + resolution: + { integrity: sha512-7IAtK4MeybpqRV9GRABWEhJ62mOS+rzWOzOTFie4cSEtm12xsoOMJRcECoZx3FHPzFAqN/IJtHqWAFOLfl152w== } + engines: { node: ">= 10" } cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.6': - resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==} - engines: {node: '>= 10'} + "@next/swc-linux-arm64-gnu@16.2.9": + resolution: + { integrity: sha512-hBD75iWpUtkL9SmQmcRhmLomn9jgkPzCEkbOcLgHymPEKzv+6ONy13RRiIEz/iEObjkS2Jlb5gYS2XGoS3X4rw== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.6': - resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} - engines: {node: '>= 10'} + "@next/swc-linux-arm64-musl@16.2.9": + resolution: + { integrity: sha512-qZTI3pf9SGc/obr8NkQAekBxmp1QK+kVm+VAf3BALLfFAj+1kUhkTxmrWpVos9R/UYIA8AWX2p6cGI5WdwzVUA== } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.6': - resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} - engines: {node: '>= 10'} + "@next/swc-linux-x64-gnu@16.2.9": + resolution: + { integrity: sha512-xm0HfRNX+UkH4R3c18ynswjj5o5uEj/7iI9p9omdtTSIsRCzQqkGMA+10nzJ4EHnYC3as65IMhbbl5fWRUWHYg== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.6': - resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} - engines: {node: '>= 10'} + "@next/swc-linux-x64-musl@16.2.9": + resolution: + { integrity: sha512-QumimHkGEG6vM3PfEDWKyKen03NcqLOkeKB1EfcPe7VxzmEiCa4jNnMyBn/US5zcd/VE1CI+O8Ovb3lfjVHfGw== } + engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.6': - resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} - engines: {node: '>= 10'} + "@next/swc-win32-arm64-msvc@16.2.9": + resolution: + { integrity: sha512-hzQpKZvw8rAwI6A2uQh6SacCSvNAXaIkPNsWwzqqfRiIMiXMfH936skDhz1OO6KpvdKkJrgHHtqQOq5PIXOvdQ== } + engines: { node: ">= 10" } cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.6': - resolution: {integrity: sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==} - engines: {node: '>= 10'} + "@next/swc-win32-x64-msvc@16.2.9": + resolution: + { integrity: sha512-qr2VL3Ce5QrwgO2yh1ujSBawrimjVKX8FGF/cOynmdYKJY0BdHpGVNIRK1tqONB10Vkm25Ub1BD2bkjWs4+96w== } + engines: { node: ">= 10" } cpu: [x64] os: [win32] - '@ngtools/webpack@21.2.12': - resolution: {integrity: sha512-e9jfTfc1mG9c2S6jog8/ZKx2/fkOKRHRDHxdPLMBTtJwKxPenQH1eZoTaiEDB0RLNbWbFClFDaCMBC1gJ/cs3Q==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - '@angular/compiler-cli': ^21.0.0 - typescript: '>=5.9 <6.0' - webpack: ^5.54.0 - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - - '@noble/hashes@2.2.0': - resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} - engines: {node: '>= 20.19.0'} - - '@node-ipc/js-queue@2.0.3': - resolution: {integrity: sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==} - engines: {node: '>=1.0.0'} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@1.1.3': - resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} - engines: {node: '>= 6'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - - '@nothing-but/utils@0.12.1': - resolution: {integrity: sha512-1qZU1Q5El0IjE7JT/ucvJNzdr2hL3W8Rm27xNf1p6gb3Nw8pGnZmxp6/GEW9h+I1k1cICxXNq25hBwknTQ7yhg==} - - '@npmcli/agent@4.0.0': - resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/arborist@9.1.6': - resolution: {integrity: sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ==} - engines: {node: ^20.17.0 || >=22.9.0} + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + resolution: + { integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== } + + "@noble/hashes@1.4.0": + resolution: + { integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== } + engines: { node: ">= 16" } + + "@noble/hashes@2.2.0": + resolution: + { integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg== } + engines: { node: ">= 20.19.0" } + + "@node-ipc/js-queue@2.0.3": + resolution: + { integrity: sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw== } + engines: { node: ">=1.0.0" } + + "@nodelib/fs.scandir@2.1.5": + resolution: + { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } + engines: { node: ">= 8" } + + "@nodelib/fs.stat@2.0.5": + resolution: + { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } + engines: { node: ">= 8" } + + "@nodelib/fs.walk@1.2.8": + resolution: + { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } + engines: { node: ">= 8" } + + "@nolyfill/is-core-module@1.0.39": + resolution: + { integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== } + engines: { node: ">=12.4.0" } + + "@nothing-but/utils@0.17.0": + resolution: + { integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ== } + + "@npmcli/agent@4.0.2": + resolution: + { integrity: sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/arborist@9.1.6": + resolution: + { integrity: sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true - '@npmcli/fs@1.1.1': - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/fs@3.1.1': - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/fs@4.0.0': - resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/fs@5.0.0': - resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/git@4.1.0': - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/git@6.0.3': - resolution: {integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/git@7.0.2': - resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/installed-package-contents@2.1.0': - resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + "@npmcli/fs@1.1.1": + resolution: + { integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== } + + "@npmcli/fs@2.1.2": + resolution: + { integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + + "@npmcli/fs@3.1.1": + resolution: + { integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@npmcli/fs@4.0.0": + resolution: + { integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/fs@5.0.0": + resolution: + { integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/git@4.1.0": + resolution: + { integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@npmcli/git@6.0.3": + resolution: + { integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/git@7.0.2": + resolution: + { integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/installed-package-contents@2.1.0": + resolution: + { integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hasBin: true - '@npmcli/installed-package-contents@3.0.0': - resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} - engines: {node: ^18.17.0 || >=20.5.0} + "@npmcli/installed-package-contents@3.0.0": + resolution: + { integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q== } + engines: { node: ^18.17.0 || >=20.5.0 } hasBin: true - '@npmcli/installed-package-contents@4.0.0': - resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} - engines: {node: ^20.17.0 || >=22.9.0} + "@npmcli/installed-package-contents@4.0.0": + resolution: + { integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true - '@npmcli/map-workspaces@5.0.3': - resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} - engines: {node: ^20.17.0 || >=22.9.0} + "@npmcli/map-workspaces@5.0.3": + resolution: + { integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw== } + engines: { node: ^20.17.0 || >=22.9.0 } - '@npmcli/metavuln-calculator@9.0.3': - resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} - engines: {node: ^20.17.0 || >=22.9.0} + "@npmcli/metavuln-calculator@9.0.3": + resolution: + { integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg== } + engines: { node: ^20.17.0 || >=22.9.0 } - '@npmcli/move-file@1.1.2': - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} + "@npmcli/move-file@1.1.2": + resolution: + { integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== } + engines: { node: ">=10" } deprecated: This functionality has been moved to @npmcli/fs - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + "@npmcli/move-file@2.0.1": + resolution: + { integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } deprecated: This functionality has been moved to @npmcli/fs - '@npmcli/name-from-folder@3.0.0': - resolution: {integrity: sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/name-from-folder@4.0.0': - resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/node-gyp@4.0.0': - resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/node-gyp@5.0.0': - resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/package-json@7.0.2': - resolution: {integrity: sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/package-json@7.0.5': - resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/promise-spawn@6.0.2': - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/promise-spawn@8.0.3': - resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/promise-spawn@9.0.1': - resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/query@4.0.1': - resolution: {integrity: sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/redact@3.2.2': - resolution: {integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/redact@4.0.0': - resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/run-script@10.0.3': - resolution: {integrity: sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/run-script@10.0.4': - resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/run-script@6.0.2': - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@nuxt/babel-preset-app@2.18.1': - resolution: {integrity: sha512-7AYAGVjykrvta7k+koMGbt6y6PTMwl74PX2i9Ubyc1VC9ewy9U/b6cW0gVJOR/ZJWPzaABAgVZC7N58PprUDfA==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@nuxt/builder@2.18.1': - resolution: {integrity: sha512-hc4AUP3Nvov7jL0BEP7jFXt8zOfa6gt+y1kyoVvU1WHEVNcWnrGtRKvJuCwi1IwCVlx7Weh+luvHI4nzQwEeKg==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@nuxt/cli@2.18.1': - resolution: {integrity: sha512-ZOoDlE4Fw1Cum6oG8DVnb7B4ivovXySxdDI8vnIt49Ypx22pBGt5y2ErF7g+5TAxGMIHpyh7peJWJwYp88PqPA==} - engines: {node: ^14.18.0 || >=16.10.0} + "@npmcli/name-from-folder@3.0.0": + resolution: + { integrity: sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/name-from-folder@4.0.0": + resolution: + { integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/node-gyp@3.0.0": + resolution: + { integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@npmcli/node-gyp@4.0.0": + resolution: + { integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/node-gyp@5.0.0": + resolution: + { integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/package-json@7.0.2": + resolution: + { integrity: sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/package-json@7.0.5": + resolution: + { integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/promise-spawn@6.0.2": + resolution: + { integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@npmcli/promise-spawn@8.0.3": + resolution: + { integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/promise-spawn@9.0.1": + resolution: + { integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/query@4.0.1": + resolution: + { integrity: sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/redact@3.2.2": + resolution: + { integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@npmcli/redact@4.0.0": + resolution: + { integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/run-script@10.0.3": + resolution: + { integrity: sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/run-script@10.0.4": + resolution: + { integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@npmcli/run-script@6.0.2": + resolution: + { integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@nuxt/babel-preset-app@2.18.1": + resolution: + { integrity: sha512-7AYAGVjykrvta7k+koMGbt6y6PTMwl74PX2i9Ubyc1VC9ewy9U/b6cW0gVJOR/ZJWPzaABAgVZC7N58PprUDfA== } + engines: { node: ^14.18.0 || >=16.10.0 } + + "@nuxt/builder@2.18.1": + resolution: + { integrity: sha512-hc4AUP3Nvov7jL0BEP7jFXt8zOfa6gt+y1kyoVvU1WHEVNcWnrGtRKvJuCwi1IwCVlx7Weh+luvHI4nzQwEeKg== } + engines: { node: ^14.18.0 || >=16.10.0 } + + "@nuxt/cli@2.18.1": + resolution: + { integrity: sha512-ZOoDlE4Fw1Cum6oG8DVnb7B4ivovXySxdDI8vnIt49Ypx22pBGt5y2ErF7g+5TAxGMIHpyh7peJWJwYp88PqPA== } + engines: { node: ^14.18.0 || >=16.10.0 } hasBin: true - '@nuxt/cli@3.35.2': - resolution: {integrity: sha512-sCxNnFuYamqippdj+Cj4Nue55yaUvasaneyf2mnowK5/F1TKln/WVqTH18McxQ4baLlIlVapIFovKjJx1L8XMQ==} - engines: {node: ^16.14.0 || >=18.0.0} + "@nuxt/cli@3.35.2": + resolution: + { integrity: sha512-sCxNnFuYamqippdj+Cj4Nue55yaUvasaneyf2mnowK5/F1TKln/WVqTH18McxQ4baLlIlVapIFovKjJx1L8XMQ== } + engines: { node: ^16.14.0 || >=18.0.0 } hasBin: true peerDependencies: - '@nuxt/schema': ^4.4.5 + "@nuxt/schema": ^4.4.5 peerDependenciesMeta: - '@nuxt/schema': + "@nuxt/schema": optional: true - '@nuxt/components@2.2.1': - resolution: {integrity: sha512-r1LHUzifvheTnJtYrMuA+apgsrEJbxcgFKIimeXKb+jl8TnPWdV3egmrxBCaDJchrtY/wmHyP47tunsft7AWwg==} + "@nuxt/components@2.2.1": + resolution: + { integrity: sha512-r1LHUzifvheTnJtYrMuA+apgsrEJbxcgFKIimeXKb+jl8TnPWdV3egmrxBCaDJchrtY/wmHyP47tunsft7AWwg== } peerDependencies: - consola: '*' + consola: "*" - '@nuxt/config@2.18.1': - resolution: {integrity: sha512-CTsUMFtNCJ6+7AkgMRz53zM9vxmsMYVJWBQOnikVzwFxm/jsWzjyXkp3pQb5/fNZuqR7qXmpUKIRtrdeUeN4JQ==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/config@2.18.1": + resolution: + { integrity: sha512-CTsUMFtNCJ6+7AkgMRz53zM9vxmsMYVJWBQOnikVzwFxm/jsWzjyXkp3pQb5/fNZuqR7qXmpUKIRtrdeUeN4JQ== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/core@2.18.1': - resolution: {integrity: sha512-BFnKVH7caEdDrK04qQ2U9F4Rf4hV/BqqXBJiIeHp7vM9CLKjTL5/yhiognDw3SBefmSJkpOATx1HJl3XM8c4fg==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/core@2.18.1": + resolution: + { integrity: sha512-BFnKVH7caEdDrK04qQ2U9F4Rf4hV/BqqXBJiIeHp7vM9CLKjTL5/yhiognDw3SBefmSJkpOATx1HJl3XM8c4fg== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/devalue@2.0.2': - resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + "@nuxt/devalue@2.0.2": + resolution: + { integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA== } - '@nuxt/devtools-kit@3.2.4': - resolution: {integrity: sha512-Yxy2Xgmq5hf3dQy983V0xh0OJV2mYwRZz9eVIGc3EaribdFGPDNGMMbYqX9qCty3Pbxn/bCF3J0UyPaNlHVayQ==} + "@nuxt/devtools-kit@3.2.4": + resolution: + { integrity: sha512-Yxy2Xgmq5hf3dQy983V0xh0OJV2mYwRZz9eVIGc3EaribdFGPDNGMMbYqX9qCty3Pbxn/bCF3J0UyPaNlHVayQ== } peerDependencies: - vite: '>=6.0' + vite: ">=6.0" - '@nuxt/devtools-wizard@3.2.4': - resolution: {integrity: sha512-5tu2+Quu9XTxwtpzM8CUN0UKn/bzZIfJcoGd+at5Yy1RiUQJ4E52tRK0idW1rMSUDkbkvX3dSnu8Tpj7SAtWdQ==} + "@nuxt/devtools-wizard@3.2.4": + resolution: + { integrity: sha512-5tu2+Quu9XTxwtpzM8CUN0UKn/bzZIfJcoGd+at5Yy1RiUQJ4E52tRK0idW1rMSUDkbkvX3dSnu8Tpj7SAtWdQ== } hasBin: true - '@nuxt/devtools@3.2.4': - resolution: {integrity: sha512-VPbFy7hlPzWpEZk4BsuVpNuHq1ZYGV9xezjb7/NGuePuNLqeNn74YZugU+PCtva7OwKhEeTXmMK0Mqo/6+nwNA==} + "@nuxt/devtools@3.2.4": + resolution: + { integrity: sha512-VPbFy7hlPzWpEZk4BsuVpNuHq1ZYGV9xezjb7/NGuePuNLqeNn74YZugU+PCtva7OwKhEeTXmMK0Mqo/6+nwNA== } hasBin: true peerDependencies: - '@vitejs/devtools': '*' - vite: '>=6.0' + "@vitejs/devtools": "*" + vite: ">=6.0" peerDependenciesMeta: - '@vitejs/devtools': + "@vitejs/devtools": optional: true - '@nuxt/friendly-errors-webpack-plugin@2.6.0': - resolution: {integrity: sha512-3IZj6MXbzlvUxDncAxgBMLQwGPY/JlNhy2i+AGyOHCAReR5HcBxYjVRBvyaKM9R3s5k4OODYKeHAbrToZH/47w==} - engines: {node: '>=14.18.0', npm: '>=5.0.0'} + "@nuxt/friendly-errors-webpack-plugin@2.6.0": + resolution: + { integrity: sha512-3IZj6MXbzlvUxDncAxgBMLQwGPY/JlNhy2i+AGyOHCAReR5HcBxYjVRBvyaKM9R3s5k4OODYKeHAbrToZH/47w== } + engines: { node: ">=14.18.0", npm: ">=5.0.0" } peerDependencies: webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@nuxt/generator@2.18.1': - resolution: {integrity: sha512-kZMfB5Ymvd/5ek+xfk2svQiMJWEAjZf5XNFTG+2WiNsitHb01Bo3W2QGidy+dwfuLtHoiOJkMovRlyAKWxTohg==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@nuxt/kit@3.21.6': - resolution: {integrity: sha512-5VOwxUcoM/z6w4c75hQrikHpY+TzjTLZQ+QnuO7KajyGx0IJBLVy1lw25oy79leF+GgyjJJO1cHfUfWeuEDCzA==} - engines: {node: '>=18.12.0'} - - '@nuxt/kit@4.4.6': - resolution: {integrity: sha512-AzsqBJeG7b3whIciyzkz4nBossEotM314KzKAptc8kH07ORBIR8Qh3QYKepo2YZwtxiDP2Y9aqzAztwpSEDHtw==} - engines: {node: '>=18.12.0'} - - '@nuxt/loading-screen@2.0.4': - resolution: {integrity: sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ==} - - '@nuxt/nitro-server@3.21.6': - resolution: {integrity: sha512-tcSZauVgyUNZRCC0zYqauRJpEiHS8In3mXkupDlCYhQQmVNTxzxvBim3U4rR0Ww50ZJzOAtFOADeWTjLjYd3GQ==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - nuxt: ^3.21.6 - - '@nuxt/nitro-server@4.4.6': - resolution: {integrity: sha512-3OgAWW8cK+0BgEWiGYv9wP/vfQcIWTs+YNmZZAf1f89py8KnHgHp2aFQjZ/zTXWKTHlkGPl9NntQQkMoF3j1fA==} - engines: {node: ^22.12.0 || ^24.11.0 || >=26.0.0} - peerDependencies: - '@babel/plugin-proposal-decorators': ^7.25.0 - '@babel/plugin-syntax-typescript': ^7.25.0 - '@rollup/plugin-babel': ^6.0.0 || ^7.0.0 - nuxt: ^4.4.6 + "@nuxt/generator@2.18.1": + resolution: + { integrity: sha512-kZMfB5Ymvd/5ek+xfk2svQiMJWEAjZf5XNFTG+2WiNsitHb01Bo3W2QGidy+dwfuLtHoiOJkMovRlyAKWxTohg== } + engines: { node: ^14.18.0 || >=16.10.0 } + + "@nuxt/kit@3.21.8": + resolution: + { integrity: sha512-kg63DUPY5AHPn+9XM7u8rYcdWHXjzwfUscgRDuiC5YUciQ+xdLRhdwXelYFxEAx2nxJHossliiQXbMm/Fleivw== } + engines: { node: ">=18.12.0" } + + "@nuxt/kit@4.4.8": + resolution: + { integrity: sha512-ZUlZ5iYfyfJFDPluhn6ZxFWcsuxWbLnZBc8w3MAROcQ4lYfZ+qFpALBLSNlpc0zhOa++33EE+5PEbOAdVIY+dw== } + engines: { node: ">=18.12.0" } + + "@nuxt/loading-screen@2.0.4": + resolution: + { integrity: sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ== } + + "@nuxt/nitro-server@3.21.8": + resolution: + { integrity: sha512-GWYO2vdZhWekQHFEP7SLNzqHkQ1bVdjFtfJF4SXpl4v3w0jMa2JGIQkuQ0x/YpY1Yt0jAgqJREX8lFud8Cy2gQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + peerDependencies: + nuxt: ^3.21.8 + + "@nuxt/nitro-server@4.4.8": + resolution: + { integrity: sha512-cc1fxgSx34Htesx3JBO+hMhbqd6VljXDC06P+UOA5z53cR224TmEFYT/MUuZDkrtt4qLnSG8yq0IxhEM3NCUlw== } + engines: { node: ^22.12.0 || ^24.11.0 || >=26.0.0 } + peerDependencies: + "@babel/plugin-proposal-decorators": ^7.25.0 + "@babel/plugin-syntax-typescript": ^7.25.0 + "@rollup/plugin-babel": ^6.0.0 || ^7.0.0 + nuxt: ^4.4.8 peerDependenciesMeta: - '@babel/plugin-proposal-decorators': + "@babel/plugin-proposal-decorators": optional: true - '@babel/plugin-syntax-typescript': + "@babel/plugin-syntax-typescript": optional: true - '@rollup/plugin-babel': + "@rollup/plugin-babel": optional: true - '@nuxt/opencollective@0.4.1': - resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} - engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} + "@nuxt/opencollective@0.4.1": + resolution: + { integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ== } + engines: { node: ^14.18.0 || >=16.10.0, npm: ">=5.10.0" } hasBin: true - '@nuxt/schema@3.21.6': - resolution: {integrity: sha512-/1m3/q2QtLQ+c+4CDrlwGtNC5nJ3KdK+MTeaRhMN+fNavqeQFdqArfXVYdzUX+ZeqOL0Pt00vJnwKm0VM1I8mQ==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/schema@3.21.8": + resolution: + { integrity: sha512-BMxtf2x0E9sFji4Txz1boeMiwkhjQQFixdB6+lZXvCGpExZou4TLz82LDcIAZkpJVL0IEcfs96hTLVVBkjGulQ== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/schema@4.4.6': - resolution: {integrity: sha512-7FDMuD+skbFMgfF2ORYKEAKEuEFbu2oS60dln5uVtn94c8DHWCseJSrT3FUHzVUlVwyhztPU6stzB44dEoWAzw==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/schema@4.4.8": + resolution: + { integrity: sha512-igfWuMF0x0Pmx/XwhPwH/bcXgbuwNnjUjqxCAsY6VQhmGKo0e9soJq3Q0ohj+rBkBfX6o2ysTP1/t2M82aK4qA== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/server@2.18.1': - resolution: {integrity: sha512-4GHmgi1NS6uCL+3QzlxmHmEoKkejQKTDrKPtA16w8iw/8EBgCrAkvXukcIMxF7Of+IYi1I/duVmCyferxo7jyw==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/server@2.18.1": + resolution: + { integrity: sha512-4GHmgi1NS6uCL+3QzlxmHmEoKkejQKTDrKPtA16w8iw/8EBgCrAkvXukcIMxF7Of+IYi1I/duVmCyferxo7jyw== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/telemetry@1.5.0': - resolution: {integrity: sha512-MhxiiYCFe0MayN2TvmpcsCV66zBePtrSVkFLJHwTFuneQ5Qma5x0NmCwdov7O4NSuTfgSZels9qPJh0zy0Kc4g==} + "@nuxt/telemetry@1.5.0": + resolution: + { integrity: sha512-MhxiiYCFe0MayN2TvmpcsCV66zBePtrSVkFLJHwTFuneQ5Qma5x0NmCwdov7O4NSuTfgSZels9qPJh0zy0Kc4g== } hasBin: true - '@nuxt/telemetry@2.8.0': - resolution: {integrity: sha512-zAwXY24KYvpLTmiV+osagd2EHkfs5IF+7oDZYTQoit5r0kPlwaCNlzHp5I/wUAWT4LBw6lG8gZ6bWidAdv/erQ==} - engines: {node: '>=18.12.0'} + "@nuxt/telemetry@2.8.0": + resolution: + { integrity: sha512-zAwXY24KYvpLTmiV+osagd2EHkfs5IF+7oDZYTQoit5r0kPlwaCNlzHp5I/wUAWT4LBw6lG8gZ6bWidAdv/erQ== } + engines: { node: ">=18.12.0" } hasBin: true peerDependencies: - '@nuxt/kit': '>=3.0.0' + "@nuxt/kit": ">=3.0.0" - '@nuxt/types@2.18.1': - resolution: {integrity: sha512-PpReoV9oHCnSpB9WqemTUWmlH1kqFHC3Xe5LH904VvCl/3xLO2nGYcrHeZCMV5hXNWsDUyqDnd/2cQHmeqj5lA==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/types@2.18.1": + resolution: + { integrity: sha512-PpReoV9oHCnSpB9WqemTUWmlH1kqFHC3Xe5LH904VvCl/3xLO2nGYcrHeZCMV5hXNWsDUyqDnd/2cQHmeqj5lA== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/typescript-build@3.0.2': - resolution: {integrity: sha512-IFSznjafW5xm0XHg9Q9aHVW7i9J2pAYfyorh3ro3Pf0OnCbS0acmwBnp2juza+DqNhZa1DhNentmUsgiYp730g==} + "@nuxt/typescript-build@3.0.2": + resolution: + { integrity: sha512-IFSznjafW5xm0XHg9Q9aHVW7i9J2pAYfyorh3ro3Pf0OnCbS0acmwBnp2juza+DqNhZa1DhNentmUsgiYp730g== } peerDependencies: - '@nuxt/types': '>=2.13.1' + "@nuxt/types": ">=2.13.1" typescript: 4.x || 5.x - '@nuxt/utils@2.18.1': - resolution: {integrity: sha512-aWeB8VMhtymo5zXUiQaohCu8IqJqENF9iCag3wyJpdhpNDVoghGUJAl0F6mQvNTJgQzseFtf4XKqTfvcgVzyGg==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/utils@2.18.1": + resolution: + { integrity: sha512-aWeB8VMhtymo5zXUiQaohCu8IqJqENF9iCag3wyJpdhpNDVoghGUJAl0F6mQvNTJgQzseFtf4XKqTfvcgVzyGg== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/vite-builder@3.21.6': - resolution: {integrity: sha512-JjUJzo/KXgHnpI/podDCBGn93QyfKjcxrFzZkXRXsaUSIXMncrQK4Bs9OKBIWxcpsWxs93a130w1i7qjd2qizA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@nuxt/vite-builder@3.21.8": + resolution: + { integrity: sha512-aapUWCQGuLEzUj5hx+J/lfpzqt/fBYV8hmCQ930R4SM4BvEzqMR0wVkbU0ry0CDK+uQzb/2n50qIHcEp0ywc0Q== } + engines: { node: ^20.19.0 || >=22.12.0 } peerDependencies: - nuxt: 3.21.6 + nuxt: 3.21.8 rolldown: ^1.0.0-beta.38 rollup-plugin-visualizer: ^6.0.0 || ^7.0.1 vue: ^3.3.4 @@ -18921,1388 +20322,2069 @@ packages: rollup-plugin-visualizer: optional: true - '@nuxt/vite-builder@4.4.6': - resolution: {integrity: sha512-q/JDHLy/tBJodyqu75GBrFWcOkkj9alGH8Qh/Wpir/xD6/MAMvnQNOHewC3KH40jMHxdETSglEmFaAkEIHzmLQ==} - engines: {node: ^22.12.0 || ^24.11.0 || >=26.0.0} + "@nuxt/vite-builder@4.4.8": + resolution: + { integrity: sha512-54M/k6qVY85Qeoe1m/lPZ0SANGJEbI50r5uYgh3XT942ENve3K5Nk6TMYp8i5wGGC4TWvPea+1mlCrp8rjsXag== } + engines: { node: ^22.12.0 || ^24.11.0 || >=26.0.0 } peerDependencies: - '@babel/plugin-proposal-decorators': ^7.25.0 - '@babel/plugin-syntax-jsx': ^7.25.0 - nuxt: 4.4.6 + "@babel/plugin-proposal-decorators": ^7.25.0 + "@babel/plugin-syntax-jsx": ^7.25.0 + nuxt: 4.4.8 rolldown: ^1.0.0-beta.38 rollup-plugin-visualizer: ^6.0.0 || ^7.0.1 vue: ^3.3.4 peerDependenciesMeta: - '@babel/plugin-proposal-decorators': + "@babel/plugin-proposal-decorators": optional: true - '@babel/plugin-syntax-jsx': + "@babel/plugin-syntax-jsx": optional: true rolldown: optional: true rollup-plugin-visualizer: optional: true - '@nuxt/vue-app@2.18.1': - resolution: {integrity: sha512-yxkunoTv6EVa42xM7qES0N1DNMo4UbP/s89L7HjqngQ4KzVWyyzK0qqJ9u3Gu4CabXhHFSquu11gtn+dylKyTA==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/vue-app@2.18.1": + resolution: + { integrity: sha512-yxkunoTv6EVa42xM7qES0N1DNMo4UbP/s89L7HjqngQ4KzVWyyzK0qqJ9u3Gu4CabXhHFSquu11gtn+dylKyTA== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/vue-renderer@2.18.1': - resolution: {integrity: sha512-Nl8/IbV+sTEWCczHKcjLbZrFO6y5fCcFxZwd6Opatcbr2z380abwpDf3a9UjnVW3wPEM+/xoy1/MBCLY3VmWcw==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/vue-renderer@2.18.1": + resolution: + { integrity: sha512-Nl8/IbV+sTEWCczHKcjLbZrFO6y5fCcFxZwd6Opatcbr2z380abwpDf3a9UjnVW3wPEM+/xoy1/MBCLY3VmWcw== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxt/webpack@2.18.1': - resolution: {integrity: sha512-6EqbIoheLAJ0E7dfQB5ftOKL4d74N98dFMY3q89QTaoS9VXBFB5D1MLd27WuyfhChmzuHRwHfjaBW8QFdhjwew==} - engines: {node: ^14.18.0 || >=16.10.0} + "@nuxt/webpack@2.18.1": + resolution: + { integrity: sha512-6EqbIoheLAJ0E7dfQB5ftOKL4d74N98dFMY3q89QTaoS9VXBFB5D1MLd27WuyfhChmzuHRwHfjaBW8QFdhjwew== } + engines: { node: ^14.18.0 || >=16.10.0 } - '@nuxtjs/eslint-config-typescript@12.1.0': - resolution: {integrity: sha512-l2fLouDYwdAvCZEEw7wGxOBj+i8TQcHFu3zMPTLqKuv1qu6WcZIr0uztkbaa8ND1uKZ9YPqKx6UlSOjM4Le69Q==} + "@nuxtjs/eslint-config-typescript@12.1.0": + resolution: + { integrity: sha512-l2fLouDYwdAvCZEEw7wGxOBj+i8TQcHFu3zMPTLqKuv1qu6WcZIr0uztkbaa8ND1uKZ9YPqKx6UlSOjM4Le69Q== } peerDependencies: eslint: ^8.48.0 - '@nuxtjs/eslint-config@12.0.0': - resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} + "@nuxtjs/eslint-config@12.0.0": + resolution: + { integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg== } peerDependencies: eslint: ^8.23.0 - '@nuxtjs/eslint-module@4.1.0': - resolution: {integrity: sha512-lW9ozEjOrnU8Uot3GOAZ/0ThNAds0d6UAp9n46TNxcTvH/MOcAggGbMNs16c0HYT2HlyPQvXORCHQ5+9p87mmw==} + "@nuxtjs/eslint-module@4.1.0": + resolution: + { integrity: sha512-lW9ozEjOrnU8Uot3GOAZ/0ThNAds0d6UAp9n46TNxcTvH/MOcAggGbMNs16c0HYT2HlyPQvXORCHQ5+9p87mmw== } peerDependencies: - eslint: '>=7' + eslint: ">=7" - '@nuxtjs/youch@4.2.3': - resolution: {integrity: sha512-XiTWdadTwtmL/IGkNqbVe+dOlT+IMvcBu7TvKI7plWhVQeBCQ9iKhk3jgvVWFyiwL2yHJDlEwOM5v9oVES5Xmw==} + "@nuxtjs/youch@4.2.3": + resolution: + { integrity: sha512-XiTWdadTwtmL/IGkNqbVe+dOlT+IMvcBu7TvKI7plWhVQeBCQ9iKhk3jgvVWFyiwL2yHJDlEwOM5v9oVES5Xmw== } - '@nx/devkit@22.7.4': - resolution: {integrity: sha512-yd01XGPIZYsyheCgqJZgZ3ThdtZha0q6LDQG45OXfI5yBGlS3w53pn/z5tDMwcErdEnOQBOkhb6dwy6DHyrG3w==} + "@nx/devkit@22.7.5": + resolution: + { integrity: sha512-/63ziS7kdHXYTLLhwWBu9hFwoFFT8xf+PkcQjsNdPqc5JmkYkSew0cE/vp5ORgBpGLWWnFPJgmfqjbJoO2C7jA== } peerDependencies: - nx: '>= 21 <= 23 || ^22.0.0-0' + nx: ">= 21 <= 23 || ^22.0.0-0" - '@nx/devkit@22.7.5': - resolution: {integrity: sha512-/63ziS7kdHXYTLLhwWBu9hFwoFFT8xf+PkcQjsNdPqc5JmkYkSew0cE/vp5ORgBpGLWWnFPJgmfqjbJoO2C7jA==} + "@nx/devkit@23.0.0": + resolution: + { integrity: sha512-AYZWLcgYVQJjhhYwoKWFiu0u4jlrfMM64zarRbpQ7vwXWSJXCMQ2j2w9c5vzTnH3SeWigyyEYRo9xulfNESJ8w== } peerDependencies: - nx: '>= 21 <= 23 || ^22.0.0-0' + nx: ">= 22 <= 24 || ^23.0.0-0" - '@nx/js@22.7.5': - resolution: {integrity: sha512-2nJdlNPwYRldsdmUz+p/O8kF7eVjINaycTO4o1FXn8DL09wLvhxb1kFAaJrGA3Ig6znAnmRVGitccFt1QTPCIg==} + "@nx/js@23.0.0": + resolution: + { integrity: sha512-sngYY03gScPmJFtJ2WGBB1zFyWGgQIWCrNoytJZnJbjjPxw5X5pFxdx7t8z7vXcFNz83CQiT7f8HSnUHDR+/XA== } peerDependencies: + "@swc/cli": ">=0.6.0 <0.9.0" verdaccio: ^6.0.5 peerDependenciesMeta: + "@swc/cli": + optional: true verdaccio: optional: true - '@nx/nx-darwin-arm64@22.7.4': - resolution: {integrity: sha512-qWf7AOVRpUp8Ixl6ueptZWPtgEzJcv89ifjRPqupMZgqJMpzwPk+AUjAxx6hFuLooevYRXp8V8dT5ExSclASCw==} + "@nx/nx-darwin-arm64@22.7.5": + resolution: + { integrity: sha512-eoPtwx0qZqvRUD+VVOHm150AlSYwYoPxkDHBBGqKCn5nzPspb0lLWw8q83crM/L1M928YgK0WmGf3C++7eqsTA== } cpu: [arm64] os: [darwin] - '@nx/nx-darwin-arm64@22.7.5': - resolution: {integrity: sha512-eoPtwx0qZqvRUD+VVOHm150AlSYwYoPxkDHBBGqKCn5nzPspb0lLWw8q83crM/L1M928YgK0WmGf3C++7eqsTA==} + "@nx/nx-darwin-arm64@23.0.0": + resolution: + { integrity: sha512-c/rXP3LYXJLC1F+9KDrWE+n1nkDnTEfHnA1KAK3A/CSk8EfgY0RhekcdbGISrHqgbccdVTBRTNUeTdwD+w23Xw== } cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.7.4': - resolution: {integrity: sha512-ouw1X1DAmLHlsm8LCJo8fRD30Mn8AcFk8LLIsSyBv2O3+kP+PDMeUEQI/kM9ADYvlq0oaabOeKc/wFhwAF/KgQ==} + "@nx/nx-darwin-x64@22.7.5": + resolution: + { integrity: sha512-VLOn/ZoEn3HfjSj+yIHLCM56/el79r+9I28CkZNHaSXJQWZ3edSkcgcfYjVxCurpN2VEwDQHLBeFCH8M+lQ7wQ== } cpu: [x64] os: [darwin] - '@nx/nx-darwin-x64@22.7.5': - resolution: {integrity: sha512-VLOn/ZoEn3HfjSj+yIHLCM56/el79r+9I28CkZNHaSXJQWZ3edSkcgcfYjVxCurpN2VEwDQHLBeFCH8M+lQ7wQ==} + "@nx/nx-darwin-x64@23.0.0": + resolution: + { integrity: sha512-fb1+s0dASz/a+0Ex3Qdw6Y1NssMZ58f8SyQtnr+c7ITM8Yi5njWfNVZMk1tAnAv7CSFvUvltaYekS88GMQ/8lQ== } cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.7.4': - resolution: {integrity: sha512-cRzKEyqh8U9YiaInjVqius9WHdnzz49O5u8K4kBmSG3KV+5iYKTfnG7cAK8n6V2Af84IUQQWLB7UmKqRZX4ChQ==} + "@nx/nx-freebsd-x64@22.7.5": + resolution: + { integrity: sha512-LEVer/E2xfGvK9Go+imMQoEninOoq/38Z2bhV1SD3AThXrp1xaLFVkW5jQ6juebeVkAeztEoMLFlr576egS0vw== } cpu: [x64] os: [freebsd] - '@nx/nx-freebsd-x64@22.7.5': - resolution: {integrity: sha512-LEVer/E2xfGvK9Go+imMQoEninOoq/38Z2bhV1SD3AThXrp1xaLFVkW5jQ6juebeVkAeztEoMLFlr576egS0vw==} + "@nx/nx-freebsd-x64@23.0.0": + resolution: + { integrity: sha512-HYawS59K5IyNu28/0i0ectTAPlyBwPO0vhxw9UMGZ9ni6Yz3WvwPFTGZrWaEVAjGe3pQlQEVVBOr5/0Uw0Sw9A== } cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.7.4': - resolution: {integrity: sha512-STDSy2yuliAb/WJVXhTvTCpdvax+h6oFSkUN63pYtRuUVsUYnWqi9wj/qwSN6J+H0nX0AwC4uF6xdTfEf+MCbg==} + "@nx/nx-linux-arm-gnueabihf@22.7.5": + resolution: + { integrity: sha512-NP27EFGpmFJM6RL1Ey/AFJ7gA2xuqtIHaw6jjSNGvfrnZRUNaway30GrVaGGeODf0DsvAty/unqoBMPy6kDHbw== } cpu: [arm] os: [linux] - '@nx/nx-linux-arm-gnueabihf@22.7.5': - resolution: {integrity: sha512-NP27EFGpmFJM6RL1Ey/AFJ7gA2xuqtIHaw6jjSNGvfrnZRUNaway30GrVaGGeODf0DsvAty/unqoBMPy6kDHbw==} + "@nx/nx-linux-arm-gnueabihf@23.0.0": + resolution: + { integrity: sha512-GSPVEUKL/PUuKCubNcH+QtOJ+4+VFHSpKDMTFFjizTh//d4SunC+DE6vvwRt5bCervohCW2B7BicQc6IP2V51g== } cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.7.4': - resolution: {integrity: sha512-fvFk3yjIIo17iGdsJc3hZ3tpd7Dulmcn2dOu3NbtCFTnT10TnNrkCRSNLmc9+5UP0wGdtX4ex72h/ux4uiaUag==} + "@nx/nx-linux-arm64-gnu@22.7.5": + resolution: + { integrity: sha512-QLnkJl3HkHsPfpLiNiAiMfpfAeFpic0U1diAxF8RqChOkCpQ7ulvyBVgE1UrQxvhd+gFQ3ed5RNDxtCRw8nTiw== } cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-gnu@22.7.5': - resolution: {integrity: sha512-QLnkJl3HkHsPfpLiNiAiMfpfAeFpic0U1diAxF8RqChOkCpQ7ulvyBVgE1UrQxvhd+gFQ3ed5RNDxtCRw8nTiw==} + "@nx/nx-linux-arm64-gnu@23.0.0": + resolution: + { integrity: sha512-MkpI1SU+OxJ86SL5XcNJLKXsvnxzDwq4uh7Wbehcs62IWXtyGeuxHo1jYGrobYSV8v9f0Aafp3c2GxSxdZX/9Q== } cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-musl@22.7.4': - resolution: {integrity: sha512-NzSVz2hj/e2ruY9vxMCUZ35ek6reL3HcvDZgVuR2ZiDpoOr7dde0MHjBjn9wIvXldtK6UdvDeBuSLiQ/pPYuiQ==} + "@nx/nx-linux-arm64-musl@22.7.5": + resolution: + { integrity: sha512-cEP6KmwBgnb38+jTTaibWCjwXcHmigqhTfy0tN1be7WZr6bHxbqNLsXqKRN70PSNA3HouZcxw1cdRL8tqbPBBA== } cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-arm64-musl@22.7.5': - resolution: {integrity: sha512-cEP6KmwBgnb38+jTTaibWCjwXcHmigqhTfy0tN1be7WZr6bHxbqNLsXqKRN70PSNA3HouZcxw1cdRL8tqbPBBA==} + "@nx/nx-linux-arm64-musl@23.0.0": + resolution: + { integrity: sha512-yASOY5MpsuzHKSF4xRyoVCIWv65GDlVs9VxZ+aZIfw5R9XbPgiaHaHRGlLBAm0j7WFw7wBCOB3WOxBK+wjC3dQ== } cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-gnu@22.7.4': - resolution: {integrity: sha512-Y53jiik1iUaj3MGZpHpp1p9EwlsrOyGLioX6CD6ziuCpDP9C0M4taEDGeZHXv5NRSVYbOR3/HhwYcMwnb2urYA==} + "@nx/nx-linux-x64-gnu@22.7.5": + resolution: + { integrity: sha512-tbaX1tZCSpGifDNBfDdEZAMxVF3Yg4bhFP/bm1needc0diqb+Zflc0u5tM5/6BWDMITQDwenJVsNiQ8ZdtJURA== } cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-gnu@22.7.5': - resolution: {integrity: sha512-tbaX1tZCSpGifDNBfDdEZAMxVF3Yg4bhFP/bm1needc0diqb+Zflc0u5tM5/6BWDMITQDwenJVsNiQ8ZdtJURA==} + "@nx/nx-linux-x64-gnu@23.0.0": + resolution: + { integrity: sha512-HvDP11Ub00C7kAMC7NvX+sbV8wM5j+OjLQalys0wlyqZ+7SL9OulQv/cyMCEHZSKW8YPt4326G0+omulZDwIGg== } cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-musl@22.7.4': - resolution: {integrity: sha512-jbq9NDXbEdXCBulGh8T3sLR/uMnuxAvOeOHiJp+KDIGBxS5dCfdmvCzf54DgU1sOCNhly4pud8lcOVP/qFImFA==} + "@nx/nx-linux-x64-musl@22.7.5": + resolution: + { integrity: sha512-H0M7csOZIgPT822LqjxSXzf4MXRND15vIkAQe3F3Jlr3Si8LC3tzbL52aVcRfgb8MF/xOB5U47mSwxWt1M2bPQ== } cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-musl@22.7.5': - resolution: {integrity: sha512-H0M7csOZIgPT822LqjxSXzf4MXRND15vIkAQe3F3Jlr3Si8LC3tzbL52aVcRfgb8MF/xOB5U47mSwxWt1M2bPQ==} + "@nx/nx-linux-x64-musl@23.0.0": + resolution: + { integrity: sha512-t1pSyBrxQ0Dly9VzB8WZXhVQMk044P8AyMRRiZ+NOs1pK4eRqVlmJmwJQw3ZfZZYUhA7B02PV8DHOjactctdag== } cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-win32-arm64-msvc@22.7.4': - resolution: {integrity: sha512-s2TPwjJBxiBysI9hp6uwn5yx7PDVAMPvVZYSmsbxenHhERAUf33UTfnEiP5YGoPUZMbYB8CboFBVtGT4GwG+jw==} + "@nx/nx-win32-arm64-msvc@22.7.5": + resolution: + { integrity: sha512-JTcZch9YAnDL1gbhqePz3DZ4x7iYemLn1yJzrjbbXAmXju2eiiJiZvJJHbV06+SP9HKXDT8RjTKuAWTdVxnHug== } cpu: [arm64] os: [win32] - '@nx/nx-win32-arm64-msvc@22.7.5': - resolution: {integrity: sha512-JTcZch9YAnDL1gbhqePz3DZ4x7iYemLn1yJzrjbbXAmXju2eiiJiZvJJHbV06+SP9HKXDT8RjTKuAWTdVxnHug==} + "@nx/nx-win32-arm64-msvc@23.0.0": + resolution: + { integrity: sha512-IKTwZZgejzyUZChQjGss2cCSi2rR0J3FnpyQkjt9I4fFYTNd4YCNs5njovrBjQtVLpi/vv3e96fl3ccjbzIUpA== } cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.7.4': - resolution: {integrity: sha512-0WyBsO/XuAdOrpbPCbQ7zG7aXb5gEyEz1UZhAtNt5brehngT2RjIl8IrLj5q2qVNyKaw2PZoFp8yEwCLszbZ+g==} + "@nx/nx-win32-x64-msvc@22.7.5": + resolution: + { integrity: sha512-ngcMyHdBJ9FSz2nHdbZ7gtJlFq0O2b05sPAsVMkZ18CKzdaA1qrBDJfsMO49hPCny505eiT766+CkKdaCDl5kA== } cpu: [x64] os: [win32] - '@nx/nx-win32-x64-msvc@22.7.5': - resolution: {integrity: sha512-ngcMyHdBJ9FSz2nHdbZ7gtJlFq0O2b05sPAsVMkZ18CKzdaA1qrBDJfsMO49hPCny505eiT766+CkKdaCDl5kA==} + "@nx/nx-win32-x64-msvc@23.0.0": + resolution: + { integrity: sha512-2LSdp8U5gDaXtXbGLiKRdQM0f4yNCaraCpQrz27yjlQbyrULyCiaB00NPBL2JlhH9eQahx/QRyizhkMQ0hzVBA== } cpu: [x64] os: [win32] - '@nx/workspace@22.7.5': - resolution: {integrity: sha512-f3zx8EAOl0ANd2UXZIniBoHfDvNvi2Uy65R9Rp6emdcx7rxsuTU5Eaidryleo9wIQ5cZAcMx7Wvzp5Srj8diKA==} - - '@octokit/auth-token@4.0.0': - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} - engines: {node: '>= 18'} - - '@octokit/core@5.2.2': - resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} - engines: {node: '>= 18'} - - '@octokit/endpoint@9.0.6': - resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} - engines: {node: '>= 18'} + "@nx/workspace@23.0.0": + resolution: + { integrity: sha512-h+Lx5AzLsbnrzv3F3vfqUFmQQginLV/+M/4L2NOwEKeMYNJ4QYDTtgvn0fnJv+qGMWZ4HDScvDNCxVTz8vrhvw== } - '@octokit/graphql@7.1.1': - resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} - engines: {node: '>= 18'} + "@octokit/auth-token@4.0.0": + resolution: + { integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== } + engines: { node: ">= 18" } - '@octokit/openapi-types@24.2.0': - resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + "@octokit/core@5.2.2": + resolution: + { integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg== } + engines: { node: ">= 18" } - '@octokit/plugin-enterprise-rest@6.0.1': - resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2': - resolution: {integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==} - engines: {node: '>= 18'} + "@octokit/endpoint@9.0.6": + resolution: + { integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw== } + engines: { node: ">= 18" } + + "@octokit/graphql@7.1.1": + resolution: + { integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g== } + engines: { node: ">= 18" } + + "@octokit/openapi-types@24.2.0": + resolution: + { integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg== } + + "@octokit/plugin-enterprise-rest@6.0.1": + resolution: + { integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== } + + "@octokit/plugin-paginate-rest@11.4.4-cjs.2": + resolution: + { integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw== } + engines: { node: ">= 18" } peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-request-log@4.0.1': - resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} - engines: {node: '>= 18'} + "@octokit/core": "5" + + "@octokit/plugin-request-log@4.0.1": + resolution: + { integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== } + engines: { node: ">= 18" } peerDependencies: - '@octokit/core': '5' + "@octokit/core": "5" - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1': - resolution: {integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==} - engines: {node: '>= 18'} + "@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1": + resolution: + { integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ== } + engines: { node: ">= 18" } peerDependencies: - '@octokit/core': ^5 + "@octokit/core": ^5 - '@octokit/request-error@5.1.1': - resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} - engines: {node: '>= 18'} + "@octokit/request-error@5.1.1": + resolution: + { integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g== } + engines: { node: ">= 18" } - '@octokit/request@8.4.1': - resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} - engines: {node: '>= 18'} + "@octokit/request@8.4.1": + resolution: + { integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw== } + engines: { node: ">= 18" } - '@octokit/rest@20.1.2': - resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} - engines: {node: '>= 18'} + "@octokit/rest@20.1.2": + resolution: + { integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA== } + engines: { node: ">= 18" } - '@octokit/types@13.10.0': - resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + "@octokit/types@13.10.0": + resolution: + { integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA== } - '@one-ini/wasm@0.1.1': - resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + "@one-ini/wasm@0.1.1": + resolution: + { integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== } - '@one-ini/wasm@0.2.1': - resolution: {integrity: sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==} + "@one-ini/wasm@0.2.1": + resolution: + { integrity: sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg== } - '@open-wc/building-utils@2.21.1': - resolution: {integrity: sha512-wCyxkvkcA7vRwXJeyrIpRhDbBrVlPGAgYKsuG9n1Pyxt2aypthtZR+1q0+wPkr6h1ZYgJnM9CWQYe72AaAXxvw==} + "@open-wc/building-utils@2.21.1": + resolution: + { integrity: sha512-wCyxkvkcA7vRwXJeyrIpRhDbBrVlPGAgYKsuG9n1Pyxt2aypthtZR+1q0+wPkr6h1ZYgJnM9CWQYe72AaAXxvw== } - '@open-wc/dedupe-mixin@1.4.0': - resolution: {integrity: sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==} + "@open-wc/dedupe-mixin@2.0.1": + resolution: + { integrity: sha512-+R4VxvceUxHAUJXJQipkkoV9fy10vNo+OnUnGKZnVmcwxMl460KLzytnUM4S35SI073R0yZQp9ra0MbPUwVcEA== } - '@open-wc/karma-esm@3.0.9': - resolution: {integrity: sha512-GzpL/iHVBskZDmKC7cLYLBYzuSoIng7CxyMxp5Ai4VxMSwCVFG+6j/PKLOXVma+EAwwvmq2L5B9tWVbXR34Peg==} + "@open-wc/karma-esm@3.0.9": + resolution: + { integrity: sha512-GzpL/iHVBskZDmKC7cLYLBYzuSoIng7CxyMxp5Ai4VxMSwCVFG+6j/PKLOXVma+EAwwvmq2L5B9tWVbXR34Peg== } - '@open-wc/scoped-elements@2.2.4': - resolution: {integrity: sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==} + "@open-wc/scoped-elements@3.0.10": + resolution: + { integrity: sha512-esE95vxq6Y7w9/8H/oPvqN9QVR+ys3F9J2/ITyuTWnlSYaJueQmcS5CR5OybJMjjm9R5pmSoOe6Vau/O7J6d2g== } - '@open-wc/semantic-dom-diff@0.20.1': - resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==} + "@open-wc/semantic-dom-diff@0.20.1": + resolution: + { integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA== } - '@open-wc/testing-helpers@2.3.2': - resolution: {integrity: sha512-uZMGC/C1m5EiwQsff6KMmCW25TYMQlJt4ilAWIjnelWGFg9HPUiLnlFvAas3ESUP+4OXLO8Oft7p4mHvbYvAEQ==} + "@open-wc/testing-helpers@3.0.1": + resolution: + { integrity: sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw== } - '@open-wc/testing-karma@4.0.9': - resolution: {integrity: sha512-YFjYddMfrMG1lmtzkk8EuDzMOzobXx+FHcUzPzu1zeKNz9ZCJqlvFjxLjDuhedQgM98oksQ4ibKK0+aNuHZyWQ==} + "@open-wc/testing-karma@4.0.9": + resolution: + { integrity: sha512-YFjYddMfrMG1lmtzkk8EuDzMOzobXx+FHcUzPzu1zeKNz9ZCJqlvFjxLjDuhedQgM98oksQ4ibKK0+aNuHZyWQ== } - '@open-wc/testing@3.2.2': - resolution: {integrity: sha512-byN4dJTd6ZyI9mWmI4lVj30uiu+rYvQr93g64Pd7UFBdAUgb02DHLj6fkJ1gjxA6LC/MeFd7K7mOZ4+vKrMptw==} + "@open-wc/testing@4.0.0": + resolution: + { integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w== } - '@opentelemetry/api-logs@0.57.2': - resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} - engines: {node: '>=14'} + "@opentelemetry/api-logs@0.57.2": + resolution: + { integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A== } + engines: { node: ">=14" } - '@opentelemetry/api@1.9.1': - resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} - engines: {node: '>=8.0.0'} + "@opentelemetry/api@1.9.1": + resolution: + { integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q== } + engines: { node: ">=8.0.0" } - '@opentelemetry/context-async-hooks@1.30.1': - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} - engines: {node: '>=14'} + "@opentelemetry/context-async-hooks@1.30.1": + resolution: + { integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + "@opentelemetry/api": ">=1.0.0 <1.10.0" - '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} - engines: {node: '>=14'} + "@opentelemetry/core@1.30.1": + resolution: + { integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + "@opentelemetry/api": ">=1.0.0 <1.10.0" - '@opentelemetry/instrumentation-amqplib@0.46.1': - resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-amqplib@0.46.1": + resolution: + { integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-connect@0.43.1': - resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-connect@0.43.1": + resolution: + { integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.16.1': - resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-dataloader@0.16.1": + resolution: + { integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-express@0.47.1': - resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-express@0.47.1": + resolution: + { integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-fs@0.19.1': - resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-fs@0.19.1": + resolution: + { integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.43.1': - resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-generic-pool@0.43.1": + resolution: + { integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.47.1': - resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-graphql@0.47.1": + resolution: + { integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.45.2': - resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-hapi@0.45.2": + resolution: + { integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-http@0.57.2': - resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-http@0.57.2": + resolution: + { integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.47.1': - resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-ioredis@0.47.1": + resolution: + { integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.7.1': - resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-kafkajs@0.7.1": + resolution: + { integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-knex@0.44.1': - resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-knex@0.44.1": + resolution: + { integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-koa@0.47.1': - resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-koa@0.47.1": + resolution: + { integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.44.1': - resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-lru-memoizer@0.44.1": + resolution: + { integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.52.0': - resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-mongodb@0.52.0": + resolution: + { integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.46.1': - resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-mongoose@0.46.1": + resolution: + { integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.45.2': - resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-mysql2@0.45.2": + resolution: + { integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.45.1': - resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-mysql@0.45.1": + resolution: + { integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-pg@0.51.1': - resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-pg@0.51.1": + resolution: + { integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-redis-4@0.46.1': - resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-redis-4@0.46.1": + resolution: + { integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.18.1': - resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-tedious@0.18.1": + resolution: + { integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/instrumentation-undici@0.10.1': - resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation-undici@0.10.1": + resolution: + { integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.7.0 + "@opentelemetry/api": ^1.7.0 - '@opentelemetry/instrumentation@0.57.2': - resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} - engines: {node: '>=14'} + "@opentelemetry/instrumentation@0.57.2": + resolution: + { integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.3.0 + "@opentelemetry/api": ^1.3.0 - '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} + "@opentelemetry/redis-common@0.36.2": + resolution: + { integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g== } + engines: { node: ">=14" } - '@opentelemetry/resources@1.30.1': - resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} - engines: {node: '>=14'} + "@opentelemetry/resources@1.30.1": + resolution: + { integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + "@opentelemetry/api": ">=1.0.0 <1.10.0" - '@opentelemetry/sdk-trace-base@1.30.1': - resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} - engines: {node: '>=14'} + "@opentelemetry/sdk-trace-base@1.30.1": + resolution: + { integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + "@opentelemetry/api": ">=1.0.0 <1.10.0" - '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} - engines: {node: '>=14'} + "@opentelemetry/semantic-conventions@1.28.0": + resolution: + { integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA== } + engines: { node: ">=14" } - '@opentelemetry/semantic-conventions@1.41.1': - resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} - engines: {node: '>=14'} + "@opentelemetry/semantic-conventions@1.41.1": + resolution: + { integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA== } + engines: { node: ">=14" } - '@opentelemetry/sql-common@0.40.1': - resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} - engines: {node: '>=14'} + "@opentelemetry/sql-common@0.40.1": + resolution: + { integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg== } + engines: { node: ">=14" } peerDependencies: - '@opentelemetry/api': ^1.1.0 + "@opentelemetry/api": ^1.1.0 - '@oslojs/encoding@1.1.0': - resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + "@oslojs/encoding@1.1.0": + resolution: + { integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ== } + + "@oxc-minify/binding-android-arm-eabi@0.125.0": + resolution: + { integrity: sha512-ZgtxGA/5dkYPTyXYr2lK1q0tAT6ZXEULSf59hZ8hc2PuYSaVVaQQsIDO1BomLMD+gOzcPMZb8ofzNrD3F4DB5A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [android] - '@oxc-minify/binding-android-arm-eabi@0.125.0': - resolution: {integrity: sha512-ZgtxGA/5dkYPTyXYr2lK1q0tAT6ZXEULSf59hZ8hc2PuYSaVVaQQsIDO1BomLMD+gOzcPMZb8ofzNrD3F4DB5A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-android-arm-eabi@0.132.0": + resolution: + { integrity: sha512-NXxgL3FNGEBz8r+8iSl8wSdyCEMGisVmn2GVuJc5GycWgGzxiP9V9/svgD039JnO9nRAi0j+hP3FNAuDCP4aQg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [android] - '@oxc-minify/binding-android-arm-eabi@0.131.0': - resolution: {integrity: sha512-yLa7y9jjJgUeUUMm6AtjmBIQzK1YU5sYcNJnVVtr6WtoWu5SpuNDZ8u6cl/dhn0g/oQgVlf+E+8WJfsExt8R+Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-android-arm-eabi@0.133.0": + resolution: + { integrity: sha512-D8M1+nqwLaACHZsld/t6f+cE4N97XOu5iQ88f1ZaYH4ptFzFrXo5N7wUKACTI4xmNUD+6W0Y4Apk5U2r8HLdBQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [android] - '@oxc-minify/binding-android-arm64@0.125.0': - resolution: {integrity: sha512-1o2A9ZdVUdEAszP6MZ5Op6hkgFBzqFz6ux/Tqxf+WGCT6fljCiW5f8gIkHBB2Q8IYfrCtb0vMD7tfpmmLdl/iQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-android-arm64@0.125.0": + resolution: + { integrity: sha512-1o2A9ZdVUdEAszP6MZ5Op6hkgFBzqFz6ux/Tqxf+WGCT6fljCiW5f8gIkHBB2Q8IYfrCtb0vMD7tfpmmLdl/iQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@oxc-minify/binding-android-arm64@0.131.0': - resolution: {integrity: sha512-ShZDYFEVd46qCc9L0D3ZTPLXe/DezTedEj7g6x1Bdlm1WwgQ1pQJgWkqpMGlQhUet5wq4WUpQB/P6afK470Ydg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-android-arm64@0.132.0": + resolution: + { integrity: sha512-XYogHG1aSjNEMKWUfWmBWtN9rnpQ2nA4MiecdiAOfofDHTQiU5ybrPH6VvDAtRXf2kr8WtPNX7eenhC3uWFWoA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.125.0': - resolution: {integrity: sha512-tez+f838Gw+TJAdbxf1fIa4l2paDsuZ42CAMimJuKarGIP9wUxVa7jh5M5nskQR6a+6lERFpARWQzgntVLw+Yw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-android-arm64@0.133.0": + resolution: + { integrity: sha512-dnQUJdpOEh/nZfQtvGGN61VcCCcPJ2aCm+ndl8GIA2lk2GpmIBgZ9h+phLVhgUFGt2es+2AQc0xvtK7RFNsViw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] + + "@oxc-minify/binding-darwin-arm64@0.125.0": + resolution: + { integrity: sha512-tez+f838Gw+TJAdbxf1fIa4l2paDsuZ42CAMimJuKarGIP9wUxVa7jh5M5nskQR6a+6lERFpARWQzgntVLw+Yw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-arm64@0.131.0': - resolution: {integrity: sha512-h+5iCSKxpK7SJdAHmY4I+0BBxR+pJQVNJvAIB3KcOVyz8/ybaO2r41URCwV1N3FnPYkIIiMokZ24YYMB6/GrRw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-darwin-arm64@0.132.0": + resolution: + { integrity: sha512-gm/M5dgm7IvA/g9tweMqiFyD15yKrxGUX3myjFP+EYIYVW+RYuvwU5MAIZUOxXY0GnjU1/iRN/JkLhwvhZVsDQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.125.0': - resolution: {integrity: sha512-Atf1RYU2pwdGgJim6JBf8k6dReWRJhkLl0a1ZZPsd2k8Bl1ngGkJ3ywsJFZbifKmXerow8I3Dsa273fjNly1cQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-darwin-arm64@0.133.0": + resolution: + { integrity: sha512-K6+aXlOlsCcibpTiTitQYNXWGGwea0fEKF/kGHCNB+MNqOLCkdC7wesycaABYcXcyr58DhDoJnVb8E4Hq95iVw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] + + "@oxc-minify/binding-darwin-x64@0.125.0": + resolution: + { integrity: sha512-Atf1RYU2pwdGgJim6JBf8k6dReWRJhkLl0a1ZZPsd2k8Bl1ngGkJ3ywsJFZbifKmXerow8I3Dsa273fjNly1cQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] + + "@oxc-minify/binding-darwin-x64@0.132.0": + resolution: + { integrity: sha512-s7ecbOJeLccy3nqQlkiq9cV0D0q8j1OyHmxRz22m8qZlcKrc3s4gmhwj5ertipA8ePn3FOXv4azf8b5gatDDug== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.131.0': - resolution: {integrity: sha512-EIP8KmjqfZeDdhrbG+0GDsiw1/Bi3415uCFokhOm6b8tGG0UdiemVHAz9IQE/sIJgwguXYtg5ydz9oFYVOlOfA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-darwin-x64@0.133.0": + resolution: + { integrity: sha512-BFEXHxYNwThyaO63p1VE5MOOXNGkHsHfkmajOCKXH40TfllTHQenXhpJ9mHDoF7EhaQjArpPjlDY88BuPjhurw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@oxc-minify/binding-freebsd-x64@0.125.0': - resolution: {integrity: sha512-0BvIR9OsMQZOCT9LYIsP/0leQXjBe8w2rTSS2H4LISMC7PFGz6iRsU6vttjwnnvH3rowBc2eniOEtUsNbNDvKg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-freebsd-x64@0.125.0": + resolution: + { integrity: sha512-0BvIR9OsMQZOCT9LYIsP/0leQXjBe8w2rTSS2H4LISMC7PFGz6iRsU6vttjwnnvH3rowBc2eniOEtUsNbNDvKg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@oxc-minify/binding-freebsd-x64@0.131.0': - resolution: {integrity: sha512-2/xcCZfVm24sLFHbI5Rg/t6Ec93pth0NvTgy/J8vXjIOy8Yf5kkO/K1KVtdZBHW+cyLPe7YLLybxMF/BeqM8Kg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-freebsd-x64@0.132.0": + resolution: + { integrity: sha512-pdYVNmY9NgKetEWzXlVIUlPm4Z3Gz979nTbZUpHlqpjU/rtulpm0fgROo6rlTk+W0HhZCCZ0Jzy1LBKgn5g3mg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@oxc-minify/binding-linux-arm-gnueabihf@0.125.0': - resolution: {integrity: sha512-mkrBEVh9gRpTV01W/mF+yFe4D6itsFedDtnr+Ymx9tGFYzAmzpuprRzrYup/YI45sN6Js55ZMja0AB8h9AWeuQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-freebsd-x64@0.133.0": + resolution: + { integrity: sha512-oT5dbcXnS/cbpdXCpudAeVg/fqH1XnKhLUE/vkuRTuocjOd/GA2MoNMMhLWUvqNXO0xJnYmo2ISmDxShkItfOQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + "@oxc-minify/binding-linux-arm-gnueabihf@0.125.0": + resolution: + { integrity: sha512-mkrBEVh9gRpTV01W/mF+yFe4D6itsFedDtnr+Ymx9tGFYzAmzpuprRzrYup/YI45sN6Js55ZMja0AB8h9AWeuQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-gnueabihf@0.131.0': - resolution: {integrity: sha512-LDQ1Y+QfL5lN54ib1Je2paoh4EsQmmDRvB5Bd9AQIGCP16LI+8jZnB8cjTT3GD1acITDg1aiaBKk9JpBjBA4iw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm-gnueabihf@0.132.0": + resolution: + { integrity: sha512-QdV2II2mrbygZO/D+umhb+jMs+kmNO2pvQ+kahY8DN7qZVvaR2CiWBQaAxi3yuI0JvmymcUBEFhRrXsaL/lUqg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.125.0': - resolution: {integrity: sha512-beVMSc1Z+aGXpm/A+jT9KCq3SQ1ymABHFbcRqjYA3KdE3RPKk1dc0SlGZ/xO+elw9Jsf1i8UTgvSKLVGyv7w5g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm-gnueabihf@0.133.0": + resolution: + { integrity: sha512-tJ3B+b7DOuTsIMXSmu5xHHCakrBqqcrp4COYd/lelOdDvkbFoDRGnwH91POUOSUEOI/WLzIMkDqAH2SZ3N2jhQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.131.0': - resolution: {integrity: sha512-mz99O2sZoyHnMoksxlZ5Mc+USS/w/uIp1LWQAn42RHAvVdIyQsqPRmTD/pJtW/KnjgpgaB0yDCpI6Xa3ivJppQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm-musleabihf@0.125.0": + resolution: + { integrity: sha512-beVMSc1Z+aGXpm/A+jT9KCq3SQ1ymABHFbcRqjYA3KdE3RPKk1dc0SlGZ/xO+elw9Jsf1i8UTgvSKLVGyv7w5g== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm64-gnu@0.125.0': - resolution: {integrity: sha512-3s0L6l+5P10Z6YBVvZqDZDhXNCImadI/TrEs9yfUu7RH8SvPu5clPVawkYqo2Du9ZlSlcEU2cT+pcTl0dQiSAA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm-musleabihf@0.132.0": + resolution: + { integrity: sha512-6OJMBb53luST+xxNSzzg/rRkxMnR4NFQegdu3PCuDEUtP2OEgjmpvvBrHghITpzRsUqnQ/YTl/ItDiLVeoslUA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-minify/binding-linux-arm-musleabihf@0.133.0": + resolution: + { integrity: sha512-XMUHfdilk1KTtOM2vA1bwDso07/wkLm/GgDOO9z/ioxrZoQyjXnJRW665VXa08z2BqEgwHRc1zH9p7s6sKPQbg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-minify/binding-linux-arm64-gnu@0.125.0": + resolution: + { integrity: sha512-3s0L6l+5P10Z6YBVvZqDZDhXNCImadI/TrEs9yfUu7RH8SvPu5clPVawkYqo2Du9ZlSlcEU2cT+pcTl0dQiSAA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@oxc-minify/binding-linux-arm64-gnu@0.132.0": + resolution: + { integrity: sha512-ND2GZp6StGQWhSBwOfX13kCCG7O/Z6sEL/dBsWSIgZaetEDUPLOWtKIm2f+TuYUSSmU5nJTSSE5psh9kGcCweQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-arm64-gnu@0.131.0': - resolution: {integrity: sha512-QjS1N4FwCV67ZylGyfTWoqURzar48dN5WTq/JVrGsiShFKlT9SpuyRsoUGMGJhiKNiI39MsLIHBlBWvoRQG+ng==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm64-gnu@0.133.0": + resolution: + { integrity: sha512-UEff2jopbwJ4SndmxK06uqXrOpwWiJERJPdgDTBywwXP9QgW0p1YkQnBNt4+jK0I/hdLpbbyaCLLuUPKbaU70w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-arm64-musl@0.125.0': - resolution: {integrity: sha512-A1EpHjDPNc+67TMoU/KdIhwLEl8Zyq4VCbg4kntPEMPT80nF6lBYKoWQpFWsKcEmYQR61x59CTs+9738fssy+A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm64-musl@0.125.0": + resolution: + { integrity: sha512-A1EpHjDPNc+67TMoU/KdIhwLEl8Zyq4VCbg4kntPEMPT80nF6lBYKoWQpFWsKcEmYQR61x59CTs+9738fssy+A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@oxc-minify/binding-linux-arm64-musl@0.132.0": + resolution: + { integrity: sha512-3k8ezEKmxs9Wel4N4vfF/8u764mA57j065P8nB4cU2PO/lLKloN0OA41ynfDUrSM1f5jBuF8+mLOj++aNnu4OA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-arm64-musl@0.131.0': - resolution: {integrity: sha512-HGzqTov5sAzXyaNfRkQEpl0fRs+PrMYjT8b5jZAw8foQ/qnW+VMWgAr80Q+2j79T5nhXfboSF5SUgB8mcisgHw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-arm64-musl@0.133.0": + resolution: + { integrity: sha512-yqskeIapQvx7Tu/OLsepLPcGsHGzfYy9PX6gIbhaOHfF+LA2zHBKnKb587FGx+lQjHLQR0llfmoSuXQ6q2EN+A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-ppc64-gnu@0.125.0': - resolution: {integrity: sha512-ljNsvldyJFKD2YUcqe+oY+cBurz1LQdicF0Kf2YLZRw2ecylthabfBCo0++zywDRbmq/FNQbJLe8ZEdsK4snuQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-ppc64-gnu@0.125.0": + resolution: + { integrity: sha512-ljNsvldyJFKD2YUcqe+oY+cBurz1LQdicF0Kf2YLZRw2ecylthabfBCo0++zywDRbmq/FNQbJLe8ZEdsK4snuQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-ppc64-gnu@0.131.0': - resolution: {integrity: sha512-zpUZ4pmbDBqaZmRYacxeLHUBxA3fs5K7hi1WSXRVMXC4OjWuVcLsNxeavenKF9i0YtP7Q5n2z12Rz7eEnNWoDA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-ppc64-gnu@0.132.0": + resolution: + { integrity: sha512-vM6jZIxoHoIS5rPb3K3Di0IureL4oU+wOWBy6tLSrjwW2IHqy0442CzO/Ks2U9VCuHV1q0bUGCF0H6AxCEjJHQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-gnu@0.125.0': - resolution: {integrity: sha512-8wymgi60u0VLHh1IZV14Vb9D4j80eNEFK2QmITpB2+gdcSAiPPXGiBJtAcAL7nMkH8vXa2QPWgKujenaiLtuoA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-ppc64-gnu@0.133.0": + resolution: + { integrity: sha512-r7PnUNxRB9D/gQjCVeasoieJVUF48n43rvk/jYbGAw9sRfYGoEo/rOs0GyTZU9ttss8HzjBaerAbADbAL8K8vw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@oxc-minify/binding-linux-riscv64-gnu@0.125.0": + resolution: + { integrity: sha512-8wymgi60u0VLHh1IZV14Vb9D4j80eNEFK2QmITpB2+gdcSAiPPXGiBJtAcAL7nMkH8vXa2QPWgKujenaiLtuoA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-gnu@0.131.0': - resolution: {integrity: sha512-CYrC4tpW1wolbw/Fox+T0hxW92s1aG/WLi+htkk02JMiCHOWqGQKxUnm37lLiODKR/OwTYht3LB4xNrsS0RtCg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-riscv64-gnu@0.132.0": + resolution: + { integrity: sha512-KburrmtWpeZg58uo275QRwy5bbNOXQd1WDI2tGxkY2dJBlO7N5V9+Uthvqn6KI/6RBtjd2T5NO4dCC0fgUxGvw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-musl@0.125.0': - resolution: {integrity: sha512-b1Ou3jteYcpm0SMfJlO9Scvst//QD8l8uoDQDQK09H3OSht3H0fhSD91OQNC1Y7UqAGGFzgxHic8dHtZ6seyXw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-riscv64-gnu@0.133.0": + resolution: + { integrity: sha512-omXWC8I9lAMMjQIeadfItP5H4VDAiuU2BiVCtHMH3ktTbFq04sxscZhK4NFUUuw3fApDdXmfd7LW18q0JBHarg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [glibc] + + "@oxc-minify/binding-linux-riscv64-musl@0.125.0": + resolution: + { integrity: sha512-b1Ou3jteYcpm0SMfJlO9Scvst//QD8l8uoDQDQK09H3OSht3H0fhSD91OQNC1Y7UqAGGFzgxHic8dHtZ6seyXw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [musl] + + "@oxc-minify/binding-linux-riscv64-musl@0.132.0": + resolution: + { integrity: sha512-MnahA2MNEtEdxWdUy24JXkMUNgGPqH285GL2L22Zz7k9ixsguFD+bTbbcR88pNqdb075nazozzv3edF83+azCA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-riscv64-musl@0.131.0': - resolution: {integrity: sha512-ZQNur0zujUjNYgjFF4mcNaeEKWuerY9XkaALYtBsHqNetkj55w0ZwCKYfYKLH2JAdyNF2LuS0s7VGgjXP9EvWA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-riscv64-musl@0.133.0": + resolution: + { integrity: sha512-LtFA3Hi8LVD/zuiPLKy9Aiz7N1IOj8rRhdXiW38GKQ9mAhj+Ko6IHGcTk2A7yNDA1DZBl7r+Qd4PEGWgVelPPw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-s390x-gnu@0.125.0': - resolution: {integrity: sha512-cSnl+Z/tzTbQPLAMGiXeyeE1Yr0oOb3czTQrPd/deQUH3jVQ1QD4A57Wz8xMF4TEOcdyzi6TYaZ7RIGe5pEqqw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-s390x-gnu@0.125.0": + resolution: + { integrity: sha512-cSnl+Z/tzTbQPLAMGiXeyeE1Yr0oOb3czTQrPd/deQUH3jVQ1QD4A57Wz8xMF4TEOcdyzi6TYaZ7RIGe5pEqqw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-s390x-gnu@0.131.0': - resolution: {integrity: sha512-tR8oiFSNpcS1mfGY1N3/Hy6TxP2wr5X9FFdn/y8GarN8ST/JMLY5SUiwPiU35NKiC69CDaAsLHXoIKUxK/r8Pw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-s390x-gnu@0.132.0": + resolution: + { integrity: sha512-VE99UPZyQO2MAG4gLGXzrBumD5PGNaiWe+EakaROGCVbT0YH/d9z2ByYqbdWAMEBiTHjthyZp6UUEFVda+LnpQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-gnu@0.125.0': - resolution: {integrity: sha512-IDahOBkZFeMIlHOpZBKXOeUTg2tDFDfFZd7OgL1wsfAwBxl4buVwsaNkWweiF6BMkL8lcNphUi0B4eZzb7Js4w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-s390x-gnu@0.133.0": + resolution: + { integrity: sha512-rFsPDsT1j3beSInbrFukAAlTg101PcqdVMXDioR9AgJ1180tZ8s8D+pNDpQTRmPd3956mnpAE+Cs77Xoo/QZAQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@oxc-minify/binding-linux-x64-gnu@0.125.0": + resolution: + { integrity: sha512-IDahOBkZFeMIlHOpZBKXOeUTg2tDFDfFZd7OgL1wsfAwBxl4buVwsaNkWweiF6BMkL8lcNphUi0B4eZzb7Js4w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@oxc-minify/binding-linux-x64-gnu@0.132.0": + resolution: + { integrity: sha512-FKxBkYrSAWNF4V6MacAJ/1E2SJobKKQ2CtW6Aq+pLzzEOjgk2SmxnK7I0bATlFH/O70tbTKDzWb17bySGYRcog== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-gnu@0.131.0': - resolution: {integrity: sha512-KodzbW12zmT/C/w4bGv2aWN7Q5+KVJKbNoAv5hooYeSujj8xSPGWl8pnyj7dJ9nd8j0CVjubEvHQ86rtzV99OA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-x64-gnu@0.133.0": + resolution: + { integrity: sha512-xlrtAmDWZI8BEmsaXMYfblWuLIY5UnnRkit1VLkmVDb5ceZRZf4oEXK1QeYf5Z33dT0WK1Ek++P+TL/ZMCpyGQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-musl@0.125.0': - resolution: {integrity: sha512-O0eEhMp8NdNWXd00KWdoBKNMFeHHf8CIF96J4NCjyhDwEBsPdbW8JSpAH8YTAxpJajq87DJP0culNcCm/96y4g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-x64-musl@0.125.0": + resolution: + { integrity: sha512-O0eEhMp8NdNWXd00KWdoBKNMFeHHf8CIF96J4NCjyhDwEBsPdbW8JSpAH8YTAxpJajq87DJP0culNcCm/96y4g== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-x64-musl@0.131.0': - resolution: {integrity: sha512-CNG3/hPE6MxdLikfLq5l0aZMvJ3W5AP1aoVjzQ1Itokv5sbfBcW0fp6Srn8mB86CyAqO9e7dbffZVOWBDVkhgw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-x64-musl@0.132.0": + resolution: + { integrity: sha512-W8IqA2XRvg/b6l/f+2SdV45/KKmpmwTabrjiMtpg/wzJU5cmKUoHihtJXPc9NA0Ls9S/oP0wB3PMCRQoNr5J1A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@oxc-minify/binding-openharmony-arm64@0.125.0': - resolution: {integrity: sha512-78xXtK9T/NfGLG9L3olsCaaSf5iVZBXdp/YYfTCpYrEZuXGPDM9arkTchrrwuJcAJcLDNsKmSPK+g/PPRztETA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-linux-x64-musl@0.133.0": + resolution: + { integrity: sha512-kd36CDkTkZDMNfVceNTSfpWnitE1+GjZmzJCeq8yaxsgvs/MXg8aauI2RgFjElYZIHSMyZku4pQ7Jtl3ZEYI6w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [musl] + + "@oxc-minify/binding-openharmony-arm64@0.125.0": + resolution: + { integrity: sha512-78xXtK9T/NfGLG9L3olsCaaSf5iVZBXdp/YYfTCpYrEZuXGPDM9arkTchrrwuJcAJcLDNsKmSPK+g/PPRztETA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + "@oxc-minify/binding-openharmony-arm64@0.132.0": + resolution: + { integrity: sha512-X1BL65pI9bfOesLdVUcErjbEAUA3qmzjXCwXPCYsFZT7ela7SsK85+sN3m2TJNxmX1mrFKNg5g8bH+d2zHresw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@oxc-minify/binding-openharmony-arm64@0.131.0': - resolution: {integrity: sha512-UyfimTwMLitJ0+5i5fL9M9U4E+DcIQJpGZWbVxxD3Mp9f7CTyQBIHnS68VEGZe+KQL/Y3IIb3AJ7cZB+ICgTVQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-openharmony-arm64@0.133.0": + resolution: + { integrity: sha512-pI38dJBqfkNbFoL/GEarAzGDjKGVCZTdg0a8NKh1PP9GqWleXT6HLtXE4CZ+54e+2u68qVYVBwhbWAiRfwlUZA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@oxc-minify/binding-wasm32-wasi@0.125.0': - resolution: {integrity: sha512-nByxlScJnkkC0FPCQYb46jHyz20slevimdZKfOwQIlqmykshnYHSwxNziJG1SUWiTfuL5gHaIztEW+0OjaIrwA==} - engines: {node: '>=14.0.0'} + "@oxc-minify/binding-wasm32-wasi@0.125.0": + resolution: + { integrity: sha512-nByxlScJnkkC0FPCQYb46jHyz20slevimdZKfOwQIlqmykshnYHSwxNziJG1SUWiTfuL5gHaIztEW+0OjaIrwA== } + engines: { node: ">=14.0.0" } cpu: [wasm32] - '@oxc-minify/binding-wasm32-wasi@0.131.0': - resolution: {integrity: sha512-fH7sy51iYnmGv2pEPsS9KEVExHDKI1/nfy/OqYnStW2E5di41CQ1qBjVIvxHOMHcPD8RmKEBCf0zng6d9/vGDg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-wasm32-wasi@0.132.0": + resolution: + { integrity: sha512-QcIiwBOj+bV5ub5x39Xb+v0boviykxUtVvVJaIEbG/IH97avFzZcBXec8awYlemLDvgG4WKQwr17x7COR5zwFg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.125.0': - resolution: {integrity: sha512-c7uUkgK9tm7mdACPFFDdmgvYmNSwpJ1Z9bC3Q7tJrA0OIcTe7kGxudHxvseUpWyXCtDSjIumVxw+QhOHbSPLTg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-wasm32-wasi@0.133.0": + resolution: + { integrity: sha512-AkLr+d+LLY4/55J/TrE0srNBUpZPzyU+cygdse7yZ9AhCndryNqe2y6e8naVK0TV7n8lxBd2OGGJAkho6blAkw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [wasm32] + + "@oxc-minify/binding-win32-arm64-msvc@0.125.0": + resolution: + { integrity: sha512-c7uUkgK9tm7mdACPFFDdmgvYmNSwpJ1Z9bC3Q7tJrA0OIcTe7kGxudHxvseUpWyXCtDSjIumVxw+QhOHbSPLTg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + "@oxc-minify/binding-win32-arm64-msvc@0.132.0": + resolution: + { integrity: sha512-ahFMaa84QVTIROWpLhZcS9jKIv+CXzsJaMmgje7JtlVp1Kaar6tzVCt3EH2aPhSc8RvbGqfmnGdQu/kGwPAZVA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-arm64-msvc@0.131.0': - resolution: {integrity: sha512-C05v+5eIdvF4YXQ4t+U0JQDl8IWoIabxsmh4inBSGOL0VziELmis3lb5X6JMj208RbQdKhZGJbUkmNWq2B5Kxw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-win32-arm64-msvc@0.133.0": + resolution: + { integrity: sha512-V92v7397t2073g+mSfaLHnPeoz6hA/1U4JNLeUBP87eWGZgVxDZ2qz3t3wFyYqXGJ/0VoEwdP8yrHLQQ7QzAOQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-ia32-msvc@0.125.0': - resolution: {integrity: sha512-/iHSLFliDybCsfAzW2owR0r6rwagP/pS/II/ZnoVoYnweNGdpgvEaeFzLm+GEcapEdz0mhrz7f7A+FCn8EhvmQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-win32-ia32-msvc@0.125.0": + resolution: + { integrity: sha512-/iHSLFliDybCsfAzW2owR0r6rwagP/pS/II/ZnoVoYnweNGdpgvEaeFzLm+GEcapEdz0mhrz7f7A+FCn8EhvmQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ia32] os: [win32] - '@oxc-minify/binding-win32-ia32-msvc@0.131.0': - resolution: {integrity: sha512-bZio0euDmT6Er00I6jng66ftGw5doP/UmCAr2XtBooZMdr7ofTJ4+Bpp+ufguVIeVk5i1vgMPsq7g6FTcxHevg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-win32-ia32-msvc@0.132.0": + resolution: + { integrity: sha512-tpBkLklqOnaYtlIh6gjmL60pP0Kn2hwaw1Fw3sJyIKwdkCPHsOPy/MRgBUpM0a/SeGFbsZRQkHnWfZXS1GTbbQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ia32] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.125.0': - resolution: {integrity: sha512-5svxnWmQ2rhGpc3QOUv4aI4BoNZQZflKoABtujRoPau4U93Gv62lzid5dNUhNfy6c7N/cUEcfgcQ27T68lFipg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-win32-ia32-msvc@0.133.0": + resolution: + { integrity: sha512-2DP5RbG/SSaRVtmuwgTH6Ati4+uuOJjoI88dQnC5hD0zCC90EVDXZSXyJQ5i/OxLE1UAy58Wo2DJot/OrUspzA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ia32] + os: [win32] + + "@oxc-minify/binding-win32-x64-msvc@0.125.0": + resolution: + { integrity: sha512-5svxnWmQ2rhGpc3QOUv4aI4BoNZQZflKoABtujRoPau4U93Gv62lzid5dNUhNfy6c7N/cUEcfgcQ27T68lFipg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] + + "@oxc-minify/binding-win32-x64-msvc@0.132.0": + resolution: + { integrity: sha512-a69yKrBl2p9O8cdAHbHih56eKhcpKJRVkRu/S+CwCdR2Zsh4nnqYIllF96Lxg3jDjRQNL3t0xZNdYBDG5Vgq+w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.131.0': - resolution: {integrity: sha512-Lih6D0rjXStl0eUjzlcCiqr60AI/LuE+Zy29beEeXrXqTjOf8t0mcDX/MN3TZBBncxwUNi6osAEsKj4FRnItmQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-minify/binding-win32-x64-msvc@0.133.0": + resolution: + { integrity: sha512-PJ75c6PlBx87tau0W35J43eGCv4wrDmdZ+4ddTZAnGtZqEeCVsLdmDPOEMe2DepogqlSVUF2kGBWtnFUJ5c7Rw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@oxc-parser/binding-android-arm-eabi@0.130.0': - resolution: {integrity: sha512-h/xYU8/7ADWzVSf5I+YalLpj33LOy9CI/zgbJNIZ5eunRBG+Czqa3lZsvuPHHf3rOt6z1c5+UzoxjbAzAvhwVw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-android-arm-eabi@0.130.0": + resolution: + { integrity: sha512-h/xYU8/7ADWzVSf5I+YalLpj33LOy9CI/zgbJNIZ5eunRBG+Czqa3lZsvuPHHf3rOt6z1c5+UzoxjbAzAvhwVw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [android] + + "@oxc-parser/binding-android-arm-eabi@0.132.0": + resolution: + { integrity: sha512-KrLaPWa5c9Y7LkW+rKkaUE3y7DBDrQtaf7rlsSDfv6KAHUjgzAIRA761Lrrp6//Yd/Rlie/yEOt9YENCoJnOcw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm-eabi@0.131.0': - resolution: {integrity: sha512-t2xicr9pfzkSRYx5aPqZqlLaayIwJTqgQ81Jor31Xep2nGyL2Aq3d0K5wOfeR7VevaSdxaS9dzSQP9xDwn8fDg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-android-arm-eabi@0.133.0": + resolution: + { integrity: sha512-l/44caGse+VpnY9gx0yvvc5QnnG3yG1FO3KZgYvNL1GZrfK86zIwAOgGEVlxDyRymzrU/KHiblPFpevKOmJmUA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.130.0': - resolution: {integrity: sha512-oFWFJrsGv9siFM4HjMqKNB7IuIZD/SMmZdCXl8xyx7lDplGvPKyewpOo272rSWgMXe2Wx7bWI0Yj+gkHv4qbeg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-android-arm64@0.130.0": + resolution: + { integrity: sha512-oFWFJrsGv9siFM4HjMqKNB7IuIZD/SMmZdCXl8xyx7lDplGvPKyewpOo272rSWgMXe2Wx7bWI0Yj+gkHv4qbeg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@oxc-parser/binding-android-arm64@0.131.0': - resolution: {integrity: sha512-nlGIod6gw75x1aEDgLS+srj+JRGY0HHm9MI9YgzE/B64l6d6+H3MSP9NOgp0+HTg8tp4vV9rVfgQGgd+TfVZcA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-android-arm64@0.132.0": + resolution: + { integrity: sha512-SThDrSeamB/kG2+NxcJ5/wSLcV6dUqDknrPLqFYQ0ST/55mtBP4M7Q/f3QbubH6aAd11wpzZn/nwbVRSdobOpg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.130.0': - resolution: {integrity: sha512-sGUzupdTplK9jQg7eJZ878HfEgQjJNBc6dAYVWJ9W5aU+J8rLfRJhTVsKThiu1pNwm6Y1qKCcbC6WhNWSXR3Ig==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-android-arm64@0.133.0": + resolution: + { integrity: sha512-KUHmPMziLBp4u+zbrLdB7iWS7KshuZe+RAp7ELnY9SI9nNXBZ+dp8fiBqWOxhXqn+FQg3a4UcQhwmsJOKV8Jjg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] + + "@oxc-parser/binding-darwin-arm64@0.130.0": + resolution: + { integrity: sha512-sGUzupdTplK9jQg7eJZ878HfEgQjJNBc6dAYVWJ9W5aU+J8rLfRJhTVsKThiu1pNwm6Y1qKCcbC6WhNWSXR3Ig== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-arm64@0.131.0': - resolution: {integrity: sha512-jukuV6xe5RbQKFo7QD34NDCLDZp4PSOm8rmckhNdH/60ymG5zXbDzGBEyc+nTkuLQNama2aSGCt+CPfpjNTqyw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-darwin-arm64@0.132.0": + resolution: + { integrity: sha512-Lc0f/TYoKBghE5/2Gsv7bLXk+TJZunx2Tf61X8hG4ARXdc8UYI26dCGccFSd1AyFbK3jfaNXtMnupggDbjPXdQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.130.0': - resolution: {integrity: sha512-PsB4cdCISbC00Uy8eiD8bc2AkGWjZqrSrJnkBFuG2ptrrf6mZ2F5gLFSjOAVMMgZPg8B1D7OydJwLWSfyI2Plg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-darwin-arm64@0.133.0": + resolution: + { integrity: sha512-q8dWmnU/8ea2tga9w2f1PinQ5rcMPDUGkF64T189b65YMjUomET4oy5oRldOr4AwOQkneOG/Zttnz1Dvrc62wg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] + + "@oxc-parser/binding-darwin-x64@0.130.0": + resolution: + { integrity: sha512-PsB4cdCISbC00Uy8eiD8bc2AkGWjZqrSrJnkBFuG2ptrrf6mZ2F5gLFSjOAVMMgZPg8B1D7OydJwLWSfyI2Plg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] + + "@oxc-parser/binding-darwin-x64@0.132.0": + resolution: + { integrity: sha512-RG2eJIpf7C21z9HSSXFw1bTArdpKe7Y4fwcJTwRq1yCSe1vSavaN9GA1sm9KqzemTLAGVktQ+7qBTGp0vQeUZg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.131.0': - resolution: {integrity: sha512-g3JOo4khe9rslHm5WYaVDWb0HS/M1MLR3I9S8560MkKIcC96VQY00QjOlsuRyfSj/JDXj8i9T7ryPO2RidiXVg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-darwin-x64@0.133.0": + resolution: + { integrity: sha512-cOKeIELIB2bJnCKwqx4Rdj+1Lss/U6uCbLxRySZrhyOOQa1flKhwZFjEHRHxk8fU1NKmhK5OnTdPQ4CpjuFuVw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.130.0': - resolution: {integrity: sha512-DgABp3l38hS77JbXCV4qk1+n6DPym5u8zzwuweokezm2tX194nDSJDENbDRECxVsiNbprKATLbk+Z5wlHT0OHw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-freebsd-x64@0.130.0": + resolution: + { integrity: sha512-DgABp3l38hS77JbXCV4qk1+n6DPym5u8zzwuweokezm2tX194nDSJDENbDRECxVsiNbprKATLbk+Z5wlHT0OHw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@oxc-parser/binding-freebsd-x64@0.131.0': - resolution: {integrity: sha512-1hziITDTxjMePnX+dR9ocVT+EuZkQ8wm4FPAbmbEiKG+Phbo73J1ZnPAA6Y/aGsWF3McOFnQuZIktAFwalkfJQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-freebsd-x64@0.132.0": + resolution: + { integrity: sha512-wQIPntPLtJ8NcBpvKPbEv3NqzV6k8eP8tP/jE9Rg8HTg/j7urZGFSsTCPCW5k77Qfw2DM4vRvc9p3I4yq/Shvw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': - resolution: {integrity: sha512-4Kn3CTEmwFrzhTSC/JuUW16qovmaMdX7jeSKbL8w0pLtLww7To1a2XJi9Z5uD8QWUkfUHhqfV+VD6dVzBnWzoA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-freebsd-x64@0.133.0": + resolution: + { integrity: sha512-OpaSv4pW3KgFrMYQxTaS0aOE4T1DQF3qZE/4B6uqqv1KgPWWd4UQhJALi8PJPX1RRV5K7ThKXRfF7qGg2+3l1A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + "@oxc-parser/binding-linux-arm-gnueabihf@0.130.0": + resolution: + { integrity: sha512-4Kn3CTEmwFrzhTSC/JuUW16qovmaMdX7jeSKbL8w0pLtLww7To1a2XJi9Z5uD8QWUkfUHhqfV+VD6dVzBnWzoA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0': - resolution: {integrity: sha512-9uRxfXwyKG9+MwmGQBo2ncPNwZH5HTmCETFM2WiuDBNDCW4NC5ttSQkwCAMrTAWgwMzVBH1CP8pM0v7nebCWXQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm-gnueabihf@0.132.0": + resolution: + { integrity: sha512-PixKEpeSe3yxQWqNyOCBALRYc72+Tj7ILDofUl3iXo25cVOzLA6jHUhmOINRtWIPh7dbUie3QNeabwaQpZTw6w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': - resolution: {integrity: sha512-D35KZM3F4rRu1uAFKyBlg3Gaf/ybCjyaPR1hfgvk5ex8NtcTmRgc0JgSighEyNg96TPrFhemFba68SZuxaha8w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm-gnueabihf@0.133.0": + resolution: + { integrity: sha512-JGK1wlGrGwxBIlVSF7KWTX1/ru6BEtf28fRROztDRkLfiW+Kxa4onnriezMIiogfn9hVw2KzYcKiLjkLR2ns8A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.131.0': - resolution: {integrity: sha512-mgbLvzRShXOLBdWGInf08Af4q+pfj1xD8hSgLClDZ9of/BXkB6+LIhTH7fihiDUipqB3yoSkKBWaZ3Ejlf5Yag==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm-musleabihf@0.130.0": + resolution: + { integrity: sha512-D35KZM3F4rRu1uAFKyBlg3Gaf/ybCjyaPR1hfgvk5ex8NtcTmRgc0JgSighEyNg96TPrFhemFba68SZuxaha8w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.130.0': - resolution: {integrity: sha512-Q9o7oVlo955KHwS8l1u0bCzIx+JsZUA3XToLXC+MsMhye/9LeBQbt84nh120cl2XLy+TEzvugYDiHShg5yaX6Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm-musleabihf@0.132.0": + resolution: + { integrity: sha512-sCR+DzGHlyHKnbA2z9zWjTUhIo8Sy0enJl4RDsBwPmkxYynPatpwOAWe8W5127SlW0boqUWHGtr1NWn5UwIhXQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-parser/binding-linux-arm-musleabihf@0.133.0": + resolution: + { integrity: sha512-yuZO533Ftonxn/iyoqQzURzLQHMspvsIyfiCSNi1t/ER4eIQaR0SsmUOUm5b/lmSig7IWIUa5/BrbEkAPwcilQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-parser/binding-linux-arm64-gnu@0.130.0": + resolution: + { integrity: sha512-Q9o7oVlo955KHwS8l1u0bCzIx+JsZUA3XToLXC+MsMhye/9LeBQbt84nh120cl2XLy+TEzvugYDiHShg5yaX6Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-gnu@0.131.0': - resolution: {integrity: sha512-OPT8++4aN6j2GJ8+3IZHS/byXoZP4aSBn+FoG6rgBJ2fKwPKXWF3MqrFMNW7NKHM28FLY579xYLxJSfgobEqPA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm64-gnu@0.132.0": + resolution: + { integrity: sha512-sQBix5P2cW+IpzTcCwYxnh9yALrKSIkKJThspBvMGcygSMnbzkSvhN7SfuX1hvBk8y1XEChsdkU3ET0V5DmzUw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.130.0': - resolution: {integrity: sha512-EiJ/gC0ljbcwVpycC8YWw6ggMbtsPX8XMOt0mPx0aqWeMsNR+L9m05Flbvd5T+GlivG+GkSWQL7tM9SRFpM/dw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm64-gnu@0.133.0": + resolution: + { integrity: sha512-hvpbqT5pN2rR+3+xtWeizwfR/aZ0vGceg6TqYMl+ToxMpk9/tmnX7kSvQnfEUkoua8mhogzvIKsAkn0wxgblBA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@oxc-parser/binding-linux-arm64-musl@0.130.0": + resolution: + { integrity: sha512-EiJ/gC0ljbcwVpycC8YWw6ggMbtsPX8XMOt0mPx0aqWeMsNR+L9m05Flbvd5T+GlivG+GkSWQL7tM9SRFpM/dw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@oxc-parser/binding-linux-arm64-musl@0.132.0": + resolution: + { integrity: sha512-WozHg3Kc//8Sk756HXXgMbEAvqtG+Lzb9JOojwQzIGDtN78Az2dLttkb71akWYUF/8IgYfDSlfKh4Uot8is5Vw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-arm64-musl@0.131.0': - resolution: {integrity: sha512-vtPiwmfVTAXzaxDKsOXG+LwgRAA7WEnaeHzhS5z0GE89gAK18KSXnly7Z6saXXq6L3dVMyK44uoTI03zKxrpmw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-arm64-musl@0.133.0": + resolution: + { integrity: sha512-wJQGamIosQBoJHW9+S5XxrtKRo3eyJxsnS1XCPrqN0LHi8uw1pTqqTfn3t/NVuvbBg7Pumn4ez9Eidgcn0xbEg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': - resolution: {integrity: sha512-b+h/lsLLurp756dMGizNs5uPaJfyEdWrTcV5t8M609jWm1DEHB1StpRXCkyvwtkJx3m+qL5BNQ0dEKan/4yGFA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-ppc64-gnu@0.130.0": + resolution: + { integrity: sha512-b+h/lsLLurp756dMGizNs5uPaJfyEdWrTcV5t8M609jWm1DEHB1StpRXCkyvwtkJx3m+qL5BNQ0dEKan/4yGFA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@oxc-parser/binding-linux-ppc64-gnu@0.132.0": + resolution: + { integrity: sha512-CmX/ulNBOEwWTyVRmcpYKAcAizW6+OjtLJgo7fXoL9OqQvjF4VER8tPomv44vwzfSCy1BHbsB0ZlZYzYJNj4cA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-ppc64-gnu@0.131.0': - resolution: {integrity: sha512-8AW8L7w5cGHSdZPcyZX2yR0+GUODsT15rbRjfdD54rv6DMbtuEB19ysLOpKJlRGfH6UNYNpCHaU1uJWgTWf1/w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-ppc64-gnu@0.133.0": + resolution: + { integrity: sha512-Koaz32/O5+abIfrNGdyndgRvdOZ9jEf5/z3Ep9h3h2QWpdDiUQpVwgH0OcMXCs+l9aXxPLtkupqyVig9W6FDKw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': - resolution: {integrity: sha512-O19Cil83XAyjEFfo8WhkMwY58ALqZ7ckjGL+25mjMIuF84urWBeANH0FC8B8BsSSygWU3/1aY3ADdDbp+wlBnw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-riscv64-gnu@0.130.0": + resolution: + { integrity: sha512-O19Cil83XAyjEFfo8WhkMwY58ALqZ7ckjGL+25mjMIuF84urWBeANH0FC8B8BsSSygWU3/1aY3ADdDbp+wlBnw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.131.0': - resolution: {integrity: sha512-vvpjkjEOUsPcsYf8evE4MO3aGx9+3wodXEBOicGNnOwTuAik8eBONNkgSdhkGsAblQmfVHJyanRnpxglddTXIA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-riscv64-gnu@0.132.0": + resolution: + { integrity: sha512-j9oQS+hM90SdhviNGWbPgT4+Rlq+ac++q/zjgwPD1mVHgxHzATvoRGtDx0sXGmFOQ9J9YkwAhYGb5MAHL6TAsA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.130.0': - resolution: {integrity: sha512-BgXRVC0+83n3YzCscLQjj6nbyeBIVeZYPTI4fFMAE4WNm2+4RXhWp03IVizL7esIz36kgmT48aebk1iM+cs8sw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-riscv64-gnu@0.133.0": + resolution: + { integrity: sha512-R4vOjWzxhnNWHnVLeiB6jNuIifdy9vcMXZGPc7StXcxBovI+U2zg1QhZ9o8OjV80oGivs1lX5NfPLzk4IPqlRA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [glibc] + + "@oxc-parser/binding-linux-riscv64-musl@0.130.0": + resolution: + { integrity: sha512-BgXRVC0+83n3YzCscLQjj6nbyeBIVeZYPTI4fFMAE4WNm2+4RXhWp03IVizL7esIz36kgmT48aebk1iM+cs8sw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-riscv64-musl@0.131.0': - resolution: {integrity: sha512-AqmcNC3fClXX+fxQ6VGEN1667xVFiRBkY0CZmDMSiaeFUsv1+UkBPYYi48IUKcA9/ivvoKNRzQl2I4//kT9F/w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-riscv64-musl@0.132.0": + resolution: + { integrity: sha512-bLz+Xi+Agnfmd7kWPEsSVwCn2k4EyIalZkNBcQ0OGIv9rqn8VgCPLNd03tM9mKX/5TdlvDXalz0q71BIrOPNqg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.130.0': - resolution: {integrity: sha512-6tJz0xvnGhsokE7N1WlUSBXibpYmT9xSJFS1Ce41Km/+8gQvdlW8MLhRv8PD0L7ix8vRG0FDDepp3jdOFzdVdw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-riscv64-musl@0.133.0": + resolution: + { integrity: sha512-iwgBNUTHiMdxARLYuM0SBlnYeb19iw1Ea5M+4ERZupCsBMLArti6FyZ6UfFjJxIiTDr2oW2DGQFxlQVQ/dW9rA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [musl] + + "@oxc-parser/binding-linux-s390x-gnu@0.130.0": + resolution: + { integrity: sha512-6tJz0xvnGhsokE7N1WlUSBXibpYmT9xSJFS1Ce41Km/+8gQvdlW8MLhRv8PD0L7ix8vRG0FDDepp3jdOFzdVdw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@oxc-parser/binding-linux-s390x-gnu@0.132.0": + resolution: + { integrity: sha512-U6t2qbJU0ypTfyj9QV3W1Y6mITDTL8ai/OR6NUn85vyHthOvobKWgXzU4tu0EskSzlpuVFz1g0jFGulDIUKHxQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-s390x-gnu@0.131.0': - resolution: {integrity: sha512-7d3jOMKy7RSQCcDLIci+ySll2FgsOMl/GiRux4q2JNv0zg4EdhFISa9idvrdN/HEUIQQJNg6dmveUeJl2YErGA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-s390x-gnu@0.133.0": + resolution: + { integrity: sha512-ZwZNo8FZmB/gVfboQl+wXilBigGl+6nQQs+nITOeAP/HcAOjiHl6XZJL9F/KXNEspODQcbjAiyjUbeCJd9a0fA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.130.0': - resolution: {integrity: sha512-9aCWj83dp3heTQGmGnZGdIWgxjZrr/7VQ0TGFHH5PKByxJKF2Hcr4qvaSUHhhGEa3MSsDjTL1YDP8RAgdL5/Cg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-x64-gnu@0.130.0": + resolution: + { integrity: sha512-9aCWj83dp3heTQGmGnZGdIWgxjZrr/7VQ0TGFHH5PKByxJKF2Hcr4qvaSUHhhGEa3MSsDjTL1YDP8RAgdL5/Cg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.131.0': - resolution: {integrity: sha512-JHK/h95qVqVQ+ITER837kcTdwBDFpFaNnOTYGCP0zdUSX/mLKC7tXOoyrTb6vG7iRPwGlcgBil3v2IjYw1FqJA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-x64-gnu@0.132.0": + resolution: + { integrity: sha512-WcEaSNHFk8yz5YFlQQAlhq6jOFmZBB/RKE7uzhyCIf+pF1Lmv9gUH4221mle2Gd9iHyWT3ySNph8yZgb1xYdWg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.130.0': - resolution: {integrity: sha512-afXt87aZBqrUVli8TB/I8H1G50RDWcwirjWtXGXYqJ2ZqWEiErH7V72j3LUSDZaivmtu2OLX0KQ/mbhP81mr7A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-x64-gnu@0.133.0": + resolution: + { integrity: sha512-govCvWx1dBlED3uu4qXctxpRcouu9I8Kn+DBktGCl760JtlGJzc9l/OmPJKlYWSbrRqKkMZehNeZ/4Wfma7uSA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@oxc-parser/binding-linux-x64-musl@0.130.0": + resolution: + { integrity: sha512-afXt87aZBqrUVli8TB/I8H1G50RDWcwirjWtXGXYqJ2ZqWEiErH7V72j3LUSDZaivmtu2OLX0KQ/mbhP81mr7A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [musl] + + "@oxc-parser/binding-linux-x64-musl@0.132.0": + resolution: + { integrity: sha512-iQrV4iJzQgRwK3BWRmQl1C3C6g3wYpXN2WLdQdyR+efoUnncdShZAVp9OgcojtlD3MDRbuOMGG3SjxF4fL4nlQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-x64-musl@0.131.0': - resolution: {integrity: sha512-b2BO82O8azXAyf7EUgOPKu145nWypbNyk07HbU09fkzhm9lEA5oPvaN/M8Nlo7tOErVTa2WOgS4QbOnxAPXdDQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-linux-x64-musl@0.133.0": + resolution: + { integrity: sha512-ssTlpXD5Mq9uCssDJPzlRWqBt4Y7Zzd9i+XZhWmK/9Y6KUIuAxVYTYiI8lxcGWi0+3/Cz4A8q9UrD4NK9Y2j7g== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-openharmony-arm64@0.130.0': - resolution: {integrity: sha512-I0NCrZV/YZuCGWgqwNN/GO/iXlLF2z+Wgc7u+Aa9N4P51oYeIa0XT+zVBUne4csO9GqxskXgI4g8JzzWGRpfOw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-openharmony-arm64@0.130.0": + resolution: + { integrity: sha512-I0NCrZV/YZuCGWgqwNN/GO/iXlLF2z+Wgc7u+Aa9N4P51oYeIa0XT+zVBUne4csO9GqxskXgI4g8JzzWGRpfOw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + "@oxc-parser/binding-openharmony-arm64@0.132.0": + resolution: + { integrity: sha512-FWzmUGrZ6GUby4U7WIwcCtab6tdmlTO3xTRRKyb5kjIJVEiaUAT8animUG/nK8ZCA8gkRkPOTId4rl6uTqUmJQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-openharmony-arm64@0.131.0': - resolution: {integrity: sha512-GHO9glZaX7LkX/OGfluEPf1yjg+ehiFbUdowbX6uNWOQhmwKWU4m4+nZ9FJkrHNKuxyI1KKertMdGjVKCApKWA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-openharmony-arm64@0.133.0": + resolution: + { integrity: sha512-51aByfXhPtLEdWG4a2Ihdw6cPWV1ei1AarALpFdDP8MLWDLE2NuUMgbo3DERR2Kt8fT/ok1GUvBiLxVGke9uUQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.130.0': - resolution: {integrity: sha512-sJgQkGaBX0WJvPUDfwciex6IcTk5O5NLQ1bhEb6f3nBruh1GshKMRSMt2bxZlYrgBzjyBbJzsnO+InPG0bg+fA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-wasm32-wasi@0.130.0": + resolution: + { integrity: sha512-sJgQkGaBX0WJvPUDfwciex6IcTk5O5NLQ1bhEb6f3nBruh1GshKMRSMt2bxZlYrgBzjyBbJzsnO+InPG0bg+fA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@oxc-parser/binding-wasm32-wasi@0.131.0': - resolution: {integrity: sha512-3SkikPaEFoih1N83qLVEDLRLeY4nYsf6JT9SnWiMCQ5lGQdKup6bEuKCqkRiG9dD1IIaFeYz9RjlciPmYoFIWA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-wasm32-wasi@0.132.0": + resolution: + { integrity: sha512-TlbMppxJI5CjWDes0QaP6G3aneVg1yikBu5QYI+DUShF9WDL66ccgKFNNGmi/Wybtszw6hxwAvv76T4DaPKnHw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.130.0': - resolution: {integrity: sha512-bjcma99sQrNh6RY4mPO9yTkfxql6TDFoN3HWdK31RCKXwNhcDgJXW/l8PUtzKNiQ+9vpKJfJtQq+LklBuxSOBA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-wasm32-wasi@0.133.0": + resolution: + { integrity: sha512-2e16tkKp+wDO2GTAmXfxbBcCmGEaFPIJEIRBBmVKNVXSc8/fJsSIaBGyFTPHM9ST5GNWgJcYIt94rDTks+PLwA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [wasm32] + + "@oxc-parser/binding-win32-arm64-msvc@0.130.0": + resolution: + { integrity: sha512-bjcma99sQrNh6RY4mPO9yTkfxql6TDFoN3HWdK31RCKXwNhcDgJXW/l8PUtzKNiQ+9vpKJfJtQq+LklBuxSOBA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-arm64-msvc@0.131.0': - resolution: {integrity: sha512-Os5bEhryeA2jkH+ZrnZyAC1EP5gs+X4YB1Fjqml7UPD5kU7ecsK1MPEVMfCrdt/GDNpDbavYXiOXOdyJ5b3OPw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-win32-arm64-msvc@0.132.0": + resolution: + { integrity: sha512-RH/NbFjGKqdUAUi7Oh3LQPxUk2hsWFEEQ38HSnbRQT8QjBZFKqL1fMbmsB3N4jy/KPh9iX94+9dmkEMBBbambw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.130.0': - resolution: {integrity: sha512-hRYbv6HhpSTzT4xTiIkadLI7upLQxuOdLPR/9nL1fTjwhgutBTPXrwaAPb/jTFVx6/8C7Jb5HcUKhmNwloTbFA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-win32-arm64-msvc@0.133.0": + resolution: + { integrity: sha512-KPTNDKbxH1cglrqTyVeXHb4Pk4oksz8EcE1/v8zqU7N4UXbiHfA/IwtXZ2U77fnRAWBbgVkl/lZbL7o3hRdejg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + "@oxc-parser/binding-win32-ia32-msvc@0.130.0": + resolution: + { integrity: sha512-hRYbv6HhpSTzT4xTiIkadLI7upLQxuOdLPR/9nL1fTjwhgutBTPXrwaAPb/jTFVx6/8C7Jb5HcUKhmNwloTbFA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.131.0': - resolution: {integrity: sha512-m+jNz9EuF0NXoiptc6B9h5yompZQVW/a5MJeOu5zojfH5yWk82tvF2ccrHkfhgtrS9h9DD5l1Qv8dWlfY7Nz8g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-win32-ia32-msvc@0.132.0": + resolution: + { integrity: sha512-JUr4jQY9jxoIB/YTLXr6XofSi5xikj6p5/Ns1h0VOBDT0j1jKU+kMsv2xxv51RwnETcXpA1Yw/9oUAfcqfaqEA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.130.0': - resolution: {integrity: sha512-RBpA9TsRucJq6HNVNCFF1iKg+QeTkLdZf7hi4xaOGCPvMZWvDHjQgSOEZMUpuW4JNciHbxNhLEYmz5CVygjVGQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-win32-ia32-msvc@0.133.0": + resolution: + { integrity: sha512-Una1bNYv9zCavQrfnDR9wuZVB3itLjCEH4Oz7i6CwAJN/Xq9b+zbbcxmvdkKvvJt4Ngc/MBmIYlbLo3zS4TQ0A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ia32] + os: [win32] + + "@oxc-parser/binding-win32-x64-msvc@0.130.0": + resolution: + { integrity: sha512-RBpA9TsRucJq6HNVNCFF1iKg+QeTkLdZf7hi4xaOGCPvMZWvDHjQgSOEZMUpuW4JNciHbxNhLEYmz5CVygjVGQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.131.0': - resolution: {integrity: sha512-o14Hk8dAyiEUMFEWEgmAwFZvBt1RzAYLM3xeQ+5315JXgVYhoemivgYcbYVRbsFkS71ShMGlAFE0kPnr460rww==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-parser/binding-win32-x64-msvc@0.132.0": + resolution: + { integrity: sha512-2dapgHpA5X8DSXF4AU36hJWYf6zP0tKjMXFRAZFBD62pkevW/uhFDXoFH9Y/3Fd2EtDrw5ByNnR1wVE9X9y0SQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@oxc-project/types@0.113.0': - resolution: {integrity: sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==} + "@oxc-parser/binding-win32-x64-msvc@0.133.0": + resolution: + { integrity: sha512-kjBhCiOGSYTwDJQuuZa7a94JbP8htWu7J0X1KwH74kV2K5eYf6eyJRYmkpCDvr0XEL8tMxYI4WU1VekblFCLgg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] + + "@oxc-project/types@0.122.0": + resolution: + { integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA== } - '@oxc-project/types@0.124.0': - resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + "@oxc-project/types@0.130.0": + resolution: + { integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q== } - '@oxc-project/types@0.130.0': - resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} + "@oxc-project/types@0.132.0": + resolution: + { integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ== } - '@oxc-project/types@0.131.0': - resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==} + "@oxc-project/types@0.133.0": + resolution: + { integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA== } - '@oxc-project/types@0.132.0': - resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} + "@oxc-project/types@0.135.0": + resolution: + { integrity: sha512-wR+xRdFkUBMvcAjBJ2q2kcZM6d+DKu2NgoOyxZgYwZdLhmiv6+rnO8PZ/P68kMiZtIKm+pW7zyEJ4kSOs0vo+Q== } - '@oxc-resolver/binding-android-arm-eabi@11.19.1': - resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} + "@oxc-resolver/binding-android-arm-eabi@11.20.0": + resolution: + { integrity: sha512-IjfWOXRgJFNdORDl+Uf1aibNgZY2guOD3zmOhx1BGVb/MIiqlFTdmjpQNplSN58lhWehnX4UNqC3QwpUo8pjJg== } cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.19.1': - resolution: {integrity: sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==} + "@oxc-resolver/binding-android-arm64@11.20.0": + resolution: + { integrity: sha512-QqslZAuFQG8Q9xm7JuIn8JUbvywhSBMVhuQHtYW+auirZJloS41oxUUaBXk7uUhZJgp44c5zQLeVvmFaDQB+2Q== } cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.19.1': - resolution: {integrity: sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==} + "@oxc-resolver/binding-darwin-arm64@11.20.0": + resolution: + { integrity: sha512-MUcavykj2ewlR+kc5arpg4tC2RvzJkUxWtNv74pf7lcNk00GpIpN43vXMj+j6r4eMmfZhlb8hueKoIb8e9kAGQ== } cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.19.1': - resolution: {integrity: sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==} + "@oxc-resolver/binding-darwin-x64@11.20.0": + resolution: + { integrity: sha512-BGB16nRUK5Etiv//ihPyzj8Lj1px0mhh4YIfe0FDf045ywknfSm0GEbiRESpr6Q4K82AvnyaRIhhluHByvS4bg== } cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.19.1': - resolution: {integrity: sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==} + "@oxc-resolver/binding-freebsd-x64@11.20.0": + resolution: + { integrity: sha512-JZgtePaqj3qmD5XFHJaSLWzHRxQu0LaPkdoM1KJXYADvAaa83ijXHclV3ej3CueeW0wxfIAbGCZVP45J0CA7uQ== } cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': - resolution: {integrity: sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==} + "@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0": + resolution: + { integrity: sha512-hOQ/p3ry3v3SchUBXicrrnszaI/UmYzM4wtS4RGfwgVUX7a+HbyQSzJ5aOzu+o6XZkFkS3ZXN4PZAzhOb77OSg== } cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': - resolution: {integrity: sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==} + "@oxc-resolver/binding-linux-arm-musleabihf@11.20.0": + resolution: + { integrity: sha512-2ArPksaw0AqeuGBfoS715VF+JvJQAhD2niWgjE5hVO+L+nAfikVQopvngCMX9x4BD8itWoQ3dnikrQyl5Ho5Jg== } cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': - resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} + "@oxc-resolver/binding-linux-arm64-gnu@11.20.0": + resolution: + { integrity: sha512-0bJnmYFp62JdZ4nVMDUZ/C58BCZOCcqgKtnUlp7L9Ojf/czIN+3j72YlLPeWLkzlr6SlYvIQA4SGV/HyO0d+qg== } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-arm64-musl@11.19.1': - resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} + "@oxc-resolver/binding-linux-arm64-musl@11.20.0": + resolution: + { integrity: sha512-wKHHzPKZo7Ufhv/Bt6yxT7FOgnIgW4gwXcJUipkShGp68W3wGVqvr1Sr0fY65lN0Oy6y41+g2kIDvkgZaMMUkw== } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': - resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} + "@oxc-resolver/binding-linux-ppc64-gnu@11.20.0": + resolution: + { integrity: sha512-RN8goF7Ie0B79L4i4G6OeBocTgSC56vJbQ65VJje+oXnldVpLnOU7j/AQ/dP94TcCS+Yh6WG8u3Qt4ETteXFNQ== } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': - resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} + "@oxc-resolver/binding-linux-riscv64-gnu@11.20.0": + resolution: + { integrity: sha512-5l1yU6/xQEqLZRzxqmMxJfWPslpwCmBsdDGaBvABPehxquCXDC7dd7oraNdKSJUMDXSM7VvVj8H2D2FTjU7oWw== } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': - resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} + "@oxc-resolver/binding-linux-riscv64-musl@11.20.0": + resolution: + { integrity: sha512-xHEvkbgz6UC+A3JOyDQy76LkUaxsNSfIr3/GV8slwZsnuooJiIB34gzJfsyvR4JdCYNUUPsRJc/w/oWkODu+hg== } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': - resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} + "@oxc-resolver/binding-linux-s390x-gnu@11.20.0": + resolution: + { integrity: sha512-aWPDUUmSeyHvlW+SoEUd+JIJsQhVhu6a5tBpDRMu058naPAchTgAVGCFy35zjbnFlt0i8hLWziff6HX0D3LU4g== } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-gnu@11.19.1': - resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} + "@oxc-resolver/binding-linux-x64-gnu@11.20.0": + resolution: + { integrity: sha512-x2YeSimvhJjKLVD8KSu8f/rqU1potcdEMkApIPJqjZWN7c2Fpt4g2X32WDg1p+XDAmyT7nuQGe0vnhvXeLbH+g== } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-musl@11.19.1': - resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} + "@oxc-resolver/binding-linux-x64-musl@11.20.0": + resolution: + { integrity: sha512-kcRLEIxpZefeYfLChjpgFf3ilBzRDZ+yobMrpRsQlSrxuFGtm3U6PMU7AaEpMqo3NfDGVyJJseAjnRLzMFHjwQ== } cpu: [x64] os: [linux] libc: [musl] - '@oxc-resolver/binding-openharmony-arm64@11.19.1': - resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} + "@oxc-resolver/binding-openharmony-arm64@11.20.0": + resolution: + { integrity: sha512-HHcfnApSZGtKhTiHqe8OZruOZe5XuFQH5/E0Yhj3u8fnFvzkM4/k6WjacUf4SvA0SPEAbfbgYmVPuo0VX/fIBQ== } cpu: [arm64] os: [openharmony] - '@oxc-resolver/binding-wasm32-wasi@11.19.1': - resolution: {integrity: sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==} - engines: {node: '>=14.0.0'} + "@oxc-resolver/binding-wasm32-wasi@11.20.0": + resolution: + { integrity: sha512-Tn0y1XOFYHNfK1wp1Z5QK8Rcld/bsOwRISQXfqAZ5IBpv8Gz1IvV39fUWNprqNdRizgcvFhOzWwFun2zkJsyBg== } + engines: { node: ">=14.0.0" } cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': - resolution: {integrity: sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==} + "@oxc-resolver/binding-win32-arm64-msvc@11.20.0": + resolution: + { integrity: sha512-qPi25YNPe4YenS8MgsQU2+bIFHxxpLx1LVna2444cEHqNPhNjvWf9zqj4aWE43H9LpAsTmkkAlA3eL5ElBU3mA== } cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': - resolution: {integrity: sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==} - cpu: [ia32] - os: [win32] - - '@oxc-resolver/binding-win32-x64-msvc@11.19.1': - resolution: {integrity: sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==} + "@oxc-resolver/binding-win32-x64-msvc@11.20.0": + resolution: + { integrity: sha512-Wb14jWEW8huH6It9F6sXd9vrYmIS7pMrgkU6sxpLxkP+9z+wRgs71hUEhRpcn8FOXAFa27FVWfY2tRpbfTzfLw== } cpu: [x64] os: [win32] - '@oxc-transform/binding-android-arm-eabi@0.131.0': - resolution: {integrity: sha512-rcNvLlbNnxTfYVlZVF+Rev2AyCpJDpwVPphG4HOJxauaT1+w5VxL+kRdxCReof4A8ZsszbvIYlvkqvaJKO4Mog==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-android-arm-eabi@0.132.0": + resolution: + { integrity: sha512-UEC6fwIer1e2H8+KYXfhfYMsDgqxrG93lCj3FkrKkJ2O05rikqiJLYGd9ZntmKne+9bOMMuznVKLGErub++mAg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [android] - '@oxc-transform/binding-android-arm64@0.131.0': - resolution: {integrity: sha512-/y+EH6QYQB2ZDQNvMlzItc36mw16GZwCDlvGYbQ4GCTE+7ZtSmx9E/rJOYzYyzMghz0c5dhJquRKScXdOZHpnQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-android-arm-eabi@0.133.0": + resolution: + { integrity: sha512-2A79NBpyBKgHJ0FwgC8D1hzp3x2ujyvqq/kG+M76YyDMMkxLhX6A3vjnAnfEKycOoZxuKhwYu8BF9hKq67ykIA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [android] + + "@oxc-transform/binding-android-arm64@0.132.0": + resolution: + { integrity: sha512-sr2BbEHtc5OkAN2nt5BpWGg/MnDkyQKf6tSjaZZ6k7Bb2FOa2CzZDy2pvH6tYdg+Ch/p/OGXXhENFVV9GU7ASw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@oxc-transform/binding-darwin-arm64@0.131.0': - resolution: {integrity: sha512-x1Va8zFomdYghAI0Zkt7kUmG50S65XH1u0EbIDr80M9idfXrQgd08ZGl3ejwRGLBrkbA8tkkmeOu1rWVFf7BXg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-android-arm64@0.133.0": + resolution: + { integrity: sha512-dynEph/hyoSgBzd2XbNlW37NK97nU6tZMs5jrhObUxSasBV/Gv9THZrWj9AlbWiMXR07WFYE82C9axjntYyBSw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] + + "@oxc-transform/binding-darwin-arm64@0.132.0": + resolution: + { integrity: sha512-yjL1GbN9Bb1HqjE8CS8NSwoZtDWgUGy43VbuFhmT4LEDx4Ph0guzVAyUKhc2CqqA4/x60qDvcH6QxwrguaqEVA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.131.0': - resolution: {integrity: sha512-EwacackWpYYXGZsl0Aj4NKvDdLuxWZg7LQDneFyMwuftpAxPQLRkHFwZib7r6wpIJm4NELhHW261A4vZ8OQqXQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-darwin-arm64@0.133.0": + resolution: + { integrity: sha512-4hGgKOG+dZSN3xjcgNWpcihekRG7/YbbAdjyz07yv0HjzA6kdqYAhGrn84374UPO2h6etYJwsCBoM9iJHHvJ8w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] + + "@oxc-transform/binding-darwin-x64@0.132.0": + resolution: + { integrity: sha512-e3vVXEbNw93aHr3si8eVpUgl+jWF6Ry8RgUihgSxiI+2c/VMxiPsEDghkqPcjujqsMYDRdISWJi23xk+PP72ow== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@oxc-transform/binding-freebsd-x64@0.131.0': - resolution: {integrity: sha512-EhXqWOtL1PWcJ3ktdplV4Wrez2PRuTBSDdB7KF6CN4zuZhohUjxC1bxqDNRbNSX46yaZ27IzJLafah1J6mSA8Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-darwin-x64@0.133.0": + resolution: + { integrity: sha512-7J11/9PFkznmKuANkCAjt3znV1BcDFXQSgDiBvDxXT3Wm6995/zxrJD5zmo+5XSgY4sm+2V8/ED6ZSD3mKOC5A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] + + "@oxc-transform/binding-freebsd-x64@0.132.0": + resolution: + { integrity: sha512-dIhAhkX8/It4IaKI944fN3jmfzunqv2sEG2G4fQdP5/1psycdqUHoVaY23DbpuYRIu4sWAdn/e1zQFP0GMkQOQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@oxc-transform/binding-linux-arm-gnueabihf@0.131.0': - resolution: {integrity: sha512-NfNACr3aqBKeeUh6HCoGGPSjdMkLvyXUZQywCg/DwRkEpqZo55KX65saW1sQdgBcu0SKXrAReTjIm/HDO/OI0Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-freebsd-x64@0.133.0": + resolution: + { integrity: sha512-5EMAO0vzCpUfhn6aSjIUeJeRI2ztevHwSVr/M8sZ2VBYc79UuOfjjMCQ67LtUbgpvQtpBWkzeAHCP3L7JFYmlg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + "@oxc-transform/binding-linux-arm-gnueabihf@0.132.0": + resolution: + { integrity: sha512-eR0dfj1us7DNbGZ6eBdAqWnLZRkLqHFqewSHudX4gV7di3By8E05+M+qsGTB/zq/78Z0BYJeK1zGWu9un6jocw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-musleabihf@0.131.0': - resolution: {integrity: sha512-ABp6KGhbYFGDaAdB4gGZW12DYa55OF/Cu+6Rw6/Di0skuwpiDwnBOLHWz9VBq0QTcREy/qIUOnKW+vZHQLOT8A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-arm-gnueabihf@0.133.0": + resolution: + { integrity: sha512-z6XT8tmo9sPmCIYaFIxDelBU4wXLwwWMX2VNCMIY6bkQp5r+kRtVXYS3yLbJHMKEhRKvw/g+Z7fO9aadsGGEAw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm64-gnu@0.131.0': - resolution: {integrity: sha512-4nKYkHHjRela+jpt+VO4++jxgHoJQFxAeAGtfQ4x11dQMJllzqo3Yu8gfcfLEMsAfflwN/gY+KBbMD/y0exitg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-arm-musleabihf@0.132.0": + resolution: + { integrity: sha512-naNx0WaV70hKtgQ5LUS/jzRTy6XEQZ1krK7KTFZQLI1mEz+GqLrwsLCqEmtrQ6HcqLhvGvA6GAWfFrc/0mWryA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-transform/binding-linux-arm-musleabihf@0.133.0": + resolution: + { integrity: sha512-GQDpEV2VhHG8hT5BviDv+emi9oHYhfv+JJJWROYp+eGgWjiQMp4QZVb6Bu3kwVMzkwy0r200ToA1KThYTq53ug== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@oxc-transform/binding-linux-arm64-gnu@0.132.0": + resolution: + { integrity: sha512-TWk1p0tbtE1tkMEABftfgXhMEfuoz3QieqBtMBXXyijizw/2YKNzbVSndG+vV73cSZgbyfoZ346pmuz0tQMzyw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@oxc-transform/binding-linux-arm64-gnu@0.133.0": + resolution: + { integrity: sha512-VstR+NEQAJb80ysWk2vPjEvg0JzwEjKn2hDbC/joa5zGXkCnVVCWgAGG8c6o23S981a7XRpCMcClBgeD1q9H2A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-transform/binding-linux-arm64-musl@0.131.0': - resolution: {integrity: sha512-cW0Ab1s0sxfiyP1+gdd94f0vUjwGzJF4F3DepF3VnR9nFTGMmFLugwtrBS3DYjTnbugiUH3Fp+16yys1FhNzIA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-arm64-musl@0.132.0": + resolution: + { integrity: sha512-LxURDI0Wm2KCQm/3ynNlI+nTgPdfmAfmrl54XPx+gaIqty8S/XWNCCTvLJWaCb0e5eKqnzrcTuhMDOdawqoYIA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@oxc-transform/binding-linux-ppc64-gnu@0.131.0': - resolution: {integrity: sha512-wunAU/lzE1nPGKL47uI0g+4Nsv/12xveOXNu4M70xe85kNBm7mQdMpZIeoVYCxtXew0iHxFKJDT6qK5mYFSA3w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-arm64-musl@0.133.0": + resolution: + { integrity: sha512-Ec7xJdDrnukgiz20E3iDNzAIgx1XXn8cVVsNNUpgEIAvNlXZaocqlQT8Zalk0Lv3fbkxcJ+9BuWB0ndBRHQtzg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@oxc-transform/binding-linux-ppc64-gnu@0.132.0": + resolution: + { integrity: sha512-eKEeG6SLtj01iDvi5QgMNzyEXt/K2BNWafZ0jGECmvqTWWaO2l4qBxUW+X+sAXp5vZBoT2WO3ZnshvIWXWjtKw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-transform/binding-linux-riscv64-gnu@0.131.0': - resolution: {integrity: sha512-r4sMt4OB4TryDcVWW9KnsXOf/ea7tIGX2QASNrpetzPocsBZqhHIFDbZ8EkBDjmlmWGHg6BgjVx6lLcMXX4Dcw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-ppc64-gnu@0.133.0": + resolution: + { integrity: sha512-6YX38grimcigz20eYpyz6e4c9rDKzwK3i+tcDpgwYj0bWreaAOwrABmSmKplPJOorkDVlbT69wPCN+d11irBQw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@oxc-transform/binding-linux-riscv64-gnu@0.132.0": + resolution: + { integrity: sha512-Kz6tg1Msra7+2iGV8K5xANLO2SmpP6n+91/Yy+JJh9EagU4hvMm7loReszzz2bwhs6Xs4HPrglxIngMdqnHpXw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [glibc] + + "@oxc-transform/binding-linux-riscv64-gnu@0.133.0": + resolution: + { integrity: sha512-WxMIzItRJR66lgaAyyqj0FFwLMpcuCV9mTFcUMQpIz8+Hey1Enk8xuv+7QpSsqCR5zRlwNr092dsFkz5cbvtrw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-transform/binding-linux-riscv64-musl@0.131.0': - resolution: {integrity: sha512-/rLVLItsBjKrnZFLiGrwRB3fs0dAjXZLqY7F42omvacFJjZsceQ3481oQX1bBs3RwoDDyDy/9ZkIN7kYIkv5Gw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-riscv64-musl@0.132.0": + resolution: + { integrity: sha512-dtUSp80ElrxUhfBNmFWGkFQQ51j3tRoZkKBXxEWh+hb+S6bbEdZCW/VuCYo/gCTH3DywwyTeWiG+dtZfJiHKvg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-transform/binding-linux-s390x-gnu@0.131.0': - resolution: {integrity: sha512-fUprJgJauI1A7e7cDgY/Z3mwLVtE3aswB4lvS96KpRNDHrwOh8bnCJOWf+0CYveDQzghDVFiZWVDo56pO4Wr9Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-riscv64-musl@0.133.0": + resolution: + { integrity: sha512-+x6dnO87986rjVNjcF0tg8wVS0e/SH8nzLa/X0Wsh7jtEniN7buvR8iqZm8pnsfaZ8DH5F4GCSZpoPRrd9jJ6w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [riscv64] + os: [linux] + libc: [musl] + + "@oxc-transform/binding-linux-s390x-gnu@0.132.0": + resolution: + { integrity: sha512-9qVyCbYSs8dwVPpqKKWxuUAnLJ1+LyC5A4oNMZTzymRhuQr3coqAP/XWfJ8LlhQqI9GvhK0SWCOK0iM3HFUAnA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@oxc-transform/binding-linux-s390x-gnu@0.133.0": + resolution: + { integrity: sha512-oEyQudXIwWM/+v0vZzPbAi25YMWyvjtQYYjuSrhMEQwe7ZEMDXscX7U1j6alrVdZq2DtCMeror3X/Dv7p/JUwg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-transform/binding-linux-x64-gnu@0.131.0': - resolution: {integrity: sha512-XdbvDT1GPNxrTLXSRt4RU2uCH112q3nINTT05DZqTYYcAxaCPImnMoZe2TlBv5j2376Gk+2pcVnJs6xut47aSw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-x64-gnu@0.132.0": + resolution: + { integrity: sha512-dUtJkDCYndDaxcuiSMyRoSb7sXmTbcJ61rDsUjIakghP6BkKwH57lyHYvSUhT1ZswXWwCjf3ksxlT8nA0iU6ag== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@oxc-transform/binding-linux-x64-musl@0.131.0': - resolution: {integrity: sha512-Du2CxlBfC98EV3hOAmLVSUgP0JgqM9F47lRv9v43T4sGPcQVOjs9wffUybGUUraG9unmBZ4dgpMAqlCq0k3dGw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-linux-x64-gnu@0.133.0": + resolution: + { integrity: sha512-G8P/OadKTbyUHz5TK63sDDtUHwn2SXG/o0oGo4GGTzBu70xmUSN5/ZUgpyl6ypAmbshoyw8nC7+msb3BjzHxaA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@oxc-transform/binding-linux-x64-musl@0.132.0": + resolution: + { integrity: sha512-I7BkkktnrriiO7o1dF3RDgKZoSmFKX9IE0W2LE1WdfmpZcAa3fbv5BW6oVbzk40iD29hWSP69A65WT9l6dxuzg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [musl] + + "@oxc-transform/binding-linux-x64-musl@0.133.0": + resolution: + { integrity: sha512-Oi/fyOzZ+aytmmsRND5pGgvux4n++v9cG4qNFiXj7qFwSqBKWZHBq7cJLXqbH1I81pyI3kvU1Za+1qk3afXuwg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@oxc-transform/binding-openharmony-arm64@0.131.0': - resolution: {integrity: sha512-wTj2FkOgNhgdisnA0a15QQksyj6AH2snmpgYgAtj098i477x5LpHHdqfuk60jsA/QHSjmUc6dm4P88yI5GY4xA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-openharmony-arm64@0.132.0": + resolution: + { integrity: sha512-yiXaRYqgySJguURNZUFLDzSI1NTkP1jJKrowr8lQCKwY5N8DsESbQJ1RpSlEbeXGiy201puA+QC2fdr+ywQM/A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@oxc-transform/binding-wasm32-wasi@0.131.0': - resolution: {integrity: sha512-lE9UaZL0KomAlbATiB6FKoJ9no6W49yXs/MujJqY75AkHHMeOCsHSN9HvriyWz2FOIQgV7C5cmNj0jf+IaBtQg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-openharmony-arm64@0.133.0": + resolution: + { integrity: sha512-/ZElgq+/tcga27X2G2AUpxcYX0baX94Gz658w6Zz2P+6Kr06bfYSrdtC0P7oPrbu3Gy/6kpiSoJPgZy8R2IjYQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + "@oxc-transform/binding-wasm32-wasi@0.132.0": + resolution: + { integrity: sha512-KNago0Mv+zl2yl5hK2G9V4Yb7Tgpn+z6lgzgaHXkGp7S+iuUtN3av+QqPCD/J+Odq6EjjyXJrFPfmyjbXXbf4Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@oxc-transform/binding-win32-arm64-msvc@0.131.0': - resolution: {integrity: sha512-8KUfPnuxbEfa9H+OQ5XNPFq9JIEWVCg8kczJaD8PvTprr515mz1lmSLSUoOW8mrLaN0mZaGg6pemuvTawOLoPg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-wasm32-wasi@0.133.0": + resolution: + { integrity: sha512-GANcoEa8Nzza7saxdb4qWO24U6jk4nK6G+g87lGp8TTU45CUvWf1Igdze2+NrebgiwOy6F1/h6Esag4DM3JTtQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [wasm32] + + "@oxc-transform/binding-win32-arm64-msvc@0.132.0": + resolution: + { integrity: sha512-3fprECrLHwPP809a1SRzszDxp8Fpp8IOg0V2EO49wS+3JmRFOo090h5c37faZvym5VnRZ12DH2tkT6ZVXwlOsA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + "@oxc-transform/binding-win32-arm64-msvc@0.133.0": + resolution: + { integrity: sha512-2+uDo/+ZvGQu10J8xryg/l5PdBt2vXPtf+0aIosVKJavqCaKcBDdo95OUaEulx0bqvoytAQ4yyz2gcPZ40mjcQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-ia32-msvc@0.131.0': - resolution: {integrity: sha512-pXSu2A7L6H//1Uvsg5RJHb91BDZpCTho0r9oAwxPqKJM2LWV7Zph/ikWEIXt/YLbKF3WpkHrKQ5hbQGP9gWmHg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-win32-ia32-msvc@0.132.0": + resolution: + { integrity: sha512-n616QqZ3hXasHytVoFjo6pLzIfo6hQwBEir0kOcaObKaAw0ZbncIe1h5a6IMnCOJGLP30WwnhwLW20tIV78MAA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ia32] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.131.0': - resolution: {integrity: sha512-VXgk106WLl3NpBO/6G2gxkWBHguCJm01mGqAq2Q0l2o7hnbglsND0UWSCtM3a9MlsDimfJkLWFQveZu4UtnRvA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@oxc-transform/binding-win32-ia32-msvc@0.133.0": + resolution: + { integrity: sha512-zpPIZ1S3JHmSEFyyGyPYCwhOiNLyfaPifYxK8BQY21JXyHglu/wUr3/ESFrXb+XegEy/iBlWbzr3FzPtcq1MUw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ia32] + os: [win32] + + "@oxc-transform/binding-win32-x64-msvc@0.132.0": + resolution: + { integrity: sha512-P7A4Cz/0C0Oxa2zH/oCruzA/5EHr5RRz0x6KXYz3wwhS+dFqIBxP9yo8FKjXhKXHRKa+M+QHo+bqYiqqlVsEQg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@paralleldrive/cuid2@3.3.0': - resolution: {integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw==} + "@oxc-transform/binding-win32-x64-msvc@0.133.0": + resolution: + { integrity: sha512-cADrfLvc/VeyvpvQS+t5ktqfyqyyGANZC5NHp++JAElacfXqq/+k8bYkjqMWzNZ3HxkJtL1qDHfZZCA9+4hlSQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] + + "@paralleldrive/cuid2@3.3.0": + resolution: + { integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw== } hasBin: true - '@parcel/watcher-android-arm64@2.5.6': - resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-android-arm64@2.5.6": + resolution: + { integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A== } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.5.6': - resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-darwin-arm64@2.5.6": + resolution: + { integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA== } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.6': - resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-darwin-x64@2.5.6": + resolution: + { integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg== } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.5.6': - resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-freebsd-x64@2.5.6": + resolution: + { integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng== } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.5.6': - resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm-glibc@2.5.6": + resolution: + { integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ== } + engines: { node: ">= 10.0.0" } cpu: [arm] os: [linux] libc: [glibc] - '@parcel/watcher-linux-arm-musl@2.5.6': - resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm-musl@2.5.6": + resolution: + { integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg== } + engines: { node: ">= 10.0.0" } cpu: [arm] os: [linux] libc: [musl] - '@parcel/watcher-linux-arm64-glibc@2.5.6': - resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm64-glibc@2.5.6": + resolution: + { integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA== } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [linux] libc: [glibc] - '@parcel/watcher-linux-arm64-musl@2.5.6': - resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm64-musl@2.5.6": + resolution: + { integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA== } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [linux] libc: [musl] - '@parcel/watcher-linux-x64-glibc@2.5.6': - resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-x64-glibc@2.5.6": + resolution: + { integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ== } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [linux] libc: [glibc] - '@parcel/watcher-linux-x64-musl@2.5.6': - resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-x64-musl@2.5.6": + resolution: + { integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg== } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [linux] libc: [musl] - '@parcel/watcher-wasm@2.5.6': - resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-wasm@2.5.6": + resolution: + { integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA== } + engines: { node: ">= 10.0.0" } bundledDependencies: - napi-wasm - '@parcel/watcher-win32-arm64@2.5.6': - resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-arm64@2.5.6": + resolution: + { integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q== } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.6': - resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-ia32@2.5.6": + resolution: + { integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g== } + engines: { node: ">= 10.0.0" } cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.5.6': - resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-x64@2.5.6": + resolution: + { integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw== } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [win32] - '@parcel/watcher@2.5.6': - resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} - engines: {node: '>= 10.0.0'} - - '@paulirish/trace_engine@0.0.59': - resolution: {integrity: sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==} - - '@peculiar/asn1-cms@2.7.0': - resolution: {integrity: sha512-hew63shtzzvBcSHbhm+cyAmKe6AIfinT9hzEqSPjDC6opTTMKmTkQ0gHuN2KsWlvqiKw1S/fS94fhag/FJkioQ==} - - '@peculiar/asn1-csr@2.7.0': - resolution: {integrity: sha512-VVsAyGqErT9D1SY4aEqozThXMVI+ssVRiv2DDeYuvpBKLIgZ3hYs3Ay3u/VSoKq6ESFi9cf6rf3IOOzfwh7oMA==} - - '@peculiar/asn1-ecc@2.7.0': - resolution: {integrity: sha512-n7KEs/Q/wrB415cxy4fHOBhegp4NdJ15fkJPwcB/3/8iNBQC2L/N7SChJPKDJPZGYH0jD4Tg4/0vnHmwghnbKw==} - - '@peculiar/asn1-pfx@2.7.0': - resolution: {integrity: sha512-V/nrlQVmhg7lYAsM7E13UDL5erAwFv6kCIVFqNaMIHSVi7dngcT839JkRTkQBqznMG98l2XjxYk74ZztAohZzA==} - - '@peculiar/asn1-pkcs8@2.7.0': - resolution: {integrity: sha512-9GTl1nE8Mx1kTZ+7QyYatDyKsm34QcWRBFkY1iPvWC3X4Dona5s/tlLiQsx5WzVdZqiMBZNYT0buyw4/vbhnjw==} - - '@peculiar/asn1-pkcs9@2.7.0': - resolution: {integrity: sha512-Bh7m+OuIaSEllPQcSd9OSp93F4ROWH7sbITWV8MI+8dwsjE5111/87VxiWVvYFKyww3vp39geLv9ENqhwWHcew==} - - '@peculiar/asn1-rsa@2.7.0': - resolution: {integrity: sha512-/qvENQrXyTZURjMqSeofHul0JJt2sNSzSwk36pl2olkHbaioMQgrASDZAlHXl0xUlnVbHj0uGgOrBMTb5x2aJQ==} - - '@peculiar/asn1-schema@2.7.0': - resolution: {integrity: sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg==} - - '@peculiar/asn1-x509-attr@2.7.0': - resolution: {integrity: sha512-NS8e7SOgXipkzUPLF/sce7ukpMpWjhxYsH0n6Y+bHYo4TTxOb95Zv7hqwSuL212mj5YxovjdOKQOgH1As3E94w==} - - '@peculiar/asn1-x509@2.7.0': - resolution: {integrity: sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g==} - - '@peculiar/utils@2.0.3': - resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} - - '@peculiar/x509@1.14.3': - resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} - engines: {node: '>=20.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@pkgr/core@0.3.6': - resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} - engines: {node: ^14.18.0 || >=16.0.0} - - '@playwright/test@1.60.0': - resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} - engines: {node: '>=18'} + "@parcel/watcher@2.5.6": + resolution: + { integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ== } + engines: { node: ">= 10.0.0" } + + "@paulirish/trace_engine@0.0.59": + resolution: + { integrity: sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw== } + + "@peculiar/asn1-cms@2.8.0": + resolution: + { integrity: sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA== } + + "@peculiar/asn1-csr@2.8.0": + resolution: + { integrity: sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg== } + + "@peculiar/asn1-ecc@2.8.0": + resolution: + { integrity: sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ== } + + "@peculiar/asn1-pfx@2.8.0": + resolution: + { integrity: sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg== } + + "@peculiar/asn1-pkcs8@2.8.0": + resolution: + { integrity: sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA== } + + "@peculiar/asn1-pkcs9@2.8.0": + resolution: + { integrity: sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ== } + + "@peculiar/asn1-rsa@2.8.0": + resolution: + { integrity: sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg== } + + "@peculiar/asn1-schema@2.8.0": + resolution: + { integrity: sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q== } + + "@peculiar/asn1-x509-attr@2.8.0": + resolution: + { integrity: sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA== } + + "@peculiar/asn1-x509@2.8.0": + resolution: + { integrity: sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg== } + + "@peculiar/utils@2.0.3": + resolution: + { integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== } + + "@peculiar/x509@1.14.3": + resolution: + { integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA== } + engines: { node: ">=20.0.0" } + + "@pkgjs/parseargs@0.11.0": + resolution: + { integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== } + engines: { node: ">=14" } + + "@pkgr/core@0.3.6": + resolution: + { integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA== } + engines: { node: ^14.18.0 || >=16.0.0 } + + "@playwright/test@1.61.0": + resolution: + { integrity: sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA== } + engines: { node: ">=18" } hasBin: true - '@pmmmwh/react-refresh-webpack-plugin@0.5.17': - resolution: {integrity: sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==} - engines: {node: '>= 10.13'} + "@pmmmwh/react-refresh-webpack-plugin@0.5.17": + resolution: + { integrity: sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ== } + engines: { node: ">= 10.13" } peerDependencies: - '@types/webpack': 4.x || 5.x - react-refresh: '>=0.10.0 <1.0.0' + "@types/webpack": 4.x || 5.x + react-refresh: ">=0.10.0 <1.0.0" sockjs-client: ^1.4.0 - type-fest: '>=0.17.0 <5.0.0' - webpack: '>=4.43.0 <6.0.0' + type-fest: ">=0.17.0 <5.0.0" + webpack: ">=4.43.0 <6.0.0" webpack-dev-server: 3.x || 4.x || 5.x webpack-hot-middleware: 2.x webpack-plugin-serve: 0.x || 1.x peerDependenciesMeta: - '@types/webpack': + "@types/webpack": optional: true sockjs-client: optional: true @@ -20315,2861 +22397,3478 @@ packages: webpack-plugin-serve: optional: true - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} + "@pnpm/config.env-replace@1.1.0": + resolution: + { integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== } + engines: { node: ">=12.22.0" } - '@pnpm/constants@1001.3.1': - resolution: {integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==} - engines: {node: '>=18.12'} + "@pnpm/constants@1001.3.1": + resolution: + { integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g== } + engines: { node: ">=18.12" } - '@pnpm/error@1000.1.0': - resolution: {integrity: sha512-Dqc2IJJPjUatwc9Letw+vG29rnaMrDGi5g6WCx1HiZYm0obXbTmLygeRafMbgf+sLKXrWE1shOeiayQuczBdoA==} - engines: {node: '>=18.12'} + "@pnpm/error@1000.1.0": + resolution: + { integrity: sha512-Dqc2IJJPjUatwc9Letw+vG29rnaMrDGi5g6WCx1HiZYm0obXbTmLygeRafMbgf+sLKXrWE1shOeiayQuczBdoA== } + engines: { node: ">=18.12" } - '@pnpm/find-workspace-dir@1000.1.5': - resolution: {integrity: sha512-r1WzYXBD8cqlglOi4ilN9BphX74mJmH2hhiogzYbcNCHhtXnG7tw/9Iq54UGZ+cpDkgGHjL0xLwj9QLUoKJxmg==} - engines: {node: '>=18.12'} + "@pnpm/find-workspace-dir@1000.1.5": + resolution: + { integrity: sha512-r1WzYXBD8cqlglOi4ilN9BphX74mJmH2hhiogzYbcNCHhtXnG7tw/9Iq54UGZ+cpDkgGHjL0xLwj9QLUoKJxmg== } + engines: { node: ">=18.12" } - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + "@pnpm/network.ca-file@1.0.2": + resolution: + { integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== } + engines: { node: ">=12.22.0" } - '@pnpm/npm-conf@3.0.2': - resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} - engines: {node: '>=12'} + "@pnpm/npm-conf@3.0.3": + resolution: + { integrity: sha512-//0sR/cow/s4ICQaYoAobOl4aU8cjU6x/V24V7XkKotb9+O+3zySIYp146vpaobYHnxa4pZX8NkV54Z5AwbDKA== } + engines: { node: ">=12" } - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + "@polka/url@1.0.0-next.29": + resolution: + { integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== } - '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + "@popperjs/core@2.11.8": + resolution: + { integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== } - '@poppinss/colors@4.1.6': - resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} + "@poppinss/colors@4.1.6": + resolution: + { integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg== } - '@poppinss/dumper@0.7.0': - resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==} + "@poppinss/dumper@0.7.0": + resolution: + { integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag== } - '@poppinss/exception@1.2.3': - resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} + "@poppinss/exception@1.2.3": + resolution: + { integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw== } - '@preact/async-loader@3.0.2': - resolution: {integrity: sha512-nYIdlAGbZ0+0/u5VJxQdLDgNFgEJmNLzctuqnCBZxW/EpLPMg8lcsnRsoXVl+O28ZZYhVhos3XiWM3KtuN0C3Q==} - engines: {node: '>=8'} + "@preact/async-loader@3.0.2": + resolution: + { integrity: sha512-nYIdlAGbZ0+0/u5VJxQdLDgNFgEJmNLzctuqnCBZxW/EpLPMg8lcsnRsoXVl+O28ZZYhVhos3XiWM3KtuN0C3Q== } + engines: { node: ">=8" } peerDependencies: - preact: '>= 10.0.0' + preact: ">= 10.0.0" - '@preact/signals-core@1.14.2': - resolution: {integrity: sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A==} + "@preact/signals-core@1.14.2": + resolution: + { integrity: sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A== } - '@preact/signals@1.3.4': - resolution: {integrity: sha512-TPMkStdT0QpSc8FpB63aOwXoSiZyIrPsP9Uj347KopdS6olZdAYeeird/5FZv/M1Yc1ge5qstub2o8VDbvkT4g==} + "@preact/signals@1.3.4": + resolution: + { integrity: sha512-TPMkStdT0QpSc8FpB63aOwXoSiZyIrPsP9Uj347KopdS6olZdAYeeird/5FZv/M1Yc1ge5qstub2o8VDbvkT4g== } peerDependencies: preact: 10.x - '@prefresh/babel-plugin@0.4.4': - resolution: {integrity: sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw==} + "@prefresh/babel-plugin@0.4.4": + resolution: + { integrity: sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw== } - '@prefresh/core@1.5.10': - resolution: {integrity: sha512-7yPTFbG56sutaFu8krp3B4a200KOFUvrtlllKWRuLjsYXo9UUucHOZRcer+gtgMkFTpv6ob8TGcTwA32bSwa1w==} + "@prefresh/core@1.5.10": + resolution: + { integrity: sha512-7yPTFbG56sutaFu8krp3B4a200KOFUvrtlllKWRuLjsYXo9UUucHOZRcer+gtgMkFTpv6ob8TGcTwA32bSwa1w== } peerDependencies: preact: ^10.0.0 || ^11.0.0-0 - '@prefresh/utils@1.2.1': - resolution: {integrity: sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==} + "@prefresh/utils@1.2.1": + resolution: + { integrity: sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw== } - '@prefresh/webpack@3.3.4': - resolution: {integrity: sha512-RiXS/hvXDup5cQw/267kxkKie81kxaAB7SFbkr8ppshobDEzwgUN1tbGbHNx6Uari0Ql2XByC6HIgQGpaq2Q7w==} + "@prefresh/webpack@3.3.4": + resolution: + { integrity: sha512-RiXS/hvXDup5cQw/267kxkKie81kxaAB7SFbkr8ppshobDEzwgUN1tbGbHNx6Uari0Ql2XByC6HIgQGpaq2Q7w== } peerDependencies: - '@prefresh/babel-plugin': ^0.4.0 + "@prefresh/babel-plugin": ^0.4.0 preact: ^10.4.0 webpack: ^4.0.0 || ^5.0.0 - '@prisma/instrumentation@6.11.1': - resolution: {integrity: sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==} + "@prisma/instrumentation@6.11.1": + resolution: + { integrity: sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA== } peerDependencies: - '@opentelemetry/api': ^1.8 + "@opentelemetry/api": ^1.8 - '@publint/pack@0.1.4': - resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} - engines: {node: '>=18'} + "@publint/pack@0.1.4": + resolution: + { integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ== } + engines: { node: ">=18" } - '@puppeteer/browsers@2.13.2': - resolution: {integrity: sha512-5EUZSUIc37H6aIXyWO0Z4y8NlF8NnjgmqeQgOGiswAU7pY0HOo16ho4+alIWmSfdZnjqBRawMsP3I5YqLSn6kw==} - engines: {node: '>=18'} + "@puppeteer/browsers@2.13.2": + resolution: + { integrity: sha512-5EUZSUIc37H6aIXyWO0Z4y8NlF8NnjgmqeQgOGiswAU7pY0HOo16ho4+alIWmSfdZnjqBRawMsP3I5YqLSn6kw== } + engines: { node: ">=18" } hasBin: true - '@puppeteer/browsers@2.6.1': - resolution: {integrity: sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==} - engines: {node: '>=18'} + "@puppeteer/browsers@2.6.1": + resolution: + { integrity: sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg== } + engines: { node: ">=18" } hasBin: true - '@puppeteer/browsers@3.0.4': - resolution: {integrity: sha512-HGM8iAmGTf+Y7t0373szVbTmt3d7vPkYL/1bpOkOFO0YUYLgSeuYBCzESklogNPvOBnZ/MRD5f07OkpqH1trtA==} - engines: {node: '>=22.12.0'} + "@puppeteer/browsers@3.0.4": + resolution: + { integrity: sha512-HGM8iAmGTf+Y7t0373szVbTmt3d7vPkYL/1bpOkOFO0YUYLgSeuYBCzESklogNPvOBnZ/MRD5f07OkpqH1trtA== } + engines: { node: ">=22.12.0" } hasBin: true peerDependencies: - proxy-agent: '>=8.0.1' + proxy-agent: ">=8.0.1" peerDependenciesMeta: proxy-agent: optional: true - '@putout/minify@6.0.7': - resolution: {integrity: sha512-rUjSKqBVXLkqU3cK+MVV8Zo5XcR3dyufEDlUp8wgD9sGYF+Ab+CoQB+zfOOfBV1gqPFFhEixnlNHbSVQHxzoTQ==} - engines: {node: '>=22'} + "@putout/minify@6.1.0": + resolution: + { integrity: sha512-3t5asqDeQXOiDmEFB/KSGqpHh0kOpL9RJXmUb0eQamJq6t2irinhjgRB7oCzU2jFZE+2DKz5QIi1dLy86uZWFg== } + engines: { node: ">=22" } - '@quansync/fs@1.0.0': - resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + "@quansync/fs@1.0.0": + resolution: + { integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ== } - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + "@radix-ui/primitive@1.1.4": + resolution: + { integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ== } - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + "@radix-ui/react-compose-refs@1.1.3": + resolution: + { integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + "@radix-ui/react-context@1.1.4": + resolution: + { integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + "@radix-ui/react-dialog@1.1.16": + resolution: + { integrity: sha512-l9ok83YBclEZhbjgzt76Hw733e6cvRKPNgO6GJ/IETlufXG9p+fRu2wlvpImQvR6xdJ8h7J8J2DBvsPEiEsKMw== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + "@radix-ui/react-dismissable-layer@1.1.12": + resolution: + { integrity: sha512-MhoruH6xEzsbvOmo4TNgMfmtvRGyDZw4MDSdf4ybMHfezjqwzv6hyd4lsMzBp8K9Sn6sGzCF62x1I7BYUECXOg== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + "@radix-ui/react-focus-guards@1.1.4": + resolution: + { integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + "@radix-ui/react-focus-scope@1.1.9": + resolution: + { integrity: sha512-9Se8t+Zry+1rEOL7Y6l/4ANYU/TOtAtf8O2fKdwLltcaMcm6kOqYGbzO4tMFQ0bvzO920pRAoHpFZ4W85S3keQ== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + "@radix-ui/react-id@1.1.2": + resolution: + { integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + "@radix-ui/react-portal@1.1.11": + resolution: + { integrity: sha512-UEytdjgEh2tJGgD/gZK4FUx6t1rNIlM3U0DENhSrG7I75FGm1DnaDuVUWF1pWAWUwGmn1sCJ1VGHn8LhN1aTOw== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + "@radix-ui/react-presence@1.1.6": + resolution: + { integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + "@radix-ui/react-primitive@2.1.5": + resolution: + { integrity: sha512-zifXeB8Y88qCYx8PLZ5oQb32KwZub+s925mMoZsBBq9KUQqWKkREubTfs6ASjRPPBe7Jt9O8OHH89+95VG+grA== } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.4': - resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': + "@types/react-dom": optional: true - '@radix-ui/react-slot@1.2.4': - resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + "@radix-ui/react-slot@1.2.5": + resolution: + { integrity: sha512-rCMO3QsIVKv5JTY5CVbo2MvO77SpEqqYc8AvRE7OWqRDOIqAKjsp+DrmnY9uc8NPdxB5E2z47HTYGeE2+NTptg== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + "@radix-ui/react-use-callback-ref@1.1.2": + resolution: + { integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + "@radix-ui/react-use-controllable-state@1.2.3": + resolution: + { integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + "@radix-ui/react-use-effect-event@0.0.3": + resolution: + { integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + "@radix-ui/react-use-escape-keydown@1.1.2": + resolution: + { integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + "@radix-ui/react-use-layout-effect@1.1.2": + resolution: + { integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA== } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@react-spring/animated@9.7.5': - resolution: {integrity: sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==} + "@react-spring/animated@9.7.5": + resolution: + { integrity: sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@react-spring/core@9.7.5': - resolution: {integrity: sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==} + "@react-spring/core@9.7.5": + resolution: + { integrity: sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@react-spring/rafz@9.7.5': - resolution: {integrity: sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==} + "@react-spring/rafz@9.7.5": + resolution: + { integrity: sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw== } - '@react-spring/shared@9.7.5': - resolution: {integrity: sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==} + "@react-spring/shared@9.7.5": + resolution: + { integrity: sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@react-spring/types@9.7.5': - resolution: {integrity: sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==} + "@react-spring/types@9.7.5": + resolution: + { integrity: sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g== } - '@react-spring/web@9.7.5': - resolution: {integrity: sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==} + "@react-spring/web@9.7.5": + resolution: + { integrity: sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@riotjs/cli@10.0.0': - resolution: {integrity: sha512-3g6upOpWHc3dHodDlaXeVPRXh8k4ZrEp7lGuTDO3fO84ecLhEYDitUvqckDn/xrzzDlbkg2vePX8dra2tk7OmA==} - engines: {node: '>=18.0.0'} + "@riotjs/cli@10.0.0": + resolution: + { integrity: sha512-3g6upOpWHc3dHodDlaXeVPRXh8k4ZrEp7lGuTDO3fO84ecLhEYDitUvqckDn/xrzzDlbkg2vePX8dra2tk7OmA== } + engines: { node: ">=18.0.0" } hasBin: true - '@riotjs/compiler@10.0.2': - resolution: {integrity: sha512-bkRL9C65nk8dPJVCCGOhhpYKsxS8RCvUeTxI5ZZfu47O2Q362RKCPYEOFiXeO6lHwQs8Jlr+Aq18K2J5pcEjzw==} + "@riotjs/compiler@10.0.2": + resolution: + { integrity: sha512-bkRL9C65nk8dPJVCCGOhhpYKsxS8RCvUeTxI5ZZfu47O2Q362RKCPYEOFiXeO6lHwQs8Jlr+Aq18K2J5pcEjzw== } - '@riotjs/dom-bindings@10.0.5': - resolution: {integrity: sha512-REE0AWoSkHYhHN1JiW++vM1gJrewUK5SYZjhfZoaO/GIiX8IYJEDf+DECrMzC8u2cTv5g4P24SgnFUtUD5F8gg==} + "@riotjs/dom-bindings@10.0.5": + resolution: + { integrity: sha512-REE0AWoSkHYhHN1JiW++vM1gJrewUK5SYZjhfZoaO/GIiX8IYJEDf+DECrMzC8u2cTv5g4P24SgnFUtUD5F8gg== } - '@riotjs/hot-reload@10.0.0': - resolution: {integrity: sha512-YIbznLj1UYB9k8imyxaKT5It8S2LGMG4oL+CGQTquK9uharpJOC96AGu6hhJhb882nnJye319p1ctaVrxGzitQ==} + "@riotjs/hot-reload@10.0.0": + resolution: + { integrity: sha512-YIbznLj1UYB9k8imyxaKT5It8S2LGMG4oL+CGQTquK9uharpJOC96AGu6hhJhb882nnJye319p1ctaVrxGzitQ== } peerDependencies: riot: ^6.0.0 || ^7.0.0 || ^9.0.0 || ^10.0.0 - '@riotjs/lazy@10.0.0': - resolution: {integrity: sha512-Ebcyfhl0P76oh8AyQ8t571THxocYJwKxV5dJXEkPb03HXYs9nyrdTPUjOvm7jFmEtP52rU5lxbci2dTqkdz+MQ==} + "@riotjs/lazy@10.0.0": + resolution: + { integrity: sha512-Ebcyfhl0P76oh8AyQ8t571THxocYJwKxV5dJXEkPb03HXYs9nyrdTPUjOvm7jFmEtP52rU5lxbci2dTqkdz+MQ== } peerDependencies: riot: ^6.0.0 || ^7.0.0 || ^9.0.0 || ^10.0.0 - '@riotjs/parser@10.0.0': - resolution: {integrity: sha512-e7cZhWWvfOfOcZGviq2Z+M4YNLMWxF5lVdkDVyyLVO8AaKrnv2KwXtb1yKNH445cvO6LvMI+iVNjhrp13cCXrA==} + "@riotjs/parser@10.0.0": + resolution: + { integrity: sha512-e7cZhWWvfOfOcZGviq2Z+M4YNLMWxF5lVdkDVyyLVO8AaKrnv2KwXtb1yKNH445cvO6LvMI+iVNjhrp13cCXrA== } - '@riotjs/register@10.0.0': - resolution: {integrity: sha512-q9AcBgB7JfxRoqgk+bKY3OFZeZ/6L/AV5dV3eYrQQMnU6KFTcmgqlNUEea3ET5SIgox8AtKaKR5Jb6YjD5xMvA==} + "@riotjs/register@10.0.0": + resolution: + { integrity: sha512-q9AcBgB7JfxRoqgk+bKY3OFZeZ/6L/AV5dV3eYrQQMnU6KFTcmgqlNUEea3ET5SIgox8AtKaKR5Jb6YjD5xMvA== } peerDependencies: - '@riotjs/compiler': ^9.0.0 || ^10.0.0 + "@riotjs/compiler": ^9.0.0 || ^10.0.0 - '@riotjs/route@10.0.0': - resolution: {integrity: sha512-NQ9JfIzq/itFthEbCS7GqaVEJ+yjgMqIEZcP2QbiHALcMjyeaR1CacGMMd44e9Gi+Y+N+kOebpTVw2QczTAiqg==} + "@riotjs/route@10.0.0": + resolution: + { integrity: sha512-NQ9JfIzq/itFthEbCS7GqaVEJ+yjgMqIEZcP2QbiHALcMjyeaR1CacGMMd44e9Gi+Y+N+kOebpTVw2QczTAiqg== } - '@riotjs/util@10.1.2': - resolution: {integrity: sha512-K85suj+5YItWHB5N6LO1uMJNH6ZMBl8FxGH2xDb6dl8V3EBlLuQaPQGVzp3SOKKqeqcxJH3o5UHHIgjc2I8YrA==} + "@riotjs/util@10.1.2": + resolution: + { integrity: sha512-K85suj+5YItWHB5N6LO1uMJNH6ZMBl8FxGH2xDb6dl8V3EBlLuQaPQGVzp3SOKKqeqcxJH3o5UHHIgjc2I8YrA== } - '@riotjs/webpack-loader@10.0.0': - resolution: {integrity: sha512-6CVQTEV7o0mfedG+29CWFfMTyr3D18Edno2glua66UT3ryFYnI69rDV1CW3PoLIDoMZIx8Xox7zu8w2bTdgO9w==} + "@riotjs/webpack-loader@10.0.0": + resolution: + { integrity: sha512-6CVQTEV7o0mfedG+29CWFfMTyr3D18Edno2glua66UT3ryFYnI69rDV1CW3PoLIDoMZIx8Xox7zu8w2bTdgO9w== } peerDependencies: - '@riotjs/compiler': ^6.0.0 || ^9.0.0 || ^10.0.0 - webpack: '>=5.0.0' + "@riotjs/compiler": ^6.0.0 || ^9.0.0 || ^10.0.0 + webpack: ">=5.0.0" - '@rolldown/binding-android-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-android-arm64@1.0.0-rc.12": + resolution: + { integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.4': - resolution: {integrity: sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-android-arm64@1.0.2": + resolution: + { integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.2': - resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-android-arm64@1.0.3": + resolution: + { integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-android-arm64@1.1.1": + resolution: + { integrity: sha512-BLf9Wak/gfwVb7NQTQW4wBgL3oAfPy7ArEkhwV543OVw/uY6B47z5xYsqPSZ9PDOorvURPinws6ThaFuNgGLgA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] + + "@rolldown/binding-darwin-arm64@1.0.0-rc.12": + resolution: + { integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] + + "@rolldown/binding-darwin-arm64@1.0.2": + resolution: + { integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-rc.4': - resolution: {integrity: sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-arm64@1.0.3": + resolution: + { integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.2': - resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-arm64@1.1.1": + resolution: + { integrity: sha512-rRZRPy/Ynb+Mxu0O6tfPldHeDgAn0sRij+IOUy6sFdUlv3hArGW/DloE3GfAxtqpOJuRNgF74Nr5gM4xBeU2jQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.15': - resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-x64@1.0.0-rc.12": + resolution: + { integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.4': - resolution: {integrity: sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-x64@1.0.2": + resolution: + { integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.2': - resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-x64@1.0.3": + resolution: + { integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': - resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-darwin-x64@1.1.1": + resolution: + { integrity: sha512-/MtefPxhKPyWWFM8L45OWiEqRf+eSU2Qv9ZAyTaoZOoGcoPKxbbhjTJO2/U2IThv0uDZ4NWHc3/oTsR6IEOtww== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] + + "@rolldown/binding-freebsd-x64@1.0.0-rc.12": + resolution: + { integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-rc.4': - resolution: {integrity: sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-freebsd-x64@1.0.2": + resolution: + { integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.2': - resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-freebsd-x64@1.0.3": + resolution: + { integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': - resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-freebsd-x64@1.1.1": + resolution: + { integrity: sha512-202K+cpIi1kx/Zn7AtxBi4LTXSY67Aszb2K9rNsuW7FeBeh0nqoNmYLOSZidV0p88VPBzMmTZcHAdPNo3kRYzQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + "@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12": + resolution: + { integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@rolldown/binding-linux-arm-gnueabihf@1.0.2": + resolution: + { integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4': - resolution: {integrity: sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm-gnueabihf@1.0.3": + resolution: + { integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm-gnueabihf@1.1.1": + resolution: + { integrity: sha512-wl9NfeXNUwrXtUc063tddmZFUI6qiNs1CNOwni0OL4vC7MqVSYugra3ZgtDmtVy8e0DluJTENmzIv2BwqLzT4Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12": + resolution: + { integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-arm64-gnu@1.0.2": + resolution: + { integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': - resolution: {integrity: sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-gnu@1.0.3": + resolution: + { integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.2': - resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-gnu@1.1.1": + resolution: + { integrity: sha512-at2EO4o7D/PJLC4Xik16bU4CcjQE2tSv1LfqMA0TRYQYQihRm3gZeDB8xaX28A9SFedibcAk5DeMCKt4REKG0A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-musl@1.0.0-rc.12": + resolution: + { integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': - resolution: {integrity: sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-musl@1.0.2": + resolution: + { integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.2': - resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-musl@1.0.3": + resolution: + { integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-arm64-musl@1.1.1": + resolution: + { integrity: sha512-5PUjZx366h9tkJTPJF5eibxOlK3sGoeRiBJLLjjEB5/kLDuhr6qB3LkhqLz1smXNgsX+pBhnbcJBrPE30HznAA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12": + resolution: + { integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-ppc64-gnu@1.0.2": + resolution: + { integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-ppc64-gnu@1.0.3": + resolution: + { integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-ppc64-gnu@1.1.1": + resolution: + { integrity: sha512-1WK84XPeio3tjP1sM/TMXiC0G1i1iq1qGZ71KfNQjEFLU1kwD+Cv5T8nGySg/JUFwLbaScu6ve9DmeXlmqpkFA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12": + resolution: + { integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-s390x-gnu@1.0.2": + resolution: + { integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-s390x-gnu@1.0.3": + resolution: + { integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.2': - resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-s390x-gnu@1.1.1": + resolution: + { integrity: sha512-1nS1X5z1uMJ369RU25hTpKCFvUwXZp12dIzlzk4S+UxCTcSVGsAE6tzkOSufv/7jnmAtK0ZlrsJxh2fGmsnVSw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-gnu@1.0.0-rc.12": + resolution: + { integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-x64-gnu@1.0.2": + resolution: + { integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': - resolution: {integrity: sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-gnu@1.0.3": + resolution: + { integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.2': - resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-gnu@1.1.1": + resolution: + { integrity: sha512-NwX/wspnq4vYyMFsqbYvzums3ki/Tk8FZbMzMAovPDp3OfLeYKby/D+9osokadXuYEV3OvpeHlwnr/bG8QMixA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-musl@1.0.0-rc.12": + resolution: + { integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [musl] + + "@rolldown/binding-linux-x64-musl@1.0.2": + resolution: + { integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': - resolution: {integrity: sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-musl@1.0.3": + resolution: + { integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.2': - resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-linux-x64-musl@1.1.1": + resolution: + { integrity: sha512-+n46LhDrJFQM+229y4oXtVpj1G50U/+XuHMlpnisFTEXhrg9f/YIjp/HymX+PVJjBEr7XHRs3CFLelV464pqwA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-openharmony-arm64@1.0.0-rc.12": + resolution: + { integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': - resolution: {integrity: sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-openharmony-arm64@1.0.2": + resolution: + { integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.2': - resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-openharmony-arm64@1.0.3": + resolution: + { integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': - resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} - engines: {node: '>=14.0.0'} + "@rolldown/binding-openharmony-arm64@1.1.1": + resolution: + { integrity: sha512-qGwEu47zOWYo7LdRHhCWTNhzwGtxXpdY6CERs8QEOqC0PXGGics/e3vHnyEUKt8xK6YkbZXFUCeklrpB6js8ag== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + "@rolldown/binding-wasm32-wasi@1.0.0-rc.12": + resolution: + { integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg== } + engines: { node: ">=14.0.0" } + cpu: [wasm32] + + "@rolldown/binding-wasm32-wasi@1.0.2": + resolution: + { integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.4': - resolution: {integrity: sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==} - engines: {node: '>=14.0.0'} + "@rolldown/binding-wasm32-wasi@1.0.3": + resolution: + { integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.2': - resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-wasm32-wasi@1.1.1": + resolution: + { integrity: sha512-qczfgEH8u0wHGGOXtA7UMAybNKuQjjEXairyQaw4WzjiMztfbgatG1h4OKays/smhtwbWltpKCRGtVhU6h40Sg== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12": + resolution: + { integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4': - resolution: {integrity: sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-arm64-msvc@1.0.2": + resolution: + { integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.2': - resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-arm64-msvc@1.0.3": + resolution: + { integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-arm64-msvc@1.1.1": + resolution: + { integrity: sha512-4psXSh63mSbwJF+mB8/9yfUUEzBiHYcUjxa32EO9ZwKy0Ypwjcg4F10D8SvVXgd+isy2UUUjF9HJJnDu1T/4Gg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + "@rolldown/binding-win32-x64-msvc@1.0.0-rc.12": + resolution: + { integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.4': - resolution: {integrity: sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-x64-msvc@1.0.2": + resolution: + { integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.2': - resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} - engines: {node: ^20.19.0 || >=22.12.0} + "@rolldown/binding-win32-x64-msvc@1.0.3": + resolution: + { integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA== } + engines: { node: ^20.19.0 || >=22.12.0 } cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.15': - resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + "@rolldown/binding-win32-x64-msvc@1.1.1": + resolution: + { integrity: sha512-MUvC/HLXVjzkQkWiExdVTEEWf0py+GfWm8WKSZsekG3ih6a21iy0BHPF07X3JIf3ifoklZXTIaHTLPBgH1C3dw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] - '@rolldown/pluginutils@1.0.0-rc.4': - resolution: {integrity: sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==} + "@rolldown/pluginutils@1.0.0-rc.12": + resolution: + { integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw== } - '@rolldown/pluginutils@1.0.1': - resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + "@rolldown/pluginutils@1.0.1": + resolution: + { integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw== } - '@rollup/plugin-alias@6.0.0': - resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} - engines: {node: '>=20.19.0'} + "@rollup/plugin-alias@6.0.0": + resolution: + { integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g== } + engines: { node: ">=20.19.0" } peerDependencies: - rollup: '>=4.0.0' + rollup: ">=4.0.0" peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-babel@5.3.1': - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} + "@rollup/plugin-babel@5.3.1": + resolution: + { integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== } + engines: { node: ">= 10.0.0" } peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 rollup: ^1.20.0||^2.0.0 peerDependenciesMeta: - '@types/babel__core': + "@types/babel__core": optional: true - '@rollup/plugin-babel@6.1.0': - resolution: {integrity: sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-babel@6.1.0": + resolution: + { integrity: sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA== } + engines: { node: ">=14.0.0" } peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - '@types/babel__core': + "@types/babel__core": optional: true rollup: optional: true - '@rollup/plugin-babel@7.0.0': - resolution: {integrity: sha512-NS2+P7v80N3MQqehZEjgpaFb9UyX3URNMW/zvoECKGo4PY4DvJfQusTI7BX/Ks+CPvtTfk3TqcR6S9VYBi/C+A==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-babel@7.1.0": + resolution: + { integrity: sha512-h9Y+xYha6p4wKO+FwdiPIkE+eIYCm8MzZPpX1iARIoFBnmKP9CnpT1p9dDf/DTFm6fyN8PmuLyRI5qZgchnitw== } + engines: { node: ">=14.0.0" } peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - '@types/babel__core': + "@types/babel__core": optional: true rollup: optional: true - '@rollup/plugin-commonjs@28.0.9': - resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} + "@rollup/plugin-commonjs@28.0.9": + resolution: + { integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA== } + engines: { node: ">=16.0.0 || 14 >= 14.17" } peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-commonjs@29.0.2': - resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} + "@rollup/plugin-commonjs@29.0.3": + resolution: + { integrity: sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg== } + engines: { node: ">=16.0.0 || 14 >= 14.17" } peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-inject@5.0.5": + resolution: + { integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-json@6.1.0": + resolution: + { integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-node-resolve@11.2.1': - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} + "@rollup/plugin-node-resolve@11.2.1": + resolution: + { integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== } + engines: { node: ">= 10.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0 - '@rollup/plugin-node-resolve@13.3.0': - resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^2.42.0 - - '@rollup/plugin-node-resolve@15.3.1': - resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-node-resolve@15.3.1": + resolution: + { integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-node-resolve@16.0.3': - resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-node-resolve@16.0.3": + resolution: + { integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-node-resolve@6.1.0': - resolution: {integrity: sha512-Cv7PDIvxdE40SWilY5WgZpqfIUEaDxFxs89zCAHjqyRwlTSuql4M5hjIuc5QYJkOH0/vyiyNXKD72O+LhRipGA==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0 - - '@rollup/plugin-node-resolve@7.1.3': - resolution: {integrity: sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==} - engines: {node: '>= 8.0.0'} + "@rollup/plugin-node-resolve@7.1.3": + resolution: + { integrity: sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== } + engines: { node: ">= 8.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0 - '@rollup/plugin-replace@2.4.2': - resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + "@rollup/plugin-replace@2.4.2": + resolution: + { integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== } peerDependencies: rollup: ^1.20.0 || ^2.0.0 - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@6.0.3': - resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-replace@6.0.3": + resolution: + { integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-terser@1.0.0": + resolution: + { integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ== } + engines: { node: ">=20.0.0" } peerDependencies: rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-terser@1.0.0': - resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} - engines: {node: '>=20.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-typescript@11.1.6': - resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-typescript@12.3.0": + resolution: + { integrity: sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' + tslib: "*" + typescript: ">=3.7.0" peerDependenciesMeta: rollup: optional: true tslib: optional: true - '@rollup/plugin-typescript@12.3.0': - resolution: {integrity: sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true - - '@rollup/pluginutils@3.1.0': - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} + "@rollup/pluginutils@3.1.0": + resolution: + { integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== } + engines: { node: ">= 8.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0 - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + "@rollup/pluginutils@4.2.1": + resolution: + { integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== } + engines: { node: ">= 8.0.0" } - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} + "@rollup/pluginutils@5.4.0": + resolution: + { integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg== } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.4': - resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==} + "@rollup/rollup-android-arm-eabi@4.60.2": + resolution: + { integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw== } + cpu: [arm] + os: [android] + + "@rollup/rollup-android-arm-eabi@4.62.0": + resolution: + { integrity: sha512-IPIQ55ythEHkfEd9jMEi32OQ7SxURsGA43JI22lj01OLZNt2NUbJX8YUHxkVWyQ6daHPNn0truF5nSj3DQp6YQ== } cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.4': - resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==} + "@rollup/rollup-android-arm64@4.60.2": + resolution: + { integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg== } cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.9': - resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} + "@rollup/rollup-android-arm64@4.62.0": + resolution: + { integrity: sha512-M6s9cr10MibETyo8JsOkq+Lo1+lU6hcvb1MApnUql5qte/5hMEgzlN8/ReIKNfRV8rrqX50W1BX9zoUhC192RA== } + cpu: [arm64] + os: [android] + + "@rollup/rollup-darwin-arm64@4.44.0": + resolution: + { integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA== } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.44.0': - resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} + "@rollup/rollup-darwin-arm64@4.60.2": + resolution: + { integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA== } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.60.4': - resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==} + "@rollup/rollup-darwin-arm64@4.62.0": + resolution: + { integrity: sha512-BqCoMoIbn0keKys+dEAdBa70EtOwV1bEsQCUgU9FdiZmmMge/Zk7LlkYGqbrdHR+Frnt0E1FOanly+rlwvvQzw== } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.9': - resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} + "@rollup/rollup-darwin-x64@4.44.0": + resolution: + { integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ== } cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.44.0': - resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} + "@rollup/rollup-darwin-x64@4.60.2": + resolution: + { integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g== } cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.4': - resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==} + "@rollup/rollup-darwin-x64@4.62.0": + resolution: + { integrity: sha512-SIMzST3VFNXDAbeIWDWiFCNM5qncUBDWaEV7NfE7oZbDt2mgfW4MvbKdbYiGOLoM32gbTv608UMd0XktEYSD7w== } cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.4': - resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==} + "@rollup/rollup-freebsd-arm64@4.60.2": + resolution: + { integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw== } cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.4': - resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==} + "@rollup/rollup-freebsd-arm64@4.62.0": + resolution: + { integrity: sha512-ezjfSQMP7ArdUsbBwbQIfwAlhE84I2iVnzQNCFSveqV42q+BmKlzVpf7mxv5EchLcoWU4y6/heFzVg1F+hodUQ== } + cpu: [arm64] + os: [freebsd] + + "@rollup/rollup-freebsd-x64@4.60.2": + resolution: + { integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ== } + cpu: [x64] + os: [freebsd] + + "@rollup/rollup-freebsd-x64@4.62.0": + resolution: + { integrity: sha512-9+qTWGW9AZRhnUgwtTwzNwcPlL87ngkeN0LA+q1bADvmY9aNvWaF2TFW8BZgnQPYxpDI7+rMVLivcd4V737TAQ== } cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.4': - resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} + "@rollup/rollup-linux-arm-gnueabihf@4.60.2": + resolution: + { integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg== } cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.4': - resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} + "@rollup/rollup-linux-arm-gnueabihf@4.62.0": + resolution: + { integrity: sha512-T1dMEQhXA/jkJ/jyMIw9IovK8bSUq7A8kLIlvZTb/6YIVsp2zLavr4F3oyllHWo7eIVJRyE5n3tUjQJEbE1IuQ== } + cpu: [arm] + os: [linux] + libc: [glibc] + + "@rollup/rollup-linux-arm-musleabihf@4.60.2": + resolution: + { integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw== } cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.34.9': - resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} + "@rollup/rollup-linux-arm-musleabihf@4.62.0": + resolution: + { integrity: sha512-2as0LgT7qQpyceQq6VUJYnumUMUrgGQCWIiDIN9DE0/tglsk6o66uCB4f3djRawAltvfCNLyZZrsqbPA6inCsA== } + cpu: [arm] + os: [linux] + libc: [musl] + + "@rollup/rollup-linux-arm64-gnu@4.44.0": + resolution: + { integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ== } cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-gnu@4.44.0': - resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} + "@rollup/rollup-linux-arm64-gnu@4.60.2": + resolution: + { integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg== } cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-gnu@4.60.4': - resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} + "@rollup/rollup-linux-arm64-gnu@4.62.0": + resolution: + { integrity: sha512-bVURMg+6eNN9C/yc0aVjooZcwTTtYF4YW3xta5pP0//r3o1V8gXEHXWCndj47w/HhwsFroZrFhR+6uQP5T0n0g== } cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.34.9': - resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} + "@rollup/rollup-linux-arm64-musl@4.44.0": + resolution: + { integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q== } cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-musl@4.44.0': - resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} + "@rollup/rollup-linux-arm64-musl@4.60.2": + resolution: + { integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA== } cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-musl@4.60.4': - resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} + "@rollup/rollup-linux-arm64-musl@4.62.0": + resolution: + { integrity: sha512-Ful8pM/2yYI83PViWdFdpZhdI8HJ5qsXANe5atypbHDf+KIBBDsZsbyy8hbXnULVvW9NsTh5DHwbcBftyLTfiw== } cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.4': - resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} + "@rollup/rollup-linux-loong64-gnu@4.60.2": + resolution: + { integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A== } + cpu: [loong64] + os: [linux] + libc: [glibc] + + "@rollup/rollup-linux-loong64-gnu@4.62.0": + resolution: + { integrity: sha512-9Gp/DgrkzfUBmNPVTyPTvay+4xEP7M/clXpj3efXBcm6uTIVIgDg4rqUpqKXvLEuFRVuEpSAOkhgNeecvaZ4Cg== } cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.4': - resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} + "@rollup/rollup-linux-loong64-musl@4.60.2": + resolution: + { integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q== } cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.4': - resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} + "@rollup/rollup-linux-loong64-musl@4.62.0": + resolution: + { integrity: sha512-m9tsJz54LUXkSYM8+8PG81B9IKK5r+2T0clMq4QrS16xFosufU7firBDAZEsDheDs7wTlP7h3++S7lMsU955HA== } + cpu: [loong64] + os: [linux] + libc: [musl] + + "@rollup/rollup-linux-ppc64-gnu@4.60.2": + resolution: + { integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw== } cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.4': - resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} + "@rollup/rollup-linux-ppc64-gnu@4.62.0": + resolution: + { integrity: sha512-3UvJ5PNVU16aJf6M3tFI24pWzAl2/ynfbyRN3ICyQajK1lSkrnVYNnLz3v04J32qKa0FczJc22zeToc0lr2A3w== } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@rollup/rollup-linux-ppc64-musl@4.60.2": + resolution: + { integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ== } cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.4': - resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} + "@rollup/rollup-linux-ppc64-musl@4.62.0": + resolution: + { integrity: sha512-vRWUAbYLGHBZS6Q8Msb2sfnf1fvJf+47t8l/TwOerM2qArzy+IeNMTHrYLHXh95h8MoatPHI5hhSZNs+mGXKPg== } + cpu: [ppc64] + os: [linux] + libc: [musl] + + "@rollup/rollup-linux-riscv64-gnu@4.60.2": + resolution: + { integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A== } + cpu: [riscv64] + os: [linux] + libc: [glibc] + + "@rollup/rollup-linux-riscv64-gnu@4.62.0": + resolution: + { integrity: sha512-c00T5SYENHAt86cfW47URaP3Us5vLC/4QO7GYud1G5VNRffCwwCuBspwqYrriuJB+5m0WFzClCn9wed0FBjKvg== } cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.4': - resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} + "@rollup/rollup-linux-riscv64-musl@4.60.2": + resolution: + { integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ== } + cpu: [riscv64] + os: [linux] + libc: [musl] + + "@rollup/rollup-linux-riscv64-musl@4.62.0": + resolution: + { integrity: sha512-krrCDilhXOwFkSkO3Wm9I/f9H0L92XHHwy2fwxjukxIbh0dem8gZqOW5Y8BsHrpJv5qwlRBV+Wl4ZFyRWhUpwg== } cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.4': - resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} + "@rollup/rollup-linux-s390x-gnu@4.60.2": + resolution: + { integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA== } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@rollup/rollup-linux-s390x-gnu@4.62.0": + resolution: + { integrity: sha512-7pfYFSTc4/rUC/FtAI0Qp6QthDBCIi6/AuP1xYqFk5vanI6KnL5dWKP60OM/05LOsbwTmIcvr6eXC4CJuJ75IA== } cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.34.9': - resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} + "@rollup/rollup-linux-x64-gnu@4.44.0": + resolution: + { integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw== } cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.44.0': - resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} + "@rollup/rollup-linux-x64-gnu@4.60.2": + resolution: + { integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ== } cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.4': - resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} + "@rollup/rollup-linux-x64-gnu@4.62.0": + resolution: + { integrity: sha512-7SDIalKeIpG0Ifogbbdn58HmSotYMlf23K3dCJEmiVd9Fg36Vmni82iPQec27N3wY4Bvbxftkxz6vSx9OcouTg== } cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.34.9': - resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} + "@rollup/rollup-linux-x64-musl@4.44.0": + resolution: + { integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA== } cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-linux-x64-musl@4.44.0': - resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} + "@rollup/rollup-linux-x64-musl@4.60.2": + resolution: + { integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw== } cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-linux-x64-musl@4.60.4': - resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} + "@rollup/rollup-linux-x64-musl@4.62.0": + resolution: + { integrity: sha512-eRZevouTH2i1HeAVLqJuLnt256krQkGY0TN6WsTmsIhuzbh457HuWDMakKwmi0Cjadux983CoSr8Lim2QhUIFw== } cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.4': - resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} + "@rollup/rollup-openbsd-x64@4.60.2": + resolution: + { integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg== } cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.4': - resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==} + "@rollup/rollup-openbsd-x64@4.62.0": + resolution: + { integrity: sha512-3oVS7FLGa4U1qcvao9ylGxrjXZyUQqR8UwxEcnUEyPX53O/C/mKDZegNXTdHCP+h3e6ta/f1EN38Yif1mmZHYg== } + cpu: [x64] + os: [openbsd] + + "@rollup/rollup-openharmony-arm64@4.60.2": + resolution: + { integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q== } cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.34.9': - resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} + "@rollup/rollup-openharmony-arm64@4.62.0": + resolution: + { integrity: sha512-yTB9TgfWj5wHe5QgktAgXTLLot1gvEjl1NiPPAUiCs4oPrIWFl5V4nC3GrkNdj9LaAU4s94nVrGbGOCqUpyWsg== } + cpu: [arm64] + os: [openharmony] + + "@rollup/rollup-win32-arm64-msvc@4.44.0": + resolution: + { integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w== } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.44.0': - resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} + "@rollup/rollup-win32-arm64-msvc@4.60.2": + resolution: + { integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ== } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.60.4': - resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==} + "@rollup/rollup-win32-arm64-msvc@4.62.0": + resolution: + { integrity: sha512-5LOhoaesY3doG1c+ac/2JtgREpKoJr5bUHH8tKY0V8di7+uSV6BwLs2PlR0/yzefGOkR+wE7ZolZphHCsyG5Rw== } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.4': - resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==} + "@rollup/rollup-win32-ia32-msvc@4.60.2": + resolution: + { integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg== } + cpu: [ia32] + os: [win32] + + "@rollup/rollup-win32-ia32-msvc@4.62.0": + resolution: + { integrity: sha512-yYkWHhmbhRTWTnWos5HC4GcPQfjlzzCNbM9e/+GXrLuaBXYA3qSDR9f0Vgufd5S8yX81U8jPKp7ZnAjZFMtRnw== } cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.4': - resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==} + "@rollup/rollup-win32-x64-gnu@4.60.2": + resolution: + { integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA== } cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.9': - resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} + "@rollup/rollup-win32-x64-gnu@4.62.0": + resolution: + { integrity: sha512-SoTb6lPg25xZlA2ibwQ++ahCCnH+FP0qmEuafMJ4gznZKOlXioKEAeJLgCrqjM98ACziXM9V1amFjICVL4IFoA== } cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.44.0': - resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} + "@rollup/rollup-win32-x64-msvc@4.44.0": + resolution: + { integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ== } cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.4': - resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==} + "@rollup/rollup-win32-x64-msvc@4.60.2": + resolution: + { integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA== } cpu: [x64] os: [win32] - '@rollup/wasm-node@4.60.4': - resolution: {integrity: sha512-j6qaRjdDujJ5utX5l6+8eiWlvMLmBfPMBht8mHP2au3xuzf+4deu6PuCquH5GvDIvIOsWHZhA1UVz/s0FvvgAA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + "@rollup/rollup-win32-x64-msvc@4.62.0": + resolution: + { integrity: sha512-5L+T1fMX4RIEBoZzT0+sQ0PhTS36NULFmMXtl1TZo44TMAROIMHbZufSOjVWt/Y622BtxgxtaNOokbTDvfsrZA== } + cpu: [x64] + os: [win32] + + "@rollup/wasm-node@4.62.0": + resolution: + { integrity: sha512-TW5f2b5d8Y1DwilaxaXhPkYI1a+i1Am2+eDEf6Tu/QrPxt6kdh/4HT6y460MmzE1im71rudvEs5zLLFr7qBAtQ== } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + "@rtsao/scc@1.1.0": + resolution: + { integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== } - '@rushstack/eslint-patch@1.16.1': - resolution: {integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==} + "@rushstack/eslint-patch@1.16.1": + resolution: + { integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag== } - '@samverschueren/stream-to-observable@0.3.1': - resolution: {integrity: sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==} - engines: {node: '>=6'} + "@samverschueren/stream-to-observable@0.3.1": + resolution: + { integrity: sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== } + engines: { node: ">=6" } peerDependencies: - rxjs: '*' - zen-observable: '*' + rxjs: "*" + zen-observable: "*" peerDependenciesMeta: rxjs: optional: true zen-observable: optional: true - '@schematics/angular@20.3.26': - resolution: {integrity: sha512-7XgzAwsOu/cuyt+97uGGRMkROnP/zo0V48uX2//kccZFCrOxlfU4l5/08sC9kIQ2nYdvrTZrOzUv2R6ZOXSqKg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@schematics/angular@21.2.12': - resolution: {integrity: sha512-eHoAbxd6Kdw9YIQeZO/6lBXTmKKi10t4WTujY8CM5v4qv1zoJu9yiwVeQp9y3e7/Sybz5Ec3m4FmQ0Tw8iVDiA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@sec-ant/readable-stream@0.4.1': - resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - - '@sec-ant/readable-stream@0.7.0': - resolution: {integrity: sha512-eeflyrQR+jQaliaTcC2R+EG+JkPZpCHbpTN8w0K5LhhXzrI0XmES9CPt6uF4u/Gc4PUafaBzq4dj5WLvQ/YnsA==} - - '@sentry/core@9.47.1': - resolution: {integrity: sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==} - engines: {node: '>=18'} - - '@sentry/node-core@9.47.1': - resolution: {integrity: sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ==} - engines: {node: '>=18'} - peerDependencies: - '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 - '@opentelemetry/core': ^1.30.1 || ^2.0.0 - '@opentelemetry/instrumentation': '>=0.57.1 <1' - '@opentelemetry/resources': ^1.30.1 || ^2.0.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 - '@opentelemetry/semantic-conventions': ^1.34.0 - - '@sentry/node@9.47.1': - resolution: {integrity: sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ==} - engines: {node: '>=18'} - - '@sentry/opentelemetry@9.47.1': - resolution: {integrity: sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw==} - engines: {node: '>=18'} - peerDependencies: - '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 - '@opentelemetry/core': ^1.30.1 || ^2.0.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 - '@opentelemetry/semantic-conventions': ^1.34.0 - - '@shikijs/core@2.5.0': - resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} - - '@shikijs/core@4.1.0': - resolution: {integrity: sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==} - engines: {node: '>=20'} - - '@shikijs/engine-javascript@2.5.0': - resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} - - '@shikijs/engine-javascript@4.1.0': - resolution: {integrity: sha512-YquhawCUgaBfhsS72e2Y/dI59gCBNPHu3fEO/tvLaXrTssxZrY5ddjtNLTwndrMgPo8b3IscE+xoICDzpTmlFQ==} - engines: {node: '>=20'} - - '@shikijs/engine-oniguruma@2.5.0': - resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} - - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - - '@shikijs/engine-oniguruma@4.1.0': - resolution: {integrity: sha512-axLpjVs45YBvvINa+dJF+NPW+KtFkNXsFr4SDw2BMj9GdeMnGxVB9PQb2xXlJYovslt/nz6giedAyOANkfc7hg==} - engines: {node: '>=20'} - - '@shikijs/langs@2.5.0': - resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} - - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - - '@shikijs/langs@4.1.0': - resolution: {integrity: sha512-nwOMruEkbgdZfQ/b8CgpNBVOpvG1k0N5tbmgiFeqsan401+x3ILqlzZJowSla4Agmq4hG2Uf2wh5jLTEhR8VSg==} - engines: {node: '>=20'} - - '@shikijs/primitive@4.1.0': - resolution: {integrity: sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==} - engines: {node: '>=20'} - - '@shikijs/themes@2.5.0': - resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} - - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - - '@shikijs/themes@4.1.0': - resolution: {integrity: sha512-emCcTnUM7yO2wltYbaxm+yLvcCI4+h8XBKc4KmJ7EZUXoSGjcCHifkI//R4OFit9ewpg7H2/9tjOuXrT2v/Knw==} - engines: {node: '>=20'} - - '@shikijs/transformers@2.5.0': - resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} - - '@shikijs/types@2.5.0': - resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} - - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - - '@shikijs/types@4.1.0': - resolution: {integrity: sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==} - engines: {node: '>=20'} - - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sigstore/bundle@1.1.0': - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/bundle@4.0.0': - resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/core@3.2.1': - resolution: {integrity: sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/protobuf-specs@0.5.1': - resolution: {integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@sigstore/sign@1.0.0': - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/sign@4.1.1': - resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/tuf@1.0.3': - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/tuf@4.0.2': - resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/verify@3.1.1': - resolution: {integrity: sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@simple-dom/document@1.4.0': - resolution: {integrity: sha512-/RUeVH4kuD3rzo5/91+h4Z1meLSLP66eXqpVAw/4aZmYozkeqUkMprq0znL4psX/adEed5cBgiNJcfMz/eKZLg==} - - '@simple-dom/interface@1.4.0': - resolution: {integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==} - - '@simple-git/args-pathspec@1.0.3': - resolution: {integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==} - - '@simple-git/argv-parser@1.1.1': - resolution: {integrity: sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==} - - '@simple-libs/child-process-utils@1.0.2': - resolution: {integrity: sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw==} - engines: {node: '>=18'} - - '@simple-libs/stream-utils@1.2.0': - resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} - engines: {node: '>=18'} - - '@sinclair/typebox@0.27.10': - resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} - - '@sinclair/typebox@0.34.49': - resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} - - '@sindresorhus/base62@1.0.0': - resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} - engines: {node: '>=18'} - - '@sindresorhus/is@0.14.0': - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} - engines: {node: '>=18'} - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - - '@sindresorhus/merge-streams@4.0.0': - resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} - engines: {node: '>=18'} - - '@sindresorhus/slugify@1.1.2': - resolution: {integrity: sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==} - engines: {node: '>=10'} - - '@sindresorhus/transliterate@0.1.2': - resolution: {integrity: sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==} - engines: {node: '>=10'} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@sinonjs/fake-timers@15.4.0': - resolution: {integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==} - - '@sinonjs/samsam@10.0.2': - resolution: {integrity: sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==} - - '@so-ric/colorspace@1.1.6': - resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} - - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - - '@soda/friendly-errors-webpack-plugin@1.8.1': - resolution: {integrity: sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==} - engines: {node: '>=8.0.0'} + "@schematics/angular@20.3.28": + resolution: + { integrity: sha512-E9IwxeIHprqOtkxwvzY/OJa4DMvb+z0gPDAGDzAEoscj2qLETi9kmj/p0c/MDtHa5oyeb0GaRxifAkNOLtS/nA== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } + + "@schematics/angular@22.0.1": + resolution: + { integrity: sha512-JRtJ9x0CaYIBLdPERr7B66ZSSLy4phkb7KtFIcD8RC2nAmnL/elevL2wg2Miih7ww0zmhiblS3LDE/abqSLRAA== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } + + "@sec-ant/readable-stream@0.4.1": + resolution: + { integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== } + + "@sec-ant/readable-stream@0.7.0": + resolution: + { integrity: sha512-eeflyrQR+jQaliaTcC2R+EG+JkPZpCHbpTN8w0K5LhhXzrI0XmES9CPt6uF4u/Gc4PUafaBzq4dj5WLvQ/YnsA== } + + "@sentry/core@9.47.1": + resolution: + { integrity: sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw== } + engines: { node: ">=18" } + + "@sentry/node-core@9.47.1": + resolution: + { integrity: sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ== } + engines: { node: ">=18" } + peerDependencies: + "@opentelemetry/api": ^1.9.0 + "@opentelemetry/context-async-hooks": ^1.30.1 || ^2.0.0 + "@opentelemetry/core": ^1.30.1 || ^2.0.0 + "@opentelemetry/instrumentation": ">=0.57.1 <1" + "@opentelemetry/resources": ^1.30.1 || ^2.0.0 + "@opentelemetry/sdk-trace-base": ^1.30.1 || ^2.0.0 + "@opentelemetry/semantic-conventions": ^1.34.0 + + "@sentry/node@9.47.1": + resolution: + { integrity: sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ== } + engines: { node: ">=18" } + + "@sentry/opentelemetry@9.47.1": + resolution: + { integrity: sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw== } + engines: { node: ">=18" } + peerDependencies: + "@opentelemetry/api": ^1.9.0 + "@opentelemetry/context-async-hooks": ^1.30.1 || ^2.0.0 + "@opentelemetry/core": ^1.30.1 || ^2.0.0 + "@opentelemetry/sdk-trace-base": ^1.30.1 || ^2.0.0 + "@opentelemetry/semantic-conventions": ^1.34.0 + + "@shikijs/core@2.5.0": + resolution: + { integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg== } + + "@shikijs/core@4.2.0": + resolution: + { integrity: sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ== } + engines: { node: ">=20" } + + "@shikijs/engine-javascript@2.5.0": + resolution: + { integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w== } + + "@shikijs/engine-javascript@4.2.0": + resolution: + { integrity: sha512-fjETeq1k5ffyXqRgS6+3hpvqseLalp1kjNfRbXpUgWR8FpZ1CmQfiNHovc5lncYjt/Vg5JK/WJEmLahjwMa0og== } + engines: { node: ">=20" } + + "@shikijs/engine-oniguruma@2.5.0": + resolution: + { integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw== } + + "@shikijs/engine-oniguruma@3.23.0": + resolution: + { integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g== } + + "@shikijs/engine-oniguruma@4.2.0": + resolution: + { integrity: sha512-hTorK1dffPkpbMUk6Z+828PgRo7d07HbnizoP0hNPFjhxMHctj0Px/qoHeGMYafc6ju+u9iMldN4JbVzNQM++g== } + engines: { node: ">=20" } + + "@shikijs/langs@2.5.0": + resolution: + { integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w== } + + "@shikijs/langs@3.23.0": + resolution: + { integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg== } + + "@shikijs/langs@4.2.0": + resolution: + { integrity: sha512-bwrVRlJ0wUhZxAbVdvBbv2TTC9yLsh4C/IO5Ofz0T8MQntgDvyVnkbjw9vi50r1kx7RCIJdnJnjZAwmAsXFLZQ== } + engines: { node: ">=20" } + + "@shikijs/primitive@4.2.0": + resolution: + { integrity: sha512-NOq+DtUkVBJtZMVXL5A0vI0Xk8nvDYaXetFHSJFlOqjDZIVhIPRYFdGkSoElDqNuegikcc3A76SNUa8dTqtAYA== } + engines: { node: ">=20" } + + "@shikijs/themes@2.5.0": + resolution: + { integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw== } + + "@shikijs/themes@3.23.0": + resolution: + { integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA== } + + "@shikijs/themes@4.2.0": + resolution: + { integrity: sha512-RX8IHYeLv8Cu2W6ruc3RxUqWn0IYCqSrMBzi/uRGAmfyDNOnNO5BF/Px7o97n4XTpmFTo5GbRaazuOWj+2ak2w== } + engines: { node: ">=20" } + + "@shikijs/transformers@2.5.0": + resolution: + { integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg== } + + "@shikijs/types@2.5.0": + resolution: + { integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw== } + + "@shikijs/types@3.23.0": + resolution: + { integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ== } + + "@shikijs/types@4.2.0": + resolution: + { integrity: sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw== } + engines: { node: ">=20" } + + "@shikijs/vscode-textmate@10.0.2": + resolution: + { integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== } + + "@sideway/address@4.1.5": + resolution: + { integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== } + + "@sideway/formula@3.0.1": + resolution: + { integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== } + + "@sideway/pinpoint@2.0.0": + resolution: + { integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== } + + "@sigstore/bundle@1.1.0": + resolution: + { integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@sigstore/bundle@4.0.0": + resolution: + { integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@sigstore/core@3.2.1": + resolution: + { integrity: sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@sigstore/protobuf-specs@0.2.1": + resolution: + { integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@sigstore/protobuf-specs@0.5.1": + resolution: + { integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g== } + engines: { node: ^18.17.0 || >=20.5.0 } + + "@sigstore/sign@1.0.0": + resolution: + { integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@sigstore/sign@4.1.1": + resolution: + { integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@sigstore/tuf@1.0.3": + resolution: + { integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + "@sigstore/tuf@4.0.2": + resolution: + { integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@sigstore/verify@3.1.1": + resolution: + { integrity: sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA== } + engines: { node: ^20.17.0 || >=22.9.0 } + + "@simple-dom/document@1.4.0": + resolution: + { integrity: sha512-/RUeVH4kuD3rzo5/91+h4Z1meLSLP66eXqpVAw/4aZmYozkeqUkMprq0znL4psX/adEed5cBgiNJcfMz/eKZLg== } + + "@simple-dom/interface@1.4.0": + resolution: + { integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA== } + + "@simple-git/args-pathspec@1.0.3": + resolution: + { integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA== } + + "@simple-git/argv-parser@1.1.1": + resolution: + { integrity: sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw== } + + "@simple-libs/child-process-utils@1.0.2": + resolution: + { integrity: sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw== } + engines: { node: ">=18" } + + "@simple-libs/stream-utils@1.2.0": + resolution: + { integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA== } + engines: { node: ">=18" } + + "@sinclair/typebox@0.27.10": + resolution: + { integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA== } + + "@sinclair/typebox@0.34.49": + resolution: + { integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A== } + + "@sindresorhus/base62@1.0.0": + resolution: + { integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA== } + engines: { node: ">=18" } + + "@sindresorhus/is@0.14.0": + resolution: + { integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== } + engines: { node: ">=6" } + + "@sindresorhus/is@7.2.0": + resolution: + { integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw== } + engines: { node: ">=18" } + + "@sindresorhus/merge-streams@2.3.0": + resolution: + { integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== } + engines: { node: ">=18" } + + "@sindresorhus/merge-streams@4.0.0": + resolution: + { integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== } + engines: { node: ">=18" } + + "@sindresorhus/slugify@2.2.1": + resolution: + { integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw== } + engines: { node: ">=12" } + + "@sindresorhus/transliterate@1.6.0": + resolution: + { integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ== } + engines: { node: ">=12" } + + "@sinonjs/commons@3.0.1": + resolution: + { integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== } + + "@sinonjs/fake-timers@10.3.0": + resolution: + { integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== } + + "@sinonjs/fake-timers@15.4.0": + resolution: + { integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA== } + + "@sinonjs/samsam@10.0.2": + resolution: + { integrity: sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A== } + + "@so-ric/colorspace@1.1.6": + resolution: + { integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw== } + + "@socket.io/component-emitter@3.1.2": + resolution: + { integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== } + + "@soda/friendly-errors-webpack-plugin@1.8.1": + resolution: + { integrity: sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== } + engines: { node: ">=8.0.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 - '@soda/get-current-script@1.0.2': - resolution: {integrity: sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==} - - '@solid-devtools/debugger@0.23.4': - resolution: {integrity: sha512-EfTB1Eo313wztQYGJ4Ec/wE70Ay2d603VCXfT3RlyqO5QfLrQGRHX5NXC07hJpQTJJJ3tbNgzO7+ZKo76MM5uA==} - peerDependencies: - solid-js: ^1.8.0 - - '@solid-devtools/shared@0.13.2': - resolution: {integrity: sha512-Y4uaC4EfTVwBR537MZwfaY/eiWAh+hW4mbtnwNuUw/LFmitHSkQhNQTUlLQv/S0chtwrYWQBxvXos1dC7e8R9g==} - peerDependencies: - solid-js: ^1.8.0 - - '@solid-primitives/bounds@0.0.118': - resolution: {integrity: sha512-Qj42w8LlnhJ3r/t+t0c0vrdwIvvQMPgjEFGmLiwREaA85ojLbgL9lSBq2tKvljeLCvRVkgj10KEUf+vc99VCIg==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/cursor@0.0.112': - resolution: {integrity: sha512-TAtU7qD7ipSLSXHnq8FhhosAPVX+dnOCb/ITcGcLlj8e/C9YKcxDhgBHJ3R/d1xDRb5/vO/szJtEz6fnQD311Q==} - peerDependencies: - solid-js: ^1.6.12 + "@soda/get-current-script@1.0.2": + resolution: + { integrity: sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== } - '@solid-primitives/event-bus@1.1.3': - resolution: {integrity: sha512-cVW/YIG3iXRBhA/KNPeD89bR2cZkDok1Tl8ZWtYpbu0AfZVFeI7nyZjWbYLaYPXzlZouau2fU/lEuKcInQ6s8g==} + "@solid-devtools/debugger@0.28.1": + resolution: + { integrity: sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg== } peerDependencies: - solid-js: ^1.6.12 + solid-js: ^1.9.0 - '@solid-primitives/event-listener@2.4.5': - resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} + "@solid-devtools/shared@0.20.0": + resolution: + { integrity: sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q== } peerDependencies: - solid-js: ^1.6.12 + solid-js: ^1.9.0 - '@solid-primitives/keyboard@1.3.5': - resolution: {integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==} + "@solid-primitives/bounds@0.1.5": + resolution: + { integrity: sha512-JFym8zijMfWp1FaAmJlH3xMfenCuhjaUsoBn3kt9FtoWwLj+yt+EGYt+p3SkOKwF7h4gaGtZ5PIdSbSNVWkRmg== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/media@2.3.5': - resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==} + "@solid-primitives/event-listener@2.4.5": + resolution: + { integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/platform@0.1.2': - resolution: {integrity: sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg==} + "@solid-primitives/keyboard@1.3.5": + resolution: + { integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/refs@1.1.3': - resolution: {integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==} + "@solid-primitives/media@2.3.5": + resolution: + { integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/resize-observer@2.1.5': - resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} + "@solid-primitives/refs@1.1.3": + resolution: + { integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/rootless@1.5.3': - resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==} + "@solid-primitives/resize-observer@2.1.5": + resolution: + { integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/scheduled@1.5.3': - resolution: {integrity: sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g==} + "@solid-primitives/rootless@1.5.3": + resolution: + { integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.0.5': - resolution: {integrity: sha512-ssQ+s/wrlFAEE4Zw8GV499yBfvWx7SMm+ZVc11wvao4T5xg9VfXCL9Oa+x4h+vPMvSV/Knv5LrsLiUa+wlJUXQ==} + "@solid-primitives/scheduled@1.5.3": + resolution: + { integrity: sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.1.3': - resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} + "@solid-primitives/static-store@0.1.3": + resolution: + { integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/styles@0.0.111': - resolution: {integrity: sha512-1mBxOGAPXmfD5oYCvqjKBDN7SuNjz2qz7RdH7KtsuNLQh6lpuSKadtHnLvru0Y8Vz1InqTJisBIy/6P5kyDmPw==} + "@solid-primitives/styles@0.1.3": + resolution: + { integrity: sha512-7YdA21prMeCX+oOF/1RAn02+cGz/pG4dyPWtHBC2H8aZvnC7IfThBt80mP+TioejrdfE7Lc54Uh18f7Pig+gRQ== } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/utils@6.4.0': - resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} + "@solid-primitives/utils@6.4.0": + resolution: + { integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A== } peerDependencies: solid-js: ^1.6.12 - '@speed-highlight/core@1.2.15': - resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} - - '@sphinxxxx/color-conversion@2.2.2': - resolution: {integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==} + "@speed-highlight/core@1.2.17": + resolution: + { integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg== } - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - - '@stencil/core@4.43.0': - resolution: {integrity: sha512-6Uj2Z3lzLuufYAE7asZ6NLKgSwsB9uxl84Eh34PASnUjfj32GkrP4DtKK7fNeh1WFGGyffsTDka3gwtl+4reUg==} - engines: {node: '>=16.0.0', npm: '>=7.10.0'} - hasBin: true + "@sphinxxxx/color-conversion@2.2.2": + resolution: + { integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw== } - '@stencil/core@4.43.4': - resolution: {integrity: sha512-QWawMM1XIpSz4k+k+VyHZMr2YSxlCNAPWO/jTdJ+2kdgdN7ZQVEFZpc4WBm3E3mrDPTZ79lLcnIPa399bg4XOg==} - engines: {node: '>=16.0.0', npm: '>=7.10.0'} - hasBin: true + "@standard-schema/spec@1.1.0": + resolution: + { integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== } - '@stencil/core@4.43.5': - resolution: {integrity: sha512-cgWD+GeuvJpTe1WQn40p02+BJ2j0j1YJ17GdkF2qKIQ23s2e3Zivq5yISXS3dcuV6oUJFN93jprdk+nk/sq99Q==} - engines: {node: '>=16.0.0', npm: '>=7.10.0'} + "@stencil/core@4.43.5": + resolution: + { integrity: sha512-cgWD+GeuvJpTe1WQn40p02+BJ2j0j1YJ17GdkF2qKIQ23s2e3Zivq5yISXS3dcuV6oUJFN93jprdk+nk/sq99Q== } + engines: { node: ">=16.0.0", npm: ">=7.10.0" } hasBin: true - '@stylistic/eslint-plugin@5.10.0': - resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@stylistic/eslint-plugin@5.10.0": + resolution: + { integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^9.0.0 || ^10.0.0 - '@stylistic/stylelint-plugin@3.1.3': - resolution: {integrity: sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==} - engines: {node: ^18.12 || >=20.9} + "@stylistic/stylelint-plugin@3.1.3": + resolution: + { integrity: sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg== } + engines: { node: ^18.12 || >=20.9 } peerDependencies: stylelint: ^16.8.0 - '@surma/rollup-plugin-off-main-thread@2.2.3': - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + "@surma/rollup-plugin-off-main-thread@2.2.3": + resolution: + { integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== } - '@sveltejs/acorn-typescript@1.0.10': - resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==} + "@sveltejs/acorn-typescript@1.0.10": + resolution: + { integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA== } peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-auto@3.3.1': - resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - - '@sveltejs/adapter-auto@7.0.1': - resolution: {integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==} + "@sveltejs/adapter-auto@7.0.1": + resolution: + { integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ== } peerDependencies: - '@sveltejs/kit': ^2.0.0 + "@sveltejs/kit": ^2.0.0 - '@sveltejs/kit@2.61.1': - resolution: {integrity: sha512-Ny8s1SR1TyQS2hD2Rvw0XKzU2Nw1eUF52dTb6T2bdcgz7wSC+Nyb5IwjWYlR4b2dvbbR5NJDiQwHg3rnNseghg==} - engines: {node: '>=18.13'} + "@sveltejs/kit@2.65.2": + resolution: + { integrity: sha512-ZIkyEmxT1gcq50Opn1ZIIx6vc/yt2zNN0rF5hS6op95gqHtNw8QMKDhjJI+RyjMcbvECRw+FzEeAoBe/MOz9AA== } + engines: { node: ">=18.13" } hasBin: true peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 + "@opentelemetry/api": ^1.0.0 + "@sveltejs/vite-plugin-svelte": ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 svelte: ^4.0.0 || ^5.0.0-next.0 typescript: ^5.3.3 || ^6.0.0 vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 peerDependenciesMeta: - '@opentelemetry/api': + "@opentelemetry/api": optional: true typescript: optional: true - '@sveltejs/package@2.5.7': - resolution: {integrity: sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==} - engines: {node: ^16.14 || >=18} + "@sveltejs/load-config@0.1.1": + resolution: + { integrity: sha512-BXXm+VOH/9X4N7Dd1iZ2MqA1h7M+9i2noI8QYuLDY8QcN2WHYn7D/VK/+IJNfcAmRw7ACNJ538UT9GXIhnBTiA== } + engines: { node: ">= 18.0.0" } + + "@sveltejs/package@2.5.8": + resolution: + { integrity: sha512-zeBbsXYvHiBu56v4gJaGQoEHzg96w0E1j3dOMX8vo56s6vI5eQ57ZEZhudjwjnegnVitRRu5MrmhO0eNvaonIw== } + engines: { node: ^16.14 || >=18 } hasBin: true peerDependencies: svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 - '@sveltejs/vite-plugin-svelte-inspector@2.1.0': - resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@sveltejs/vite-plugin-svelte@3.1.2': - resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@sveltejs/vite-plugin-svelte@7.1.2': - resolution: {integrity: sha512-DrUBA2UXRfDmUX/ZTiEopd3X40yavsJF1FX2RygcuIScHL7o5YX1fMvoYnDhjeJQC4weCOklirpNWlcb2NiSeA==} - engines: {node: ^20.19 || ^22.12 || >=24} + "@sveltejs/vite-plugin-svelte@7.1.2": + resolution: + { integrity: sha512-DrUBA2UXRfDmUX/ZTiEopd3X40yavsJF1FX2RygcuIScHL7o5YX1fMvoYnDhjeJQC4weCOklirpNWlcb2NiSeA== } + engines: { node: ^20.19 || ^22.12 || >=24 } peerDependencies: svelte: ^5.46.4 vite: ^8.0.0-beta.7 || ^8.0.0 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} + "@svgr/babel-plugin-add-jsx-attribute@8.0.0": + resolution: + { integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} + "@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + resolution: + { integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} + "@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + resolution: + { integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} + "@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + resolution: + { integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} + "@svgr/babel-plugin-svg-dynamic-title@8.0.0": + resolution: + { integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} + "@svgr/babel-plugin-svg-em-dimensions@8.0.0": + resolution: + { integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} + "@svgr/babel-plugin-transform-react-native-svg@8.1.0": + resolution: + { integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} + "@svgr/babel-plugin-transform-svg-component@8.0.0": + resolution: + { integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== } + engines: { node: ">=12" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} + "@svgr/babel-preset@8.1.0": + resolution: + { integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + "@svgr/core@8.1.0": + resolution: + { integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== } + engines: { node: ">=14" } - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + "@svgr/hast-util-to-babel-ast@8.0.0": + resolution: + { integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== } + engines: { node: ">=14" } - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} + "@svgr/plugin-jsx@8.1.0": + resolution: + { integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== } + engines: { node: ">=14" } peerDependencies: - '@svgr/core': '*' + "@svgr/core": "*" - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} + "@svgr/plugin-svgo@8.1.0": + resolution: + { integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== } + engines: { node: ">=14" } peerDependencies: - '@svgr/core': '*' + "@svgr/core": "*" - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} + "@svgr/webpack@8.1.0": + resolution: + { integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== } + engines: { node: ">=14" } - '@swc-node/core@1.14.1': - resolution: {integrity: sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw==} - engines: {node: '>= 10'} + "@swc-node/core@1.14.1": + resolution: + { integrity: sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw== } + engines: { node: ">= 10" } peerDependencies: - '@swc/core': '>= 1.13.3' - '@swc/types': '>= 0.1' + "@swc/core": ">= 1.13.3" + "@swc/types": ">= 0.1" - '@swc-node/register@1.11.1': - resolution: {integrity: sha512-VQ0hJ5jX31TVv/fhZx4xJRzd8pwn6VvzYd2tGOHHr2TfXGCBixZoqdPDXTiEoJLCTS2MmvBf6zyQZZ0M8aGQCQ==} + "@swc-node/register@1.11.1": + resolution: + { integrity: sha512-VQ0hJ5jX31TVv/fhZx4xJRzd8pwn6VvzYd2tGOHHr2TfXGCBixZoqdPDXTiEoJLCTS2MmvBf6zyQZZ0M8aGQCQ== } peerDependencies: - '@swc/core': '>= 1.4.13' - typescript: '>= 4.3' + "@swc/core": ">= 1.4.13" + typescript: ">= 4.3" - '@swc-node/sourcemap-support@0.6.1': - resolution: {integrity: sha512-ovltDVH5QpdHXZkW138vG4+dgcNsxfwxHVoV6BtmTbz2KKl1A8ZSlbdtxzzfNjCjbpayda8Us9eMtcHobm38dA==} + "@swc-node/sourcemap-support@0.6.1": + resolution: + { integrity: sha512-ovltDVH5QpdHXZkW138vG4+dgcNsxfwxHVoV6BtmTbz2KKl1A8ZSlbdtxzzfNjCjbpayda8Us9eMtcHobm38dA== } - '@swc/core-darwin-arm64@1.15.40': - resolution: {integrity: sha512-PaYyclfmQ++77D8ityYvmmVzHv9aG8ROwt2GfG6/ccloy4Hgf80qtOnzb9VYvPsUT7Ty1uhuDRhv3XYpf62qhQ==} - engines: {node: '>=10'} + "@swc/core-darwin-arm64@1.15.41": + resolution: + { integrity: sha512-kREh6J5paQFvP3i7f/4FbqRNOJREutVFVOkder4GVyCBQ39YmER55cW/y1NNjwrchzFqgYswFn0mMDCqbqKzrw== } + engines: { node: ">=10" } cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.40': - resolution: {integrity: sha512-HbbPzvfLBUXjIB1Ezks+//lNUjmLjfyd63XSwprJgrZaXYdm70kohXPJUWdqKZozolFxbPaO+xtBaiUp6BoueA==} - engines: {node: '>=10'} + "@swc/core-darwin-x64@1.15.41": + resolution: + { integrity: sha512-N8B56ESFazZAWZyIkecADSPCwlLEinW7QLMEeotCpv4J7VXwfH+OLkmRL8o96UZ+1355fwHxDTS6/wK7yucvkA== } + engines: { node: ">=10" } cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.40': - resolution: {integrity: sha512-SlRZsCjOCPR2LvFs0Ri/Xrx/5o5TCt8vl4gW6mX1hEZOG0a625RxzRHpHdAQNGykmAN/7IeaFAJG+QnNmxlHcA==} - engines: {node: '>=10'} + "@swc/core-linux-arm-gnueabihf@1.15.41": + resolution: + { integrity: sha512-6XrId2fyle0mS5xxON8rU84mPd2Cq1kDJRj+4BnQKTd7u+2kSA6Ww+JkOP0iTNqOqt9OXhPOEAjBHAuonWcdCg== } + engines: { node: ">=10" } cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.40': - resolution: {integrity: sha512-Q8byxJt2fh8CR3EUX6snBpy47AoBVm+In/+Z3rjDHMjC38ZvR9/gtUUNCT0tfrn4EdVsO8/QPi59nxrxvqxvBQ==} - engines: {node: '>=10'} + "@swc/core-linux-arm64-gnu@1.15.41": + resolution: + { integrity: sha512-ynLIarxlkVnqHn1D0fKOVht6mNU5ks6lrH+MY3kkS+XFaGGgDxFZVjWKJlkYTKm3RCvBTfA8Ng5fLufXheMRKQ== } + engines: { node: ">=10" } cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.15.40': - resolution: {integrity: sha512-4z0MgHU+7M0pZDqBN1El7mFXDI1SBwinfcUkAyA4v8QrhOIUOZltySt2aStQLZGrdXVXM4Y4ylfiTC04ED+MoQ==} - engines: {node: '>=10'} + "@swc/core-linux-arm64-musl@1.15.41": + resolution: + { integrity: sha512-dXu/5vd4gh8symyhRF+4G7gOPkjmb4pONhh7sl+6GSiW0LOKZlfu5kXmyFbTz9smOT7jgr002qY9b1nujjXt2A== } + engines: { node: ">=10" } cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-ppc64-gnu@1.15.40': - resolution: {integrity: sha512-fLI4iUgeSZu0eRWUXwe6YzPFx9gHbFiPkl8Rp3mJfP8OpNR3nTQCGPvHdDh9xniW7mVvgMY4ni7A4VzqI1KrpA==} - engines: {node: '>=10'} + "@swc/core-linux-ppc64-gnu@1.15.41": + resolution: + { integrity: sha512-XGO6zVPXoPE0gf/XnI4jBbafNT13AYgoh6ns0JCSdOetI/kqVf0vhpz7NuNgAzZrMVCsmieqjPoTwViDgh4mOQ== } + engines: { node: ">=10" } cpu: [ppc64] os: [linux] libc: [glibc] - '@swc/core-linux-s390x-gnu@1.15.40': - resolution: {integrity: sha512-YqeKMAb7d4nQSGMJQ454IlaCENpzcDqhvBE9+CPfdnYpnUXxd+BSrB6Xk0YjW8UyoEhUj4p6quATCxbsp6J3jg==} - engines: {node: '>=10'} + "@swc/core-linux-s390x-gnu@1.15.41": + resolution: + { integrity: sha512-0WUglRwyZtW+iMi7J3iFdrCxreZZIKf4egTwEQfIYRsqFax69A0OrFj+NIoFSE03xBT/IFRrg+S8K6f9Ky+4hA== } + engines: { node: ">=10" } cpu: [s390x] os: [linux] libc: [glibc] - '@swc/core-linux-x64-gnu@1.15.40': - resolution: {integrity: sha512-7HOuS1iGcme/j/TuL1TfmmLGiMQrjv/GmjyZeydl00FKPtpGXEldwqfI56xgd1YzrzoB2svWjxbGGyQ0TEASxg==} - engines: {node: '>=10'} + "@swc/core-linux-x64-gnu@1.15.41": + resolution: + { integrity: sha512-VxkuQK59c0tHm6uJZCUrS3cyA2JhGGfdU6e41SZz0x/JS+4Sm7C1mIc97In14vkZJopEt7yXA2TouCqZDSygEA== } + engines: { node: ">=10" } cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.15.40': - resolution: {integrity: sha512-h4kZYHc7dpc9P9u4brRJaS8Pl7tPVHAeiLSzw7T5RfIJgAoSdaCMKzI/2Uay9gFhaw8uyCDl0L5q37r0EpAfIA==} - engines: {node: '>=10'} + "@swc/core-linux-x64-musl@1.15.41": + resolution: + { integrity: sha512-/0qXIu1ZxggLuovLb22vFfKHq2AA4n6Whw5UwmVCHk4pkw7KWnPIQpMCEqUMPsNkFJig7PPp/TSYFu8ZEb2rtQ== } + engines: { node: ">=10" } cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.15.40': - resolution: {integrity: sha512-+mQgKZXSj6mV38Zh05QaxSjUDmGP/R2JWlXZTDLSPkDzHU6p3GxN9eeSf5dfyDVU86946fmCvSzyl/ucImx8+A==} - engines: {node: '>=10'} + "@swc/core-win32-arm64-msvc@1.15.41": + resolution: + { integrity: sha512-Y481sMNZM6rECh9VO4+y26N1lWEDAyxnBZskUf37fl90uHE946VHfmiVQWT0uMFOhyJJFovGTRuF4W82dwewUg== } + engines: { node: ">=10" } cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.40': - resolution: {integrity: sha512-yvwdPLGd25mcj/mNatjNQ0lZujtQD6psH3v9PNmMb+fSzjbNG8KIDxjFWrcV+fsFVLOkyOmdJsFmX7NAFjVyPw==} - engines: {node: '>=10'} + "@swc/core-win32-ia32-msvc@1.15.41": + resolution: + { integrity: sha512-BAchBD5qeUzy3hiPSLJtaaoSm4blCLyYffOF1bGE4ETcV+OisqjUAwDQMJj++4bTpvMCDzwC+Bj3PmQyBCtscw== } + engines: { node: ">=10" } cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.40': - resolution: {integrity: sha512-OXtKsLU1bVtInzzDEAY2sYiF/rl4tvAnLLLpuMp3HzAOQZ5A+i69AKDhA1YLQTaMAqO3vzyYNVAYVRMPtSYD4w==} - engines: {node: '>=10'} + "@swc/core-win32-x64-msvc@1.15.41": + resolution: + { integrity: sha512-WOkA+fJ/ViVBQDsSV9JC52NACTe5PhlurA6viASDZGb7HR3KS01ZG7RZ+Bg6SVQFIoq3gSbTsskQVe6EbHFAYw== } + engines: { node: ">=10" } cpu: [x64] os: [win32] - '@swc/core@1.15.40': - resolution: {integrity: sha512-2kwzJikRvgtNAG7MwVZY2vEzZjTxKIq5jXOihuSV/8U+Hej8Va22t65aKnJZs3P+NwojZvR8Mf8kyM7O+V8sQg==} - engines: {node: '>=10'} + "@swc/core@1.15.41": + resolution: + { integrity: sha512-03nQq/082QRJJiOvp3FGbgxTGyyxMxohPTjhk/W9bD2J0tk4ukITI7goOhOO2WbaHn/lsPmo/zf8+DIXhwpgYQ== } + engines: { node: ">=10" } peerDependencies: - '@swc/helpers': '>=0.5.17' + "@swc/helpers": ">=0.5.17" peerDependenciesMeta: - '@swc/helpers': + "@swc/helpers": optional: true - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + "@swc/counter@0.1.3": + resolution: + { integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== } - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + "@swc/helpers@0.5.15": + resolution: + { integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== } - '@swc/types@0.1.26': - resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} + "@swc/types@0.1.26": + resolution: + { integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw== } - '@szmarczak/http-timer@1.1.2': - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + "@szmarczak/http-timer@1.1.2": + resolution: + { integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== } + engines: { node: ">=6" } - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} + "@tabby_ai/hijri-converter@1.0.5": + resolution: + { integrity: sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ== } + engines: { node: ">=16.0.0" } - '@tabby_ai/hijri-converter@1.0.5': - resolution: {integrity: sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==} - engines: {node: '>=16.0.0'} + "@tannin/compile@1.1.0": + resolution: + { integrity: sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg== } - '@tannin/compile@1.1.0': - resolution: {integrity: sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==} + "@tannin/evaluate@1.2.0": + resolution: + { integrity: sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg== } - '@tannin/evaluate@1.2.0': - resolution: {integrity: sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==} + "@tannin/plural-forms@1.1.0": + resolution: + { integrity: sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw== } - '@tannin/plural-forms@1.1.0': - resolution: {integrity: sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==} + "@tannin/postfix@1.1.0": + resolution: + { integrity: sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw== } - '@tannin/postfix@1.1.0': - resolution: {integrity: sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==} + "@tannin/sprintf@1.3.3": + resolution: + { integrity: sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA== } - '@tannin/sprintf@1.3.3': - resolution: {integrity: sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==} + "@testing-library/dom@10.4.1": + resolution: + { integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg== } + engines: { node: ">=18" } - '@testing-library/dom@10.4.1': - resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} - engines: {node: '>=18'} + "@testing-library/jest-dom@6.9.1": + resolution: + { integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA== } + engines: { node: ">=14", npm: ">=6", yarn: ">=1" } - '@testing-library/jest-dom@6.9.1': - resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - - '@testing-library/react@16.3.2': - resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} - engines: {node: '>=18'} + "@testing-library/react@16.3.2": + resolution: + { integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g== } + engines: { node: ">=18" } peerDependencies: - '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 || ^19.0.0 - '@types/react-dom': ^18.0.0 || ^19.0.0 + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} + "@testing-library/user-event@14.6.1": + resolution: + { integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw== } + engines: { node: ">=12", npm: ">=6" } peerDependencies: - '@testing-library/dom': '>=7.21.4' - - '@tootallnate/once@2.0.1': - resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} - engines: {node: '>= 10'} - - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - - '@tsconfig/ember@3.0.12': - resolution: {integrity: sha512-ypFTXqIzQAB5HpYPi4TwDElDcUheWrKsEaYXgjiCAvsH6zxcQ4zUeuJqmfT+FoUlHTPZ3Xyel81OxrcjI+rilw==} - deprecated: Please use @ember/app-tsconfig or @ember/library-tsconfig instead. These live at https://github.com/ember-cli/tsconfigs - - '@tsconfig/node10@1.0.12': - resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + "@testing-library/dom": ">=7.21.4" - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + "@tootallnate/once@2.0.1": + resolution: + { integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ== } + engines: { node: ">= 10" } - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + "@tootallnate/quickjs-emscripten@0.23.0": + resolution: + { integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== } - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + "@tsconfig/node10@1.0.12": + resolution: + { integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== } - '@tsconfig/node18@18.2.6': - resolution: {integrity: sha512-eAWQzAjPj18tKnDzmWstz4OyWewLUNBm9tdoN9LayzoboRktYx3Enk1ZXPmThj55L7c4VWYq/Bzq0A51znZfhw==} + "@tsconfig/node12@1.0.11": + resolution: + { integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== } - '@tsconfig/svelte@5.0.8': - resolution: {integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ==} + "@tsconfig/node14@1.0.3": + resolution: + { integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== } - '@tufjs/canonical-json@1.0.0': - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + "@tsconfig/node16@1.0.4": + resolution: + { integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== } - '@tufjs/canonical-json@2.0.0': - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} - engines: {node: ^16.14.0 || >=18.0.0} + "@tsconfig/node18@18.2.6": + resolution: + { integrity: sha512-eAWQzAjPj18tKnDzmWstz4OyWewLUNBm9tdoN9LayzoboRktYx3Enk1ZXPmThj55L7c4VWYq/Bzq0A51znZfhw== } - '@tufjs/models@1.0.4': - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + "@tsconfig/svelte@5.0.8": + resolution: + { integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ== } - '@tufjs/models@4.1.0': - resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} - engines: {node: ^20.17.0 || >=22.9.0} + "@tufjs/canonical-json@1.0.0": + resolution: + { integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + "@tufjs/canonical-json@2.0.0": + resolution: + { integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== } + engines: { node: ^16.14.0 || >=18.0.0 } - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + "@tufjs/models@1.0.4": + resolution: + { integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - '@types/accepts@1.3.7': - resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + "@tufjs/models@4.1.0": + resolution: + { integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww== } + engines: { node: ^20.17.0 || >=22.9.0 } - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + "@tybys/wasm-util@0.10.2": + resolution: + { integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg== } - '@types/babel__code-frame@7.27.0': - resolution: {integrity: sha512-Dwlo+LrxDx/0SpfmJ/BKveHf7QXWvLBLc+x03l5sbzykj3oB9nHygCpSECF1a+s+QIxbghe+KHqC90vGtxLRAA==} + "@tybys/wasm-util@0.9.0": + resolution: + { integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== } - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + "@types/accepts@1.3.7": + resolution: + { integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== } - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + "@types/aria-query@5.0.4": + resolution: + { integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== } - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + "@types/babel__code-frame@7.27.0": + resolution: + { integrity: sha512-Dwlo+LrxDx/0SpfmJ/BKveHf7QXWvLBLc+x03l5sbzykj3oB9nHygCpSECF1a+s+QIxbghe+KHqC90vGtxLRAA== } - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + "@types/babel__core@7.20.5": + resolution: + { integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== } - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + "@types/babel__generator@7.27.0": + resolution: + { integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== } - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + "@types/babel__template@7.4.4": + resolution: + { integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== } - '@types/browserslist-useragent@3.0.7': - resolution: {integrity: sha512-rVvdB0HoQvHDkS8SPgUv2tKfnf0zKIzBh8oisvnq82R3asgpnF857UTAUJuh+3VXPqMYdZ13VWfdIDUN/1iFmQ==} + "@types/babel__traverse@7.28.0": + resolution: + { integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== } - '@types/browserslist@4.15.4': - resolution: {integrity: sha512-gmSSW1GuQN9ZTDs0nmCT1ybj76N/+mSJAgVaNoEsxCCKs7yblsZsKY3Vt/L2VKtHL5dysWhwPDaawCr0y1gt0Q==} + "@types/body-parser@1.19.6": + resolution: + { integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== } + + "@types/bonjour@3.5.13": + resolution: + { integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== } + + "@types/browserslist-useragent@3.0.7": + resolution: + { integrity: sha512-rVvdB0HoQvHDkS8SPgUv2tKfnf0zKIzBh8oisvnq82R3asgpnF857UTAUJuh+3VXPqMYdZ13VWfdIDUN/1iFmQ== } + + "@types/browserslist@4.15.4": + resolution: + { integrity: sha512-gmSSW1GuQN9ZTDs0nmCT1ybj76N/+mSJAgVaNoEsxCCKs7yblsZsKY3Vt/L2VKtHL5dysWhwPDaawCr0y1gt0Q== } deprecated: This is a stub types definition. browserslist provides its own type definitions, so you do not need this installed. - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + "@types/caniuse-api@3.0.6": + resolution: + { integrity: sha512-yMGwHJaqwIEXc3x7EyY3CeS73QG9WeC00w2nZ0/inoRv9DiLIhfvrY6vmXMSKlpRLFxrLcAWJh3JTwYNPl3ihg== } - '@types/caniuse-api@3.0.6': - resolution: {integrity: sha512-yMGwHJaqwIEXc3x7EyY3CeS73QG9WeC00w2nZ0/inoRv9DiLIhfvrY6vmXMSKlpRLFxrLcAWJh3JTwYNPl3ihg==} + "@types/chai-dom@1.11.3": + resolution: + { integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ== } - '@types/chai-dom@1.11.3': - resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} + "@types/chai@4.3.20": + resolution: + { integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== } - '@types/chai@4.3.20': - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + "@types/chai@5.2.3": + resolution: + { integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== } - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + "@types/co-body@6.1.3": + resolution: + { integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA== } - '@types/co-body@6.1.3': - resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} + "@types/command-line-args@5.2.3": + resolution: + { integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw== } - '@types/command-line-args@5.2.3': - resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} + "@types/command-line-usage@5.0.4": + resolution: + { integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg== } - '@types/command-line-usage@5.0.4': - resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} + "@types/compression@1.7.5": + resolution: + { integrity: sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg== } - '@types/compression@1.7.5': - resolution: {integrity: sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==} + "@types/connect-history-api-fallback@1.5.4": + resolution: + { integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== } - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + "@types/connect-livereload@0.6.3": + resolution: + { integrity: sha512-CaWami/rQdycHKnOR+UIfBNxNeqLC5f1KqMdclbsf+TsiLgXwYm2/+KlAefcR3ODom7Fuz4bvWazDMsmfaV5gw== } - '@types/connect-livereload@0.6.3': - resolution: {integrity: sha512-CaWami/rQdycHKnOR+UIfBNxNeqLC5f1KqMdclbsf+TsiLgXwYm2/+KlAefcR3ODom7Fuz4bvWazDMsmfaV5gw==} + "@types/connect@3.4.38": + resolution: + { integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== } - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + "@types/content-disposition@0.5.9": + resolution: + { integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ== } - '@types/content-disposition@0.5.9': - resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} + "@types/convert-source-map@2.0.3": + resolution: + { integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA== } - '@types/convert-source-map@2.0.3': - resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} + "@types/cookie@0.6.0": + resolution: + { integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== } - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + "@types/cookies@0.9.2": + resolution: + { integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A== } - '@types/cookies@0.9.2': - resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} + "@types/cors@2.8.19": + resolution: + { integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== } - '@types/cors@2.8.19': - resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + "@types/debounce@1.2.4": + resolution: + { integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== } - '@types/debounce@1.2.4': - resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} + "@types/debug@4.1.13": + resolution: + { integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw== } - '@types/debug@4.1.13': - resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + "@types/deep-eql@4.0.2": + resolution: + { integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== } - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + "@types/ember@4.0.11": + resolution: + { integrity: sha512-v7VIex0YILK8fP87LkIfzeeYKNnu74+xwf6U56v6MUDDGfSs9q/6NCxiUfwkxD+z5nQiUcwvfKVokX8qzZFRLw== } - '@types/ember-qunit@6.1.3': - resolution: {integrity: sha512-cX28wQZ5n66YTdXAC0wktzaxL0yRm/FVPJMEnPC/CySMxFiDplBkelrYfonGo9vKQ0iL7W12OQjNkq5AGUJdNg==} - deprecated: This is a stub types definition. ember-qunit provides its own type definitions, so you do not need this installed. + "@types/ember__application@4.0.11": + resolution: + { integrity: sha512-U1S7XW0V70nTWbFckWoraJbYGBJK69muP/CsPFLeAuUYHfkkDiwh1SfqgAUN9aHtrEJM5SuSYVYp2YsTI2yLuA== } - '@types/ember-resolver@9.0.2': - resolution: {integrity: sha512-E1dUIOvdvS8GIt/25psR1CZVmE1o9xuOxmsS1J8iVWrb43cV7mo21IYy+yDwOe7J/2QMgPNzh0uZGItsOXQoYw==} - deprecated: This is a stub types definition. ember-resolver provides its own type definitions, so you do not need this installed. + "@types/ember__array@4.0.10": + resolution: + { integrity: sha512-UrhDbopLI3jB0MqV14y8yji2IuPNmeDrtT1PRYJL4CThLHrRkfeYyFvxqvrxWxn0wXKjbbjfH1gOe7BU57QrLQ== } - '@types/ember@4.0.11': - resolution: {integrity: sha512-v7VIex0YILK8fP87LkIfzeeYKNnu74+xwf6U56v6MUDDGfSs9q/6NCxiUfwkxD+z5nQiUcwvfKVokX8qzZFRLw==} + "@types/ember__component@4.0.22": + resolution: + { integrity: sha512-m72EtmBN/RxOChXqRsyOg4RR5+AiB4LQ8s1CEKNYAfvANt18m4hjqxtA7QZYLTq2ZjEVJGpdMsrdDuONWjwRSQ== } - '@types/ember__application@4.0.11': - resolution: {integrity: sha512-U1S7XW0V70nTWbFckWoraJbYGBJK69muP/CsPFLeAuUYHfkkDiwh1SfqgAUN9aHtrEJM5SuSYVYp2YsTI2yLuA==} + "@types/ember__controller@4.0.12": + resolution: + { integrity: sha512-80rdnSC0UJBqoUX5/vkQcM2xkRdTPTvY0dPXEfY5cC5OZITbcSeRo5qa7ZGhgNBfH6XYyh55Lo/b811LwU3N9w== } - '@types/ember__array@4.0.10': - resolution: {integrity: sha512-UrhDbopLI3jB0MqV14y8yji2IuPNmeDrtT1PRYJL4CThLHrRkfeYyFvxqvrxWxn0wXKjbbjfH1gOe7BU57QrLQ==} + "@types/ember__debug@4.0.8": + resolution: + { integrity: sha512-9wF7STmDHDsUxSjyCq2lpMq/03QOPkBQMGJnV8yOBnVZxB6f+FJH/kxaCprdMkUe7iwAPNEC2zrFFx1tzH75Kg== } - '@types/ember__component@4.0.22': - resolution: {integrity: sha512-m72EtmBN/RxOChXqRsyOg4RR5+AiB4LQ8s1CEKNYAfvANt18m4hjqxtA7QZYLTq2ZjEVJGpdMsrdDuONWjwRSQ==} + "@types/ember__destroyable@4.0.5": + resolution: + { integrity: sha512-spJyZxpvecssbXkaOQYcbnlWgb+TasFaKrgAYVbykZY6saMwUdMOGDDoW6uP/y/+A8Jj/fUIatPWJLepeSfgww== } - '@types/ember__controller@4.0.12': - resolution: {integrity: sha512-80rdnSC0UJBqoUX5/vkQcM2xkRdTPTvY0dPXEfY5cC5OZITbcSeRo5qa7ZGhgNBfH6XYyh55Lo/b811LwU3N9w==} + "@types/ember__engine@4.0.11": + resolution: + { integrity: sha512-ryR4Q1Xm3kQ3Ap58w10CxV3+vb3hs1cJqi7UZ5IlSdLRql7AbpS6hIjxSQ3EQ4zadeeJ6/D8JJcSwqR7eX3PFA== } - '@types/ember__debug@4.0.8': - resolution: {integrity: sha512-9wF7STmDHDsUxSjyCq2lpMq/03QOPkBQMGJnV8yOBnVZxB6f+FJH/kxaCprdMkUe7iwAPNEC2zrFFx1tzH75Kg==} + "@types/ember__error@4.0.6": + resolution: + { integrity: sha512-vYrLaGGjHkN14K89Vm8yqB2mkpJQefE5w7QJkkgYyV+smzns1vKlPbvuFevRtoeYNn4u4yY0JyF7HceNkm3H0Q== } - '@types/ember__destroyable@4.0.5': - resolution: {integrity: sha512-spJyZxpvecssbXkaOQYcbnlWgb+TasFaKrgAYVbykZY6saMwUdMOGDDoW6uP/y/+A8Jj/fUIatPWJLepeSfgww==} + "@types/ember__object@4.0.12": + resolution: + { integrity: sha512-ZEpikPjZ02m1QCBiTPTayMJwVwF4UBlHlGDoScRB3IP/SUS1O5mmn1/CnSQDxzzF3ctfmhNuTZzVBBc1Y8OC1A== } - '@types/ember__engine@4.0.11': - resolution: {integrity: sha512-ryR4Q1Xm3kQ3Ap58w10CxV3+vb3hs1cJqi7UZ5IlSdLRql7AbpS6hIjxSQ3EQ4zadeeJ6/D8JJcSwqR7eX3PFA==} + "@types/ember__owner@4.0.9": + resolution: + { integrity: sha512-iyBda4aUIjBmeiKTKmPow/EJO7xWn8m85CnQTOCqQzTWJyJpgfObbXSHahOHXOfMm279Oa5NlbmS/EontB+XiQ== } - '@types/ember__error@4.0.6': - resolution: {integrity: sha512-vYrLaGGjHkN14K89Vm8yqB2mkpJQefE5w7QJkkgYyV+smzns1vKlPbvuFevRtoeYNn4u4yY0JyF7HceNkm3H0Q==} + "@types/ember__polyfills@4.0.6": + resolution: + { integrity: sha512-hbds3Qv+oVm/QKIaY1E6atvrCoJTH/MPSl4swOhX6P0RiMB2fOfFCrFSD1mP1KrU1LqpHJ2Rzs7XLe53SWVzgw== } - '@types/ember__object@4.0.12': - resolution: {integrity: sha512-ZEpikPjZ02m1QCBiTPTayMJwVwF4UBlHlGDoScRB3IP/SUS1O5mmn1/CnSQDxzzF3ctfmhNuTZzVBBc1Y8OC1A==} + "@types/ember__routing@4.0.23": + resolution: + { integrity: sha512-JW4HXubi7Du98sdPdMmdz54fwawo1o9YX3r/emHWGAsCCiwlbuwKIwyrlhUml5YQTpcZfC///Q9t5M6/JXTNrw== } - '@types/ember__owner@4.0.9': - resolution: {integrity: sha512-iyBda4aUIjBmeiKTKmPow/EJO7xWn8m85CnQTOCqQzTWJyJpgfObbXSHahOHXOfMm279Oa5NlbmS/EontB+XiQ==} + "@types/ember__runloop@4.0.10": + resolution: + { integrity: sha512-9MZfOJBXuUP7RqLjovmzy1yY2xKTxVpqHMapqy6QJ8mjAekRmq9IJ+ni2zJ5CWftyb3Lqu3Eks05CL7fnbhcJA== } - '@types/ember__polyfills@4.0.6': - resolution: {integrity: sha512-hbds3Qv+oVm/QKIaY1E6atvrCoJTH/MPSl4swOhX6P0RiMB2fOfFCrFSD1mP1KrU1LqpHJ2Rzs7XLe53SWVzgw==} + "@types/ember__service@4.0.9": + resolution: + { integrity: sha512-DrepocL/4hH5YxbDWbxEKMDcAchBPSGGa4g+LEINW1Po81RmSdKw5GZV4UO0mvRWgkdu3EbWUxbTzB4gmbDSeQ== } - '@types/ember__routing@4.0.23': - resolution: {integrity: sha512-JW4HXubi7Du98sdPdMmdz54fwawo1o9YX3r/emHWGAsCCiwlbuwKIwyrlhUml5YQTpcZfC///Q9t5M6/JXTNrw==} + "@types/ember__string@3.0.15": + resolution: + { integrity: sha512-SxoaweAJUJKSIt82clIwpi/Fm0IfeisozLnXthnBp/hE2JyVcnOb1wMIbw0CCfzercmyWG1njV45VBqy8SrLDQ== } - '@types/ember__runloop@4.0.10': - resolution: {integrity: sha512-9MZfOJBXuUP7RqLjovmzy1yY2xKTxVpqHMapqy6QJ8mjAekRmq9IJ+ni2zJ5CWftyb3Lqu3Eks05CL7fnbhcJA==} + "@types/ember__string@3.16.3": + resolution: + { integrity: sha512-0T9ofzm9LL/bSG5u1SxKx/j2h/bHKkl5NKjGCNbFQxEKBw4f2cs6+AMDgWke9z+qrRRIz9vGEtMXnA3yJrO2xA== } - '@types/ember__service@4.0.9': - resolution: {integrity: sha512-DrepocL/4hH5YxbDWbxEKMDcAchBPSGGa4g+LEINW1Po81RmSdKw5GZV4UO0mvRWgkdu3EbWUxbTzB4gmbDSeQ==} + "@types/ember__template@4.0.7": + resolution: + { integrity: sha512-jv4hhG+8d1zdma+jhbCdJ3Ak7C22YNatGyWWvB3N9zbXq358AAPXaJoyNY8QTDbD/RIR9P6yoRk4u9vLbF6zfA== } - '@types/ember__string@3.0.15': - resolution: {integrity: sha512-SxoaweAJUJKSIt82clIwpi/Fm0IfeisozLnXthnBp/hE2JyVcnOb1wMIbw0CCfzercmyWG1njV45VBqy8SrLDQ==} + "@types/ember__test@4.0.6": + resolution: + { integrity: sha512-Nswm/epfTepXknT8scZvWyyop1aqJcZcyzY4THGHFcXvYQQfA9rgmgrx6vo9vCJmYHh3jm0TTAIAIfoCvGaX5g== } - '@types/ember__template@4.0.7': - resolution: {integrity: sha512-jv4hhG+8d1zdma+jhbCdJ3Ak7C22YNatGyWWvB3N9zbXq358AAPXaJoyNY8QTDbD/RIR9P6yoRk4u9vLbF6zfA==} + "@types/ember__utils@4.0.7": + resolution: + { integrity: sha512-qQPBeWRyIPigKnZ68POlkqI5e6XA78Q4G3xHo687wQTcEtfoL/iZyPC4hn70mdijcZq8Hjch2Y3E5yhsEMzK+g== } - '@types/ember__test-helpers@2.9.3': - resolution: {integrity: sha512-GTucagS2Yqla9EkCe478DvF0n3SYaiJMf4v27SKw0DNm3JRoDGxfHp5guIKfoyeLH8yASl3RtsBwD5jNwM4qmw==} - deprecated: This is a stub types definition. @ember/test-helpers provides its own type definitions, so you do not need this installed. + "@types/eslint@8.56.12": + resolution: + { integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g== } - '@types/ember__test@4.0.6': - resolution: {integrity: sha512-Nswm/epfTepXknT8scZvWyyop1aqJcZcyzY4THGHFcXvYQQfA9rgmgrx6vo9vCJmYHh3jm0TTAIAIfoCvGaX5g==} + "@types/eslint@9.6.1": + resolution: + { integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== } - '@types/ember__utils@4.0.7': - resolution: {integrity: sha512-qQPBeWRyIPigKnZ68POlkqI5e6XA78Q4G3xHo687wQTcEtfoL/iZyPC4hn70mdijcZq8Hjch2Y3E5yhsEMzK+g==} + "@types/esrecurse@4.3.1": + resolution: + { integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== } - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + "@types/estree@0.0.39": + resolution: + { integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== } - '@types/eslint@8.56.12': - resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} + "@types/estree@1.0.8": + resolution: + { integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== } - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + "@types/estree@1.0.9": + resolution: + { integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== } - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + "@types/etag@1.8.3": + resolution: + { integrity: sha512-QYHv9Yeh1ZYSMPQOoxY4XC4F1r+xRUiAriB303F4G6uBsT3KKX60DjiogvVv+2VISVDuJhcIzMdbjT+Bm938QQ== } - '@types/estree@0.0.39': - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + "@types/etag@1.8.4": + resolution: + { integrity: sha512-f1z/UMth8gQ6636NBqhFmJ3zES7EuDcUnV6K1gl1osHp+85KPKX+VixYWUpqLkw1fftCagyHJjJOZjZkEi2rHw== } - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + "@types/express-serve-static-core@4.19.8": + resolution: + { integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA== } - '@types/estree@1.0.9': - resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + "@types/express-serve-static-core@5.1.1": + resolution: + { integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A== } - '@types/etag@1.8.3': - resolution: {integrity: sha512-QYHv9Yeh1ZYSMPQOoxY4XC4F1r+xRUiAriB303F4G6uBsT3KKX60DjiogvVv+2VISVDuJhcIzMdbjT+Bm938QQ==} + "@types/express@4.17.25": + resolution: + { integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== } - '@types/etag@1.8.4': - resolution: {integrity: sha512-f1z/UMth8gQ6636NBqhFmJ3zES7EuDcUnV6K1gl1osHp+85KPKX+VixYWUpqLkw1fftCagyHJjJOZjZkEi2rHw==} + "@types/express@5.0.6": + resolution: + { integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== } - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + "@types/file-loader@5.0.4": + resolution: + { integrity: sha512-aB4X92oi5D2nIGI8/kolnJ47btRM2MQjQS4eJgA/VnCD12x0+kP5v7b5beVQWKHLOcquwUXvv6aMt8PmMy9uug== } - '@types/express-serve-static-core@5.1.1': - resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} + "@types/fs-extra@5.1.0": + resolution: + { integrity: sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ== } - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + "@types/fs-extra@8.1.5": + resolution: + { integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ== } - '@types/express@5.0.6': - resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + "@types/gensync@1.0.5": + resolution: + { integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg== } - '@types/file-loader@5.0.4': - resolution: {integrity: sha512-aB4X92oi5D2nIGI8/kolnJ47btRM2MQjQS4eJgA/VnCD12x0+kP5v7b5beVQWKHLOcquwUXvv6aMt8PmMy9uug==} + "@types/glob@7.2.0": + resolution: + { integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== } - '@types/fs-extra@5.1.0': - resolution: {integrity: sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ==} - - '@types/fs-extra@8.1.5': - resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - - '@types/glob@9.0.0': - resolution: {integrity: sha512-00UxlRaIUvYm4R4W9WYkN8/J+kV8fmOQ7okeH6YFtGWFMt3odD45tpG5yA5wnL7HE6lLgjaTW5n14ju2hl2NNA==} + "@types/glob@9.0.0": + resolution: + { integrity: sha512-00UxlRaIUvYm4R4W9WYkN8/J+kV8fmOQ7okeH6YFtGWFMt3odD45tpG5yA5wnL7HE6lLgjaTW5n14ju2hl2NNA== } deprecated: This is a stub types definition. glob provides its own type definitions, so you do not need this installed. - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/gradient-parser@1.1.0': - resolution: {integrity: sha512-SaEcbgQscHtGJ1QL+ajgDTmmqU2f6T+00jZRcFlVHUW2Asivc84LNUev/UQFyu117AsdyrtI+qpwLvgjJXJxmw==} + "@types/graceful-fs@4.1.9": + resolution: + { integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== } - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + "@types/gradient-parser@1.1.0": + resolution: + { integrity: sha512-SaEcbgQscHtGJ1QL+ajgDTmmqU2f6T+00jZRcFlVHUW2Asivc84LNUev/UQFyu117AsdyrtI+qpwLvgjJXJxmw== } - '@types/highlight-words-core@1.2.1': - resolution: {integrity: sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==} + "@types/hast@3.0.4": + resolution: + { integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== } - '@types/html-minifier-terser@5.1.2': - resolution: {integrity: sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==} + "@types/highlight-words-core@1.2.1": + resolution: + { integrity: sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA== } - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + "@types/html-minifier-terser@5.1.2": + resolution: + { integrity: sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== } - '@types/html-minifier-terser@7.0.2': - resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} + "@types/html-minifier-terser@6.1.0": + resolution: + { integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== } - '@types/http-assert@1.5.6': - resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} + "@types/html-minifier-terser@7.0.2": + resolution: + { integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA== } - '@types/http-cache-semantics@4.2.0': - resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + "@types/http-assert@1.5.6": + resolution: + { integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw== } - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + "@types/http-errors@2.0.5": + resolution: + { integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== } - '@types/http-proxy@1.17.17': - resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} + "@types/http-proxy@1.17.17": + resolution: + { integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw== } - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + "@types/istanbul-lib-coverage@2.0.6": + resolution: + { integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== } - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + "@types/istanbul-lib-report@3.0.3": + resolution: + { integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== } - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + "@types/istanbul-reports@3.0.4": + resolution: + { integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== } - '@types/jasmine@6.0.0': - resolution: {integrity: sha512-18lgGsLmEh3VJk9eZ5wAjTISxdqzl6YOwu8UdMpolajN57QOCNbl+AbHUd+Yu9ItrsFdB+c8LSZSGNg8nHaguw==} + "@types/jasmine@6.0.0": + resolution: + { integrity: sha512-18lgGsLmEh3VJk9eZ5wAjTISxdqzl6YOwu8UdMpolajN57QOCNbl+AbHUd+Yu9ItrsFdB+c8LSZSGNg8nHaguw== } - '@types/jasminewd2@2.0.13': - resolution: {integrity: sha512-aJ3wj8tXMpBrzQ5ghIaqMisD8C3FIrcO6sDKHqFbuqAsI7yOxj0fA7MrRCPLZHIVUjERIwsMmGn/vB0UQ9u0Hg==} + "@types/jasminewd2@2.0.13": + resolution: + { integrity: sha512-aJ3wj8tXMpBrzQ5ghIaqMisD8C3FIrcO6sDKHqFbuqAsI7yOxj0fA7MrRCPLZHIVUjERIwsMmGn/vB0UQ9u0Hg== } - '@types/jest@30.0.0': - resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + "@types/jest@30.0.0": + resolution: + { integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== } - '@types/jquery@4.0.0': - resolution: {integrity: sha512-Z+to+A2VkaHq1DfI2oSwsoCdhCHMpTSgjWzNcbNlRGYzksDBpPUgEcAL+RQjOBJRaLoEAOHXxqDGBVP+BblBwg==} + "@types/jquery@4.0.1": + resolution: + { integrity: sha512-9a59A/tycXgYuPABcp6/3spSShn0NT2UOM4EfHvMumjYi4lJWTsK5SZWjhx3yRm9IHGCeWXdV2YfNsrWrft/CA== } - '@types/jsdom@21.1.7': - resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} + "@types/jsdom@21.1.7": + resolution: + { integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== } - '@types/jsdom@28.0.3': - resolution: {integrity: sha512-/HQ2uFoetFTXuye8vzIcHw2z6Fwi7Hi/qcgC+RoS9NCyewiqxhVGqlG+ViGB6lkax481R6dmhf1I7lIGlzJStQ==} + "@types/jsdom@28.0.3": + resolution: + { integrity: sha512-/HQ2uFoetFTXuye8vzIcHw2z6Fwi7Hi/qcgC+RoS9NCyewiqxhVGqlG+ViGB6lkax481R6dmhf1I7lIGlzJStQ== } - '@types/jsesc@2.5.1': - resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + "@types/jsesc@2.5.1": + resolution: + { integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw== } - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + "@types/json-schema@7.0.15": + resolution: + { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + "@types/json5@0.0.29": + resolution: + { integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== } - '@types/karma-coverage-istanbul-reporter@2.1.4': - resolution: {integrity: sha512-IBBryzAJEusHKx284FAUOhTtbTMGsf690WPxZgGZx5obVgWK+9p8s9cIOhLIbNl/lqOvIwXiWsudktubhO8QQg==} + "@types/karma-coverage-istanbul-reporter@2.1.4": + resolution: + { integrity: sha512-IBBryzAJEusHKx284FAUOhTtbTMGsf690WPxZgGZx5obVgWK+9p8s9cIOhLIbNl/lqOvIwXiWsudktubhO8QQg== } - '@types/karma-mocha-reporter@2.2.4': - resolution: {integrity: sha512-GzmqyuZ5dzKmbZXCvz/cH+lfDljFb996LsxKJHmrwG9WeY4CP+xS+jpbcij/t8Yil5CCLYbQ+8dLwrgY07Vpfg==} + "@types/karma-mocha-reporter@2.2.4": + resolution: + { integrity: sha512-GzmqyuZ5dzKmbZXCvz/cH+lfDljFb996LsxKJHmrwG9WeY4CP+xS+jpbcij/t8Yil5CCLYbQ+8dLwrgY07Vpfg== } - '@types/karma-mocha@1.3.4': - resolution: {integrity: sha512-Imps6TZLcBJNWaHV30/NHTg8GBiZAPZAeNdCNbX3vgEmUK5EMrxmu6OfT753w8Nwq5zWg2ielioCl3LjD0QlIA==} + "@types/karma-mocha@1.3.4": + resolution: + { integrity: sha512-Imps6TZLcBJNWaHV30/NHTg8GBiZAPZAeNdCNbX3vgEmUK5EMrxmu6OfT753w8Nwq5zWg2ielioCl3LjD0QlIA== } - '@types/karma@5.0.1': - resolution: {integrity: sha512-zSaPZ+ABVx/DQ5imAQZUITgLy19H0aAogknHU67JuDi2PvaXGjYBevFakkDtooBvr7dMsq/YD9vtOxMcSHWnxw==} + "@types/karma@5.0.1": + resolution: + { integrity: sha512-zSaPZ+ABVx/DQ5imAQZUITgLy19H0aAogknHU67JuDi2PvaXGjYBevFakkDtooBvr7dMsq/YD9vtOxMcSHWnxw== } - '@types/keygrip@1.0.6': - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + "@types/keygrip@1.0.6": + resolution: + { integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ== } - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + "@types/keyv@3.1.4": + resolution: + { integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== } - '@types/klaw@3.0.7': - resolution: {integrity: sha512-ooZ+dVfTfg8RIUzwCBnHR6NirCB0amo1MNneUbL+Votca1H/eaMwkB31uDU9O6yKWNY5ngdYP3ywduOxm4KtMg==} + "@types/klaw@3.0.7": + resolution: + { integrity: sha512-ooZ+dVfTfg8RIUzwCBnHR6NirCB0amo1MNneUbL+Votca1H/eaMwkB31uDU9O6yKWNY5ngdYP3ywduOxm4KtMg== } - '@types/koa-compose@3.2.9': - resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} + "@types/koa-compose@3.2.9": + resolution: + { integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA== } - '@types/koa-compress@2.0.9': - resolution: {integrity: sha512-1Sa9OsbHd2N2N7gLpdIRHe8W99EZbfIR31D7Iisx16XgwZCnWUtGXzXQejhu74Y1pE/wILqBP6VL49ch/MVpZw==} + "@types/koa-compress@2.0.9": + resolution: + { integrity: sha512-1Sa9OsbHd2N2N7gLpdIRHe8W99EZbfIR31D7Iisx16XgwZCnWUtGXzXQejhu74Y1pE/wILqBP6VL49ch/MVpZw== } - '@types/koa-etag@3.0.4': - resolution: {integrity: sha512-uPcg5P2KfZ2lN6R2776UA0702lYPyrvcAk21H8TZxMRo9WGzQJNHohzyTvSjJ+ZyzB5gC5f/pc/ZPUk/o85e1w==} + "@types/koa-etag@3.0.4": + resolution: + { integrity: sha512-uPcg5P2KfZ2lN6R2776UA0702lYPyrvcAk21H8TZxMRo9WGzQJNHohzyTvSjJ+ZyzB5gC5f/pc/ZPUk/o85e1w== } - '@types/koa-send@4.1.6': - resolution: {integrity: sha512-vgnNGoOJkx7FrF0Jl6rbK1f8bBecqAchKpXtKuXzqIEdXTDO6dsSTjr+eZ5m7ltSjH4K/E7auNJEQCAd0McUPA==} + "@types/koa-send@4.1.6": + resolution: + { integrity: sha512-vgnNGoOJkx7FrF0Jl6rbK1f8bBecqAchKpXtKuXzqIEdXTDO6dsSTjr+eZ5m7ltSjH4K/E7auNJEQCAd0McUPA== } - '@types/koa-static@4.0.4': - resolution: {integrity: sha512-j1AUzzl7eJYEk9g01hNTlhmipFh8RFbOQmaMNLvLcNNAkPw0bdTs3XTa3V045XFlrWN0QYnblbDJv2RzawTn6A==} + "@types/koa-static@4.0.4": + resolution: + { integrity: sha512-j1AUzzl7eJYEk9g01hNTlhmipFh8RFbOQmaMNLvLcNNAkPw0bdTs3XTa3V045XFlrWN0QYnblbDJv2RzawTn6A== } - '@types/koa@2.15.2': - resolution: {integrity: sha512-CB+iyjjh1uS5N6/CKwXvw0qA7USMS2WVc4Tjf660yCjhdvqzNr8gdFcIawB41zGGptOQ+d1fnpaQWIIUXYxR3w==} + "@types/koa@2.15.2": + resolution: + { integrity: sha512-CB+iyjjh1uS5N6/CKwXvw0qA7USMS2WVc4Tjf660yCjhdvqzNr8gdFcIawB41zGGptOQ+d1fnpaQWIIUXYxR3w== } - '@types/koa__cors@3.3.1': - resolution: {integrity: sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw==} + "@types/koa__cors@3.3.1": + resolution: + { integrity: sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw== } - '@types/less@3.0.6': - resolution: {integrity: sha512-PecSzorDGdabF57OBeQO/xFbAkYWo88g4Xvnsx7LRwqLC17I7OoKtA3bQB9uXkY6UkMWCOsA8HSVpaoitscdXw==} + "@types/less@3.0.6": + resolution: + { integrity: sha512-PecSzorDGdabF57OBeQO/xFbAkYWo88g4Xvnsx7LRwqLC17I7OoKtA3bQB9uXkY6UkMWCOsA8HSVpaoitscdXw== } - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + "@types/linkify-it@5.0.0": + resolution: + { integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== } - '@types/livereload@0.9.5': - resolution: {integrity: sha512-2RXcRKdivPmn67pwjytvHoRv46AeXaLYVUWA0zkel1XSAOH5i71G0KfUdE5u3g80T155gR3Fo3ilVaqparLsVA==} + "@types/livereload@0.9.5": + resolution: + { integrity: sha512-2RXcRKdivPmn67pwjytvHoRv46AeXaLYVUWA0zkel1XSAOH5i71G0KfUdE5u3g80T155gR3Fo3ilVaqparLsVA== } - '@types/lru-cache@5.1.1': - resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + "@types/lru-cache@5.1.1": + resolution: + { integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== } - '@types/luxon@3.7.1': - resolution: {integrity: sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg==} + "@types/luxon@3.7.1": + resolution: + { integrity: sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg== } - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + "@types/markdown-it@14.1.2": + resolution: + { integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== } - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + "@types/mdast@4.0.4": + resolution: + { integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== } - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + "@types/mdurl@2.0.0": + resolution: + { integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== } - '@types/mime-types@2.1.4': - resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} + "@types/mime-types@2.1.4": + resolution: + { integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w== } - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + "@types/mime@1.3.5": + resolution: + { integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== } - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + "@types/minimatch@3.0.5": + resolution: + { integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== } - '@types/minimatch@6.0.0': - resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} + "@types/minimatch@6.0.0": + resolution: + { integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA== } deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + "@types/minimist@1.2.5": + resolution: + { integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== } - '@types/mocha@10.0.10': - resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + "@types/mocha@10.0.10": + resolution: + { integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== } - '@types/mousetrap@1.6.15': - resolution: {integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==} + "@types/mousetrap@1.6.15": + resolution: + { integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw== } - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + "@types/ms@2.1.0": + resolution: + { integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== } - '@types/mysql@2.15.26': - resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} + "@types/mysql@2.15.26": + resolution: + { integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ== } - '@types/nlcst@2.0.3': - resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + "@types/nlcst@2.0.3": + resolution: + { integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA== } - '@types/node-forge@1.3.14': - resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} + "@types/node-forge@1.3.14": + resolution: + { integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== } - '@types/node@16.18.126': - resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} + "@types/node@16.18.126": + resolution: + { integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw== } - '@types/node@20.19.41': - resolution: {integrity: sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==} + "@types/node@20.19.43": + resolution: + { integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA== } - '@types/node@24.12.4': - resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + "@types/node@24.13.2": + resolution: + { integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA== } - '@types/node@25.9.1': - resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} + "@types/node@25.9.3": + resolution: + { integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg== } - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + "@types/normalize-package-data@2.4.4": + resolution: + { integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== } - '@types/optimize-css-assets-webpack-plugin@5.0.8': - resolution: {integrity: sha512-n134DdmRVXTy0KKbgg3A/G02r2XJKJicYzbJYhdIO8rdYdzoMv6GNHjog2Oq1ttaCOhsYcPIA6Sn7eFxEGCM1A==} + "@types/optimize-css-assets-webpack-plugin@5.0.8": + resolution: + { integrity: sha512-n134DdmRVXTy0KKbgg3A/G02r2XJKJicYzbJYhdIO8rdYdzoMv6GNHjog2Oq1ttaCOhsYcPIA6Sn7eFxEGCM1A== } - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + "@types/parse-json@4.0.2": + resolution: + { integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== } - '@types/parse5@6.0.3': - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + "@types/parse5@6.0.3": + resolution: + { integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== } - '@types/path-is-inside@1.0.3': - resolution: {integrity: sha512-xZoKJ7TQYIBc/ry4CHIV3M4V96zLMdTIGPT7Du+yYWevnfoaiW5bEPpkCL1RuEySw7k+JnlL1VcLZfyOg6Sp5g==} + "@types/path-is-inside@1.0.3": + resolution: + { integrity: sha512-xZoKJ7TQYIBc/ry4CHIV3M4V96zLMdTIGPT7Du+yYWevnfoaiW5bEPpkCL1RuEySw7k+JnlL1VcLZfyOg6Sp5g== } - '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + "@types/pg-pool@2.0.6": + resolution: + { integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ== } - '@types/pg@8.6.1': - resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + "@types/pg@8.6.1": + resolution: + { integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== } - '@types/prompts@2.4.9': - resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} + "@types/prompts@2.4.9": + resolution: + { integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA== } - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + "@types/prop-types@15.7.15": + resolution: + { integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== } - '@types/pug@2.0.10': - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} + "@types/pug@2.0.10": + resolution: + { integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA== } - '@types/q@0.0.32': - resolution: {integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==} + "@types/q@1.5.8": + resolution: + { integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== } - '@types/q@1.5.8': - resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} + "@types/qs@6.15.1": + resolution: + { integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw== } - '@types/qs@6.15.1': - resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} + "@types/qunit@2.19.14": + resolution: + { integrity: sha512-ou2RMtwyDnW1btrMnDMZeL6V5/yRRbuHKrRC6y8IuzDljjVzw6wPCVFb8p4qJD0NkUkf3BdZeJJIBzjK1BUUDQ== } - '@types/qunit@2.19.14': - resolution: {integrity: sha512-ou2RMtwyDnW1btrMnDMZeL6V5/yRRbuHKrRC6y8IuzDljjVzw6wPCVFb8p4qJD0NkUkf3BdZeJJIBzjK1BUUDQ==} + "@types/range-parser@1.2.7": + resolution: + { integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== } - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + "@types/react-dom@18.3.7": + resolution: + { integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== } peerDependencies: - '@types/react': ^18.0.0 + "@types/react": ^18.0.0 - '@types/react-dom@19.2.3': - resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + "@types/react-dom@19.2.3": + resolution: + { integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ== } peerDependencies: - '@types/react': ^19.2.0 - - '@types/react@18.3.29': - resolution: {integrity: sha512-ch0qJdr2JY0r04NXSprbK6TXOgnaJ1Tz23fm5W+z0/CBah6BSBc3n96h7K9GOtwh0HrilNWHIBzE1Ko4Dcw/Wg==} + "@types/react": ^19.2.0 - '@types/react@19.2.15': - resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} + "@types/react@18.3.31": + resolution: + { integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw== } - '@types/resolve@0.0.8': - resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} + "@types/react@19.2.17": + resolution: + { integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw== } - '@types/resolve@1.17.1': - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + "@types/resolve@0.0.8": + resolution: + { integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== } - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + "@types/resolve@1.17.1": + resolution: + { integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== } - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + "@types/resolve@1.20.2": + resolution: + { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + "@types/responselike@1.0.3": + resolution: + { integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== } - '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + "@types/retry@0.12.0": + resolution: + { integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== } - '@types/rimraf@2.0.5': - resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==} + "@types/retry@0.12.2": + resolution: + { integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== } - '@types/rsvp@4.0.9': - resolution: {integrity: sha512-F6vaN5mbxw2MBCu/AD9fSKwrhnto2pE77dyUsi415qz9IP9ni9ZOWXHxnXfsM4NW9UjW+it189jvvqnhv37Z7Q==} + "@types/rimraf@2.0.5": + resolution: + { integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g== } - '@types/selenium-webdriver@3.0.26': - resolution: {integrity: sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==} + "@types/rsvp@4.0.9": + resolution: + { integrity: sha512-F6vaN5mbxw2MBCu/AD9fSKwrhnto2pE77dyUsi415qz9IP9ni9ZOWXHxnXfsM4NW9UjW+it189jvvqnhv37Z7Q== } - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + "@types/semver@7.7.1": + resolution: + { integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== } - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + "@types/send@0.17.6": + resolution: + { integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== } - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + "@types/send@1.2.1": + resolution: + { integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ== } - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + "@types/serve-index@1.9.4": + resolution: + { integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== } - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + "@types/serve-static@1.15.10": + resolution: + { integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== } - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + "@types/serve-static@1.15.7": + resolution: + { integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== } - '@types/serve-static@2.2.0': - resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + "@types/serve-static@2.2.0": + resolution: + { integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== } - '@types/shimmer@1.2.0': - resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + "@types/shimmer@1.2.0": + resolution: + { integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg== } - '@types/sinon-chai@3.2.12': - resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} + "@types/sinon-chai@3.2.12": + resolution: + { integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ== } - '@types/sinon@17.0.4': - resolution: {integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==} + "@types/sinon@17.0.4": + resolution: + { integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew== } - '@types/sinon@21.0.1': - resolution: {integrity: sha512-5yoJSqLbjH8T9V2bksgRayuhpZy+723/z6wBOR+Soe4ZlXC0eW8Na71TeaZPUWDQvM7LYKa9UGFc6LRqxiR5fQ==} + "@types/sinon@21.0.1": + resolution: + { integrity: sha512-5yoJSqLbjH8T9V2bksgRayuhpZy+723/z6wBOR+Soe4ZlXC0eW8Na71TeaZPUWDQvM7LYKa9UGFc6LRqxiR5fQ== } - '@types/sinonjs__fake-timers@15.0.1': - resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==} + "@types/sinonjs__fake-timers@15.0.1": + resolution: + { integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w== } - '@types/slice-ansi@4.0.0': - resolution: {integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==} + "@types/slice-ansi@4.0.0": + resolution: + { integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ== } - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + "@types/sockjs@0.3.36": + resolution: + { integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== } - '@types/source-list-map@0.1.6': - resolution: {integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==} + "@types/source-list-map@0.1.6": + resolution: + { integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g== } - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + "@types/stack-utils@2.0.3": + resolution: + { integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== } - '@types/stylus@0.48.43': - resolution: {integrity: sha512-72dv/zdhuyXWVHUXG2VTPEQdOG+oen95/DNFx2aMFFaY6LoITI6PwEqf5x31JF49kp2w9hvUzkNfTGBIeg61LQ==} + "@types/stylus@0.48.43": + resolution: + { integrity: sha512-72dv/zdhuyXWVHUXG2VTPEQdOG+oen95/DNFx2aMFFaY6LoITI6PwEqf5x31JF49kp2w9hvUzkNfTGBIeg61LQ== } - '@types/symlink-or-copy@1.2.2': - resolution: {integrity: sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==} + "@types/symlink-or-copy@1.2.2": + resolution: + { integrity: sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA== } - '@types/tapable@1.0.12': - resolution: {integrity: sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==} + "@types/tapable@1.0.12": + resolution: + { integrity: sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== } - '@types/tedious@4.0.14': - resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + "@types/tedious@4.0.14": + resolution: + { integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw== } - '@types/terser-webpack-plugin@4.2.1': - resolution: {integrity: sha512-x688KsgQKJF8PPfv4qSvHQztdZNHLlWJdolN9/ptAGimHVy3rY+vHdfglQDFh1Z39h7eMWOd6fQ7ke3PKQcdyA==} + "@types/terser-webpack-plugin@4.2.1": + resolution: + { integrity: sha512-x688KsgQKJF8PPfv4qSvHQztdZNHLlWJdolN9/ptAGimHVy3rY+vHdfglQDFh1Z39h7eMWOd6fQ7ke3PKQcdyA== } - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + "@types/tough-cookie@4.0.5": + resolution: + { integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== } - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + "@types/triple-beam@1.3.5": + resolution: + { integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== } - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + "@types/trusted-types@2.0.7": + resolution: + { integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== } - '@types/uglify-js@3.17.5': - resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} + "@types/uglify-js@3.17.5": + resolution: + { integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ== } - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + "@types/unist@2.0.11": + resolution: + { integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== } - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + "@types/unist@3.0.3": + resolution: + { integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== } - '@types/web-bluetooth@0.0.21': - resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + "@types/web-bluetooth@0.0.21": + resolution: + { integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== } - '@types/webpack-bundle-analyzer@3.9.5': - resolution: {integrity: sha512-QlyDyX7rsOIJHASzXWlih8DT9fR+XCG9cwIV/4pKrtScdHv4XFshdEf/7iiqLqG0lzWcoBdzG8ylMHQ5XLNixw==} + "@types/webpack-bundle-analyzer@3.9.5": + resolution: + { integrity: sha512-QlyDyX7rsOIJHASzXWlih8DT9fR+XCG9cwIV/4pKrtScdHv4XFshdEf/7iiqLqG0lzWcoBdzG8ylMHQ5XLNixw== } - '@types/webpack-bundle-analyzer@4.7.0': - resolution: {integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==} + "@types/webpack-bundle-analyzer@4.7.0": + resolution: + { integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg== } - '@types/webpack-env@1.18.8': - resolution: {integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==} + "@types/webpack-env@1.18.8": + resolution: + { integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A== } - '@types/webpack-hot-middleware@2.25.5': - resolution: {integrity: sha512-/eRWWMgZteNzl17qLCRdRmtKPZuWy984b11Igz9+BAU5a99Hc2AJinnMohMPVahGRSHby4XwsnjlgIt9m0Ce3g==} + "@types/webpack-hot-middleware@2.25.5": + resolution: + { integrity: sha512-/eRWWMgZteNzl17qLCRdRmtKPZuWy984b11Igz9+BAU5a99Hc2AJinnMohMPVahGRSHby4XwsnjlgIt9m0Ce3g== } - '@types/webpack-sources@3.2.3': - resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} + "@types/webpack-sources@3.2.3": + resolution: + { integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw== } - '@types/webpack@4.41.40': - resolution: {integrity: sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==} + "@types/webpack@4.41.40": + resolution: + { integrity: sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw== } - '@types/whatwg-url@6.4.0': - resolution: {integrity: sha512-tonhlcbQ2eho09am6RHnHOgvtDfDYINd5rgxD+2YSkKENooVCFsWizJz139MQW/PV8FfClyKrNe9ZbdHrSCxGg==} + "@types/whatwg-url@6.4.0": + resolution: + { integrity: sha512-tonhlcbQ2eho09am6RHnHOgvtDfDYINd5rgxD+2YSkKENooVCFsWizJz139MQW/PV8FfClyKrNe9ZbdHrSCxGg== } - '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + "@types/ws@7.4.7": + resolution: + { integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== } - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + "@types/ws@8.18.1": + resolution: + { integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== } - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + "@types/yargs-parser@21.0.3": + resolution: + { integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== } - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + "@types/yargs@17.0.35": + resolution: + { integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== } - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + "@types/yauzl@2.10.3": + resolution: + { integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== } - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/eslint-plugin@6.21.0": + resolution: + { integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.58.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/eslint-plugin@8.60.0': - resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/eslint-plugin@8.61.1": + resolution: + { integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@typescript-eslint/parser': ^8.60.0 + "@typescript-eslint/parser": ^8.61.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/parser@6.21.0": + resolution: + { integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/parser@8.61.1": + resolution: + { integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/parser@8.60.0': - resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/project-service@8.56.1": + resolution: + { integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.0.0" - '@typescript-eslint/project-service@8.60.0': - resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/project-service@8.61.1": + resolution: + { integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/scope-manager@6.21.0": + resolution: + { integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== } + engines: { node: ^16.0.0 || >=18.0.0 } - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/scope-manager@8.56.1": + resolution: + { integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/scope-manager@8.60.0': - resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/scope-manager@8.61.1": + resolution: + { integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/tsconfig-utils@8.56.1": + resolution: + { integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: ">=4.8.4 <6.0.0" - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/tsconfig-utils@8.61.1": + resolution: + { integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/tsconfig-utils@8.60.0': - resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/type-utils@6.21.0": + resolution: + { integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/type-utils@8.61.1": + resolution: + { integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.60.0': - resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.60.0': - resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/types@6.21.0": + resolution: + { integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@typescript-eslint/types@8.56.1": + resolution: + { integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/types@8.61.0": + resolution: + { integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/types@8.61.1": + resolution: + { integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/typescript-estree@6.21.0": + resolution: + { integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/typescript-estree@8.56.1": + resolution: + { integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: ">=4.8.4 <6.0.0" - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/typescript-estree@8.61.1": + resolution: + { integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/typescript-estree@8.60.0': - resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/utils@6.21.0": + resolution: + { integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/utils@8.56.1": + resolution: + { integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.0.0" - '@typescript-eslint/utils@8.60.0': - resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/utils@8.61.1": + resolution: + { integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.1.0" - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/visitor-keys@6.21.0": + resolution: + { integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== } + engines: { node: ^16.0.0 || >=18.0.0 } - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/visitor-keys@8.56.1": + resolution: + { integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@typescript-eslint/visitor-keys@8.61.1": + resolution: + { integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/visitor-keys@8.60.0': - resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@ungap/structured-clone@1.3.1": + resolution: + { integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ== } - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} - - '@unhead/vue@2.1.15': - resolution: {integrity: sha512-SSByXfEjhzPn8gXdEdgpYqpLMPSkLUH2HVE0GxZfOtNsJ0GgOHQs0g9T67ZZ1z0kTELLKdtOtYrzrbv9+ffF7g==} + "@unhead/vue@2.1.15": + resolution: + { integrity: sha512-SSByXfEjhzPn8gXdEdgpYqpLMPSkLUH2HVE0GxZfOtNsJ0GgOHQs0g9T67ZZ1z0kTELLKdtOtYrzrbv9+ffF7g== } peerDependencies: - vue: '>=3.5.18' + vue: ">=3.5.18" - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + "@unrs/resolver-binding-android-arm-eabi@1.12.2": + resolution: + { integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w== } cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.12.2': - resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + "@unrs/resolver-binding-android-arm64@1.12.2": + resolution: + { integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ== } cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.12.2': - resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + "@unrs/resolver-binding-darwin-arm64@1.12.2": + resolution: + { integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w== } cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.12.2': - resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + "@unrs/resolver-binding-darwin-x64@1.12.2": + resolution: + { integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA== } cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.12.2': - resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + "@unrs/resolver-binding-freebsd-x64@1.12.2": + resolution: + { integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg== } cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + "@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2": + resolution: + { integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A== } cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + "@unrs/resolver-binding-linux-arm-musleabihf@1.12.2": + resolution: + { integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g== } cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + "@unrs/resolver-binding-linux-arm64-gnu@1.12.2": + resolution: + { integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg== } cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + "@unrs/resolver-binding-linux-arm64-musl@1.12.2": + resolution: + { integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA== } cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + "@unrs/resolver-binding-linux-loong64-gnu@1.12.2": + resolution: + { integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q== } cpu: [loong64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + "@unrs/resolver-binding-linux-loong64-musl@1.12.2": + resolution: + { integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew== } cpu: [loong64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + "@unrs/resolver-binding-linux-ppc64-gnu@1.12.2": + resolution: + { integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg== } cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + "@unrs/resolver-binding-linux-riscv64-gnu@1.12.2": + resolution: + { integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A== } cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + "@unrs/resolver-binding-linux-riscv64-musl@1.12.2": + resolution: + { integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w== } cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + "@unrs/resolver-binding-linux-s390x-gnu@1.12.2": + resolution: + { integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw== } cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + "@unrs/resolver-binding-linux-x64-gnu@1.12.2": + resolution: + { integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ== } cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + "@unrs/resolver-binding-linux-x64-musl@1.12.2": + resolution: + { integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A== } cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + "@unrs/resolver-binding-openharmony-arm64@1.12.2": + resolution: + { integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ== } cpu: [arm64] os: [openharmony] - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} - engines: {node: '>=14.0.0'} + "@unrs/resolver-binding-wasm32-wasi@1.12.2": + resolution: + { integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A== } + engines: { node: ">=14.0.0" } cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + "@unrs/resolver-binding-win32-arm64-msvc@1.12.2": + resolution: + { integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g== } cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + "@unrs/resolver-binding-win32-ia32-msvc@1.12.2": + resolution: + { integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g== } cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + "@unrs/resolver-binding-win32-x64-msvc@1.12.2": + resolution: + { integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA== } cpu: [x64] os: [win32] - '@use-gesture/core@10.3.1': - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} + "@use-gesture/core@10.3.1": + resolution: + { integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw== } - '@use-gesture/react@10.3.1': - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} + "@use-gesture/react@10.3.1": + resolution: + { integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g== } peerDependencies: - react: '>= 16.8.0' + react: ">= 16.8.0" - '@vercel/nft@1.5.0': - resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} - engines: {node: '>=20'} + "@vercel/nft@1.10.2": + resolution: + { integrity: sha512-w+WyX5Ulmj4dtTZrxaulqrjaLZHSbnPzx75SJsTNYmotKsqn1JlLnDJa+lz5hn90HJofhl/2MAtw0mCrgM3qYw== } + engines: { node: ">=20" } hasBin: true - '@vitejs/plugin-basic-ssl@2.1.4': - resolution: {integrity: sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + "@vitejs/plugin-basic-ssl@2.3.0": + resolution: + { integrity: sha512-bdyo8rB3NnQbikdMpHaML9Z1OZPBu6fFOBo+OtxsBlvMJtysWskmBcnbIDhUqgC8tcxNv/a+BcV5U+2nQMm1OQ== } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } peerDependencies: - vite: ^6.0.0 || ^7.0.0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@vitejs/plugin-react@6.0.2': - resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@vitejs/plugin-react@6.0.2": + resolution: + { integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg== } + engines: { node: ^20.19.0 || >=22.12.0 } peerDependencies: - '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + "@rolldown/plugin-babel": ^0.1.7 || ^0.2.0 babel-plugin-react-compiler: ^1.0.0 vite: ^8.0.0 peerDependenciesMeta: - '@rolldown/plugin-babel': + "@rolldown/plugin-babel": optional: true babel-plugin-react-compiler: optional: true - '@vitejs/plugin-vue-jsx@5.1.5': - resolution: {integrity: sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==} - engines: {node: ^20.19.0 || >=22.12.0} + "@vitejs/plugin-vue-jsx@5.1.5": + resolution: + { integrity: sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA== } + engines: { node: ^20.19.0 || >=22.12.0 } peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vue: ^3.0.0 - '@vitejs/plugin-vue2@2.3.4': - resolution: {integrity: sha512-LgqtRRedJb1KdmgcllwGX0gtlPvOvtR6pITXmqxGwQhBZaAysg0Hd7wvj3sjCsj4+PENWsqS7O+ceYSOgJ+H9g==} - engines: {node: ^14.18.0 || >= 16.0.0} + "@vitejs/plugin-vue2@2.3.4": + resolution: + { integrity: sha512-LgqtRRedJb1KdmgcllwGX0gtlPvOvtR6pITXmqxGwQhBZaAysg0Hd7wvj3sjCsj4+PENWsqS7O+ceYSOgJ+H9g== } + engines: { node: ^14.18.0 || >= 16.0.0 } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 vue: ^2.7.0-0 - '@vitejs/plugin-vue@5.2.4': - resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} - engines: {node: ^18.0.0 || >=20.0.0} + "@vitejs/plugin-vue@5.2.4": + resolution: + { integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== } + engines: { node: ^18.0.0 || >=20.0.0 } peerDependencies: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitejs/plugin-vue@6.0.7': - resolution: {integrity: sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==} - engines: {node: ^20.19.0 || >=22.12.0} + "@vitejs/plugin-vue@6.0.7": + resolution: + { integrity: sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg== } + engines: { node: ^20.19.0 || >=22.12.0 } peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vue: ^3.2.25 - '@vitest/coverage-v8@4.1.7': - resolution: {integrity: sha512-qsYPeXc5Q9dFLd1i8Ap+Bx8sQgcp+rFVQo4R0dDsWNBzl26ldVF1qOO+RL24K7FDrR6pA+50XedRLSoSG24bVQ==} + "@vitest/coverage-v8@4.1.9": + resolution: + { integrity: sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g== } peerDependencies: - '@vitest/browser': 4.1.7 - vitest: 4.1.7 + "@vitest/browser": 4.1.9 + vitest: 4.1.9 peerDependenciesMeta: - '@vitest/browser': + "@vitest/browser": optional: true - '@vitest/expect@1.6.1': - resolution: {integrity: sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==} + "@vitest/expect@4.1.7": + resolution: + { integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w== } + + "@vitest/expect@4.1.9": + resolution: + { integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA== } - '@vitest/expect@4.1.7': - resolution: {integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==} + "@vitest/mocker@4.1.7": + resolution: + { integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA== } + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@vitest/mocker@4.1.7': - resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==} + "@vitest/mocker@4.1.9": + resolution: + { integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw== } peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -23179,117 +25878,153 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.7': - resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==} + "@vitest/pretty-format@4.1.7": + resolution: + { integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw== } + + "@vitest/pretty-format@4.1.9": + resolution: + { integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A== } - '@vitest/runner@1.6.1': - resolution: {integrity: sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==} + "@vitest/runner@4.1.7": + resolution: + { integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw== } - '@vitest/runner@4.1.7': - resolution: {integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==} + "@vitest/runner@4.1.9": + resolution: + { integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg== } - '@vitest/snapshot@1.6.1': - resolution: {integrity: sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==} + "@vitest/snapshot@4.1.7": + resolution: + { integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw== } - '@vitest/snapshot@4.1.7': - resolution: {integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==} + "@vitest/snapshot@4.1.9": + resolution: + { integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA== } - '@vitest/spy@1.6.1': - resolution: {integrity: sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==} + "@vitest/spy@4.1.7": + resolution: + { integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q== } - '@vitest/spy@4.1.7': - resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==} + "@vitest/spy@4.1.9": + resolution: + { integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA== } - '@vitest/ui@4.1.7': - resolution: {integrity: sha512-TP6utB2yX6rsJNVRo2qAlsi48i1YwFTrLV2tnTtWqJaYX7m4lRCCLirZBjU6xC5m0RsPHr+L2+N+eIPhgEzFfw==} + "@vitest/ui@4.1.9": + resolution: + { integrity: sha512-U/cRvtqfEPj27FI1n9cyUvi4vXXdcLhjJiI+InYKdk8hP4VrS6RXOjGL7rfFaeBc37iRKANsR6eEzIoC7lmgBQ== } peerDependencies: - vitest: 4.1.7 + vitest: 4.1.9 - '@vitest/utils@1.6.1': - resolution: {integrity: sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==} + "@vitest/utils@4.1.7": + resolution: + { integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw== } - '@vitest/utils@4.1.7': - resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==} + "@vitest/utils@4.1.9": + resolution: + { integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA== } - '@volar/kit@2.4.28': - resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} + "@volar/kit@2.4.28": + resolution: + { integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg== } peerDependencies: - typescript: '*' + typescript: "*" - '@volar/language-core@2.4.28': - resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} + "@volar/language-core@2.4.28": + resolution: + { integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ== } - '@volar/language-server@2.4.28': - resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==} + "@volar/language-server@2.4.28": + resolution: + { integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw== } - '@volar/language-service@2.4.28': - resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==} + "@volar/language-service@2.4.28": + resolution: + { integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw== } - '@volar/source-map@2.4.28': - resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} + "@volar/source-map@2.4.28": + resolution: + { integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ== } - '@volar/typescript@2.4.28': - resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + "@volar/typescript@2.4.28": + resolution: + { integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw== } - '@vscode/emmet-helper@2.11.0': - resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} + "@vscode/emmet-helper@2.11.0": + resolution: + { integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw== } - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + "@vscode/l10n@0.0.18": + resolution: + { integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ== } - '@vue-macros/common@3.1.2': - resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} - engines: {node: '>=20.19.0'} + "@vscode/web-custom-data@0.4.13": + resolution: + { integrity: sha512-2ZUIRfhofZ/npLlf872EBnPmn27Kt4M2UssmQIfnJvgGgMYZJ5fvtHEDnttBBf2hnVtBgNCqZMVHJA+wsFVqTA== } + + "@vue-macros/common@3.1.2": + resolution: + { integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng== } + engines: { node: ">=20.19.0" } peerDependencies: vue: ^2.7.0 || ^3.2.25 peerDependenciesMeta: vue: optional: true - '@vue/babel-helper-vue-jsx-merge-props@1.4.0': - resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==} + "@vue/babel-helper-vue-jsx-merge-props@1.4.0": + resolution: + { integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA== } - '@vue/babel-helper-vue-transform-on@1.5.0': - resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + "@vue/babel-helper-vue-transform-on@1.5.0": + resolution: + { integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA== } - '@vue/babel-helper-vue-transform-on@2.0.1': - resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==} + "@vue/babel-helper-vue-transform-on@2.0.1": + resolution: + { integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA== } - '@vue/babel-plugin-jsx@1.5.0': - resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + "@vue/babel-plugin-jsx@1.5.0": + resolution: + { integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true - '@vue/babel-plugin-jsx@2.0.1': - resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==} + "@vue/babel-plugin-jsx@2.0.1": + resolution: + { integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true - '@vue/babel-plugin-resolve-type@1.5.0': - resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + "@vue/babel-plugin-resolve-type@1.5.0": + resolution: + { integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-plugin-resolve-type@2.0.1': - resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==} + "@vue/babel-plugin-resolve-type@2.0.1": + resolution: + { integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-plugin-transform-vue-jsx@1.4.0': - resolution: {integrity: sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==} + "@vue/babel-plugin-transform-vue-jsx@1.4.0": + resolution: + { integrity: sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-preset-app@5.0.9': - resolution: {integrity: sha512-0rKOF4s/AhaRMJLybxOCgXfwtYhO3pwDSL/q/W8wRs1LzmHAc77FyTXWlun6VyKiSKwSdtH7CvOiWqq+DfofdA==} + "@vue/babel-preset-app@5.0.9": + resolution: + { integrity: sha512-0rKOF4s/AhaRMJLybxOCgXfwtYhO3pwDSL/q/W8wRs1LzmHAc77FyTXWlun6VyKiSKwSdtH7CvOiWqq+DfofdA== } peerDependencies: - '@babel/core': '*' + "@babel/core": "*" core-js: ^3 vue: ^2 || ^3.2.13 peerDependenciesMeta: @@ -23298,64 +26033,75 @@ packages: vue: optional: true - '@vue/babel-preset-jsx@1.4.0': - resolution: {integrity: sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==} + "@vue/babel-preset-jsx@1.4.0": + resolution: + { integrity: sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA== } peerDependencies: - '@babel/core': ^7.0.0-0 - vue: '*' + "@babel/core": ^7.0.0-0 + vue: "*" peerDependenciesMeta: vue: optional: true - '@vue/babel-sugar-composition-api-inject-h@1.4.0': - resolution: {integrity: sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==} + "@vue/babel-sugar-composition-api-inject-h@1.4.0": + resolution: + { integrity: sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-sugar-composition-api-render-instance@1.4.0': - resolution: {integrity: sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==} + "@vue/babel-sugar-composition-api-render-instance@1.4.0": + resolution: + { integrity: sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-sugar-functional-vue@1.4.0': - resolution: {integrity: sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==} + "@vue/babel-sugar-functional-vue@1.4.0": + resolution: + { integrity: sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-sugar-inject-h@1.4.0': - resolution: {integrity: sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==} + "@vue/babel-sugar-inject-h@1.4.0": + resolution: + { integrity: sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-sugar-v-model@1.4.0': - resolution: {integrity: sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==} + "@vue/babel-sugar-v-model@1.4.0": + resolution: + { integrity: sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/babel-sugar-v-on@1.4.0': - resolution: {integrity: sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==} + "@vue/babel-sugar-v-on@1.4.0": + resolution: + { integrity: sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@vue/cli-overlay@5.0.9': - resolution: {integrity: sha512-aBdZWrYKxLuFz1FDsk/muFD7GycrsW73Gi11yRc7R2W7Bm8mDRc9HKAI790gdg4NV+chkDFmfkegjg5iMDEpAA==} + "@vue/cli-overlay@5.0.9": + resolution: + { integrity: sha512-aBdZWrYKxLuFz1FDsk/muFD7GycrsW73Gi11yRc7R2W7Bm8mDRc9HKAI790gdg4NV+chkDFmfkegjg5iMDEpAA== } - '@vue/cli-plugin-babel@5.0.9': - resolution: {integrity: sha512-oDZt1Kfe4KGNtig3/3zFo2pIeDJij2uS0M6S+tAqQno4Zpla2D8Hk/AR5PrstUd/HmhHZYJoGyF78MOfj3SbWg==} + "@vue/cli-plugin-babel@5.0.9": + resolution: + { integrity: sha512-oDZt1Kfe4KGNtig3/3zFo2pIeDJij2uS0M6S+tAqQno4Zpla2D8Hk/AR5PrstUd/HmhHZYJoGyF78MOfj3SbWg== } peerDependencies: - '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 + "@vue/cli-service": ^3.0.0 || ^4.0.0 || ^5.0.0-0 - '@vue/cli-plugin-router@5.0.9': - resolution: {integrity: sha512-kopbO/8kIl5CAffwgptXEwV509i+M0FfwW4sSkgQ2RzpxOYBjQZvp+096mjZfFcWKSmryNP/ri/Mnu78vmhlhw==} + "@vue/cli-plugin-router@5.0.9": + resolution: + { integrity: sha512-kopbO/8kIl5CAffwgptXEwV509i+M0FfwW4sSkgQ2RzpxOYBjQZvp+096mjZfFcWKSmryNP/ri/Mnu78vmhlhw== } peerDependencies: - '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 + "@vue/cli-service": ^3.0.0 || ^4.0.0 || ^5.0.0-0 - '@vue/cli-plugin-typescript@5.0.9': - resolution: {integrity: sha512-68S9rtpLMZLOIjQ9UaLSPupiJlE6ySO68kDVraIkqeQNi0qfcnVOlXTsDd4UnobKv+v+qHnt593+8bt3mjXiyA==} + "@vue/cli-plugin-typescript@5.0.9": + resolution: + { integrity: sha512-68S9rtpLMZLOIjQ9UaLSPupiJlE6ySO68kDVraIkqeQNi0qfcnVOlXTsDd4UnobKv+v+qHnt593+8bt3mjXiyA== } peerDependencies: - '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 + "@vue/cli-service": ^3.0.0 || ^4.0.0 || ^5.0.0-0 cache-loader: ^4.1.0 - typescript: '>=2' + typescript: ">=2" vue: ^2 || ^3.2.13 vue-template-compiler: ^2.0.0 peerDependenciesMeta: @@ -23364,24 +26110,26 @@ packages: vue-template-compiler: optional: true - '@vue/cli-plugin-vuex@5.0.9': - resolution: {integrity: sha512-AQhgGNFVd4Pu2crvS0a+hRckgrJv07gzOASdbLd3I72wkT43dd01MLRp8IBRRsu92t3MXenW86AZUCbQBz3//A==} + "@vue/cli-plugin-vuex@5.0.9": + resolution: + { integrity: sha512-AQhgGNFVd4Pu2crvS0a+hRckgrJv07gzOASdbLd3I72wkT43dd01MLRp8IBRRsu92t3MXenW86AZUCbQBz3//A== } peerDependencies: - '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 + "@vue/cli-service": ^3.0.0 || ^4.0.0 || ^5.0.0-0 - '@vue/cli-service@5.0.9': - resolution: {integrity: sha512-yTX7GVyM19tEbd+y5/gA6MkVKA6K61nVYHYAivD61Hx6odVFmQsaC3/R3cWAHM1P5oVKCevBbumPljbT+tFG2w==} - engines: {node: ^12.0.0 || >= 14.0.0} + "@vue/cli-service@5.0.9": + resolution: + { integrity: sha512-yTX7GVyM19tEbd+y5/gA6MkVKA6K61nVYHYAivD61Hx6odVFmQsaC3/R3cWAHM1P5oVKCevBbumPljbT+tFG2w== } + engines: { node: ^12.0.0 || >= 14.0.0 } hasBin: true peerDependencies: - cache-loader: '*' - less-loader: '*' - pug-plain-loader: '*' - raw-loader: '*' - sass-loader: '*' - stylus-loader: '*' + cache-loader: "*" + less-loader: "*" + pug-plain-loader: "*" + raw-loader: "*" + sass-loader: "*" + stylus-loader: "*" vue-template-compiler: ^2.0.0 - webpack-sources: '*' + webpack-sources: "*" peerDependenciesMeta: cache-loader: optional: true @@ -23400,103 +26148,118 @@ packages: webpack-sources: optional: true - '@vue/cli-shared-utils@5.0.9': - resolution: {integrity: sha512-lf4KykiG8j9KwvNVi7fKtASmHuLsxCcCsflVU2b2CHMRuR4weOIV3zuuCrjWKjk0APn/MHJhgCjJGzHMbTtd5w==} + "@vue/cli-shared-utils@5.0.9": + resolution: + { integrity: sha512-lf4KykiG8j9KwvNVi7fKtASmHuLsxCcCsflVU2b2CHMRuR4weOIV3zuuCrjWKjk0APn/MHJhgCjJGzHMbTtd5w== } - '@vue/compiler-core@3.5.34': - resolution: {integrity: sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==} + "@vue/compiler-core@3.5.38": + resolution: + { integrity: sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ== } - '@vue/compiler-dom@3.5.34': - resolution: {integrity: sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==} + "@vue/compiler-dom@3.5.38": + resolution: + { integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw== } - '@vue/compiler-sfc@2.7.16': - resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} + "@vue/compiler-sfc@2.7.16": + resolution: + { integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg== } - '@vue/compiler-sfc@3.5.34': - resolution: {integrity: sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==} + "@vue/compiler-sfc@3.5.38": + resolution: + { integrity: sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg== } - '@vue/compiler-ssr@3.5.34': - resolution: {integrity: sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==} + "@vue/compiler-ssr@3.5.38": + resolution: + { integrity: sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA== } - '@vue/component-compiler-utils@3.3.0': - resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==} + "@vue/component-compiler-utils@3.3.0": + resolution: + { integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== } - '@vue/component-compiler@4.2.4': - resolution: {integrity: sha512-tFGw3h3+nxiqnyborwWQ+rUgKAwSFl0Sdg+BCZkWTyFfkEF5fqunTNoklEUDdtRQMmVqsajn1pOZdm0zh4Uicw==} - peerDependencies: - postcss: '>=6.0' - vue-template-compiler: '*' + "@vue/devtools-api@6.6.4": + resolution: + { integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== } - '@vue/devtools-api@6.6.4': - resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + "@vue/devtools-api@7.7.9": + resolution: + { integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g== } - '@vue/devtools-api@7.7.9': - resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + "@vue/devtools-api@8.1.3": + resolution: + { integrity: sha512-73NMCvxXh8Hyozc/jiwqTFWVcCMyi11U1zmrq4DoukQJnuo8JHt6FsNu4HdeUDa8SpIp5vb7Q22GWgIq0efsXg== } - '@vue/devtools-api@8.1.2': - resolution: {integrity: sha512-vA0O112YqyDuNA1s7Yb2gCgToQ/OxOWiFDO5ThLCcDy0ldHnSd1dUTaSYhOldbqoNgumE4dxtGAoAaSUKUD1Zg==} - - '@vue/devtools-core@8.1.2': - resolution: {integrity: sha512-ZGGyaSBP4/+bN2Nd9ZHNYAVDRIzMw1rv2RyXWtyZlo6mQal+IDmTvKY4V+DjAEBhaXt30mHmsgYp1yXJ/2tIWg==} + "@vue/devtools-core@8.1.3": + resolution: + { integrity: sha512-xezkv5/CPH/o5C8PE2Len9MnTJMsctYYQbKbbUiNOJpKd+fRHj27nKDb/sbtYI8NSQduegeQhCJGKRgAiOV6Uw== } peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.7.9': - resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + "@vue/devtools-kit@7.7.9": + resolution: + { integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA== } - '@vue/devtools-kit@8.1.2': - resolution: {integrity: sha512-f75/upc+GCyjXErpgPGz4582ujS0L/adAltGy+tqXMGUJpgAcfGr6CxnnhpZY8BHuMYt6KpbF8uaFrrQG66rGQ==} + "@vue/devtools-kit@8.1.3": + resolution: + { integrity: sha512-cRn7GXiCQkMYU2Z3h3pM4YO/ndbx9FY1yLDAqIqPLcmIq4H6zAOJHein6tvZU3AfPwgrodqLiPBEF+YQaS8AxA== } - '@vue/devtools-shared@7.7.9': - resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + "@vue/devtools-shared@7.7.9": + resolution: + { integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA== } - '@vue/devtools-shared@8.1.2': - resolution: {integrity: sha512-X9RyVFYAdkBe4IUf5v48TxBF/6QPmF8CmWrDAjXzfUHrgQ/HGfTC1A6TqgXqZ03ye66l3AD51BAGD69IvKM9sw==} + "@vue/devtools-shared@8.1.3": + resolution: + { integrity: sha512-CM3uIPL+v+lrJUk33+pxspYo0MhuMWlCvf7zC9fybifvCPyM2jUbYRPwoYEJgYbwRqPikm5HozbUhp60MF2QuA== } - '@vue/eslint-config-prettier@10.2.0': - resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==} + "@vue/eslint-config-prettier@10.2.0": + resolution: + { integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw== } peerDependencies: - eslint: '>= 8.21.0' - prettier: '>= 3.0.0' + eslint: ">= 8.21.0" + prettier: ">= 3.0.0" - '@vue/eslint-config-typescript@14.7.0': - resolution: {integrity: sha512-iegbMINVc+seZ/QxtzWiOBozctrHiF2WvGedruu2EbLujg9VuU0FQiNcN2z1ycuaoKKpF4m2qzB5HDEMKbxtIg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + "@vue/eslint-config-typescript@14.8.0": + resolution: + { integrity: sha512-yIquzhXH7ZsrwSSm+rYvoGCRY6wcuF4qBi76e0l7hHLq7YU0f9aC+RcR5fL+XJNfmBZxgX5cVl4sppt4x7ZCBg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^9.10.0 || ^10.0.0 eslint-plugin-vue: ^9.28.0 || ^10.0.0 - typescript: '>=4.8.4' + typescript: ">=4.8.4" peerDependenciesMeta: typescript: optional: true - '@vue/language-core@3.3.1': - resolution: {integrity: sha512-NP8g6V7x81NVOXbLupUvYY6i6LqUkjkVowe2epRedmpgaFCOdjgWHE/rQBvEJ4r7koAYODIjGeBWEdt6n7jYXQ==} - - '@vue/language-core@3.3.2': - resolution: {integrity: sha512-CLwjSfHlPLhjd2qhuS3tTFtnOIWHXAM5u4X1DxmzlQ8j5bmOYlKCsSusOP7jCRJnlVg0mCTQtHU3vwFvopZGoQ==} + "@vue/language-core@3.3.5": + resolution: + { integrity: sha512-UkKu5nhX89fg4VhlG/FOeI10G3cj/7radKT/cy9BT4Q9qJmJlSTAc/dP63Xqs29aypN4f39xUV6PsLNk/dcD6g== } - '@vue/reactivity@3.5.34': - resolution: {integrity: sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==} + "@vue/reactivity@3.5.38": + resolution: + { integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ== } - '@vue/runtime-core@3.5.34': - resolution: {integrity: sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==} + "@vue/runtime-core@3.5.38": + resolution: + { integrity: sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw== } - '@vue/runtime-dom@3.5.34': - resolution: {integrity: sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==} + "@vue/runtime-dom@3.5.38": + resolution: + { integrity: sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A== } - '@vue/server-renderer@3.5.34': - resolution: {integrity: sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==} + "@vue/server-renderer@3.5.38": + resolution: + { integrity: sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw== } peerDependencies: - vue: 3.5.34 + vue: 3.5.38 - '@vue/shared@3.5.34': - resolution: {integrity: sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==} + "@vue/shared@3.5.38": + resolution: + { integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug== } - '@vue/tsconfig@0.9.1': - resolution: {integrity: sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w==} + "@vue/tsconfig@0.9.1": + resolution: + { integrity: sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w== } peerDependencies: - typescript: '>= 5.8' + typescript: ">= 5.8" vue: ^3.4.0 peerDependenciesMeta: typescript: @@ -23504,14 +26267,17 @@ packages: vue: optional: true - '@vue/web-component-wrapper@1.3.0': - resolution: {integrity: sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==} + "@vue/web-component-wrapper@1.3.0": + resolution: + { integrity: sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== } - '@vueuse/core@12.8.2': - resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + "@vueuse/core@12.8.2": + resolution: + { integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ== } - '@vueuse/integrations@12.8.2': - resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} + "@vueuse/integrations@12.8.2": + resolution: + { integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g== } peerDependencies: async-validator: ^4 axios: ^1 @@ -23551,461 +26317,552 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@12.8.2': - resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} + "@vueuse/metadata@12.8.2": + resolution: + { integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A== } - '@vueuse/shared@12.8.2': - resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} + "@vueuse/shared@12.8.2": + resolution: + { integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w== } - '@web/browser-logs@0.4.1': - resolution: {integrity: sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw==} - engines: {node: '>=18.0.0'} + "@web/browser-logs@0.4.1": + resolution: + { integrity: sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw== } + engines: { node: ">=18.0.0" } - '@web/config-loader@0.1.3': - resolution: {integrity: sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==} - engines: {node: '>=10.0.0'} + "@web/config-loader@0.3.3": + resolution: + { integrity: sha512-ilzeQzrPpPLWZhzFCV+4doxKDGm7oKVfdKpW9wiUNVgive34NSzCw+WzXTvjE4Jgr5CkyTDIObEmMrqQEjhT0g== } + engines: { node: ">=18.0.0" } - '@web/dev-server-core@0.4.1': - resolution: {integrity: sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==} - engines: {node: '>=10.0.0'} + "@web/dev-server-core@0.7.5": + resolution: + { integrity: sha512-Da65zsiN6iZPMRuj4Oa6YPwvsmZmo5gtPWhW2lx3GTUf5CAEapjVpZVlUXnKPL7M7zRuk72jSsIl8lo+XpTCtw== } + engines: { node: ">=18.0.0" } - '@web/dev-server-core@0.7.5': - resolution: {integrity: sha512-Da65zsiN6iZPMRuj4Oa6YPwvsmZmo5gtPWhW2lx3GTUf5CAEapjVpZVlUXnKPL7M7zRuk72jSsIl8lo+XpTCtw==} - engines: {node: '>=18.0.0'} + "@web/dev-server-rollup@0.6.4": + resolution: + { integrity: sha512-sJZfTGCCrdku5xYnQQG51odGI092hKY9YFM0X3Z0tRY3iXKXcYRaLZrErw5KfCxr6g0JRuhe4BBhqXTA5Q2I3Q== } + engines: { node: ">=18.0.0" } - '@web/dev-server-rollup@0.4.1': - resolution: {integrity: sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==} - engines: {node: '>=10.0.0'} - - '@web/dev-server@0.1.38': - resolution: {integrity: sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==} - engines: {node: '>=10.0.0'} + "@web/dev-server@0.4.6": + resolution: + { integrity: sha512-jj/1bcElAy5EZet8m2CcUdzxT+CRvUjIXGh8Lt7vxtthkN9PzY9wlhWx/9WOs5iwlnG1oj0VGo6f/zvbPO0s9w== } + engines: { node: ">=18.0.0" } hasBin: true - '@web/parse5-utils@1.3.1': - resolution: {integrity: sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==} - engines: {node: '>=10.0.0'} - - '@web/parse5-utils@2.1.1': - resolution: {integrity: sha512-7rBVZEMGfrq2iPcAEwJ0KSNSvmA2a6jT2CK8/gyIOHgn4reg7bSSRbzyWIEYWyIkeRoYEukX/aW+nAeCgSSqhQ==} - engines: {node: '>=18.0.0'} + "@web/parse5-utils@2.1.1": + resolution: + { integrity: sha512-7rBVZEMGfrq2iPcAEwJ0KSNSvmA2a6jT2CK8/gyIOHgn4reg7bSSRbzyWIEYWyIkeRoYEukX/aW+nAeCgSSqhQ== } + engines: { node: ">=18.0.0" } - '@web/test-runner-commands@0.9.0': - resolution: {integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==} - engines: {node: '>=18.0.0'} + "@web/test-runner-commands@0.9.0": + resolution: + { integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg== } + engines: { node: ">=18.0.0" } - '@web/test-runner-core@0.13.4': - resolution: {integrity: sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg==} - engines: {node: '>=18.0.0'} + "@web/test-runner-core@0.13.4": + resolution: + { integrity: sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg== } + engines: { node: ">=18.0.0" } - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + "@webassemblyjs/ast@1.14.1": + resolution: + { integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== } - '@webassemblyjs/ast@1.9.0': - resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} + "@webassemblyjs/ast@1.9.0": + resolution: + { integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== } - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + "@webassemblyjs/floating-point-hex-parser@1.13.2": + resolution: + { integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== } - '@webassemblyjs/floating-point-hex-parser@1.9.0': - resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} + "@webassemblyjs/floating-point-hex-parser@1.9.0": + resolution: + { integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== } - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + "@webassemblyjs/helper-api-error@1.13.2": + resolution: + { integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== } - '@webassemblyjs/helper-api-error@1.9.0': - resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} + "@webassemblyjs/helper-api-error@1.9.0": + resolution: + { integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== } - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + "@webassemblyjs/helper-buffer@1.14.1": + resolution: + { integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== } - '@webassemblyjs/helper-buffer@1.9.0': - resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} + "@webassemblyjs/helper-buffer@1.9.0": + resolution: + { integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== } - '@webassemblyjs/helper-code-frame@1.9.0': - resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} + "@webassemblyjs/helper-code-frame@1.9.0": + resolution: + { integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== } - '@webassemblyjs/helper-fsm@1.9.0': - resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} + "@webassemblyjs/helper-fsm@1.9.0": + resolution: + { integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== } - '@webassemblyjs/helper-module-context@1.9.0': - resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} + "@webassemblyjs/helper-module-context@1.9.0": + resolution: + { integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== } + + "@webassemblyjs/helper-numbers@1.13.2": + resolution: + { integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== } - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + "@webassemblyjs/helper-wasm-bytecode@1.13.2": + resolution: + { integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== } - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + "@webassemblyjs/helper-wasm-bytecode@1.9.0": + resolution: + { integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== } - '@webassemblyjs/helper-wasm-bytecode@1.9.0': - resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} + "@webassemblyjs/helper-wasm-section@1.14.1": + resolution: + { integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== } - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + "@webassemblyjs/helper-wasm-section@1.9.0": + resolution: + { integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== } - '@webassemblyjs/helper-wasm-section@1.9.0': - resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} + "@webassemblyjs/ieee754@1.13.2": + resolution: + { integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== } - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + "@webassemblyjs/ieee754@1.9.0": + resolution: + { integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== } - '@webassemblyjs/ieee754@1.9.0': - resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} + "@webassemblyjs/leb128@1.13.2": + resolution: + { integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== } - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + "@webassemblyjs/leb128@1.9.0": + resolution: + { integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== } - '@webassemblyjs/leb128@1.9.0': - resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} + "@webassemblyjs/utf8@1.13.2": + resolution: + { integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== } - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + "@webassemblyjs/utf8@1.9.0": + resolution: + { integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== } - '@webassemblyjs/utf8@1.9.0': - resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} + "@webassemblyjs/wasm-edit@1.14.1": + resolution: + { integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== } - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + "@webassemblyjs/wasm-edit@1.9.0": + resolution: + { integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== } - '@webassemblyjs/wasm-edit@1.9.0': - resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} + "@webassemblyjs/wasm-gen@1.14.1": + resolution: + { integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== } - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + "@webassemblyjs/wasm-gen@1.9.0": + resolution: + { integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== } - '@webassemblyjs/wasm-gen@1.9.0': - resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} + "@webassemblyjs/wasm-opt@1.14.1": + resolution: + { integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== } - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + "@webassemblyjs/wasm-opt@1.9.0": + resolution: + { integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== } - '@webassemblyjs/wasm-opt@1.9.0': - resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} + "@webassemblyjs/wasm-parser@1.14.1": + resolution: + { integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== } - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + "@webassemblyjs/wasm-parser@1.9.0": + resolution: + { integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== } - '@webassemblyjs/wasm-parser@1.9.0': - resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} + "@webassemblyjs/wast-parser@1.9.0": + resolution: + { integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== } - '@webassemblyjs/wast-parser@1.9.0': - resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} + "@webassemblyjs/wast-printer@1.14.1": + resolution: + { integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== } - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + "@webassemblyjs/wast-printer@1.9.0": + resolution: + { integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== } - '@webassemblyjs/wast-printer@1.9.0': - resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} + "@webcomponents/shadycss@1.11.2": + resolution: + { integrity: sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw== } - '@webcomponents/shadycss@1.11.2': - resolution: {integrity: sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw==} + "@webcomponents/webcomponentsjs@2.8.0": + resolution: + { integrity: sha512-loGD63sacRzOzSJgQnB9ZAhaQGkN7wl2Zuw7tsphI5Isa0irijrRo6EnJii/GgjGefIFO8AIO7UivzRhFaEk9w== } - '@webcomponents/webcomponentsjs@2.8.0': - resolution: {integrity: sha512-loGD63sacRzOzSJgQnB9ZAhaQGkN7wl2Zuw7tsphI5Isa0irijrRo6EnJii/GgjGefIFO8AIO7UivzRhFaEk9w==} - - '@webpack-cli/configtest@2.1.1': - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} + "@webpack-cli/configtest@2.1.1": + resolution: + { integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== } + engines: { node: ">=14.15.0" } peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x - '@webpack-cli/info@2.0.2': - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} + "@webpack-cli/info@2.0.2": + resolution: + { integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== } + engines: { node: ">=14.15.0" } peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x - '@webpack-cli/serve@2.0.5': - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} + "@webpack-cli/serve@2.0.5": + resolution: + { integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== } + engines: { node: ">=14.15.0" } peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x - webpack-dev-server: '*' + webpack-dev-server: "*" peerDependenciesMeta: webpack-dev-server: optional: true - '@wordpress/a11y@4.46.0': - resolution: {integrity: sha512-9VKhQHB/TQHJciOtxbpJ5JPhxMHCOszcxs4eL27krFXMEp3fl4tzVy13r1LPuXg/yjZ9NpV3NY+Qwx4G0aW3Kw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/a11y@4.48.1": + resolution: + { integrity: sha512-BPU7wRoz2XRmP3ZgVtENPKS4iO5/+bKNid/xLrvD6cP1qMhIGowQsBNqmkP1V5+q71hQM/ID6tpFjeLhmogfPg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/autop@4.46.0': - resolution: {integrity: sha512-qAAd46EvbO5L9xx+YVP0lN48+A4n3C2jO4ckVP8/n8cEgFucCMlfyMKstqj7uOTBaA0YnmNZxJUkciCCV9FrLw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/autop@4.48.1": + resolution: + { integrity: sha512-vMOdHhXIv559fYsg72AnWACblxZdojIerVeWxlX7a/ptoZK8MjqA0ZVhFsHezTBqdfiFyoRtiRECSFYLXWlSZg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/babel-preset-default@8.46.0': - resolution: {integrity: sha512-HpjX32OkbSpNZkhVo2WdQuP1MkpVg24hVaq7uM5whDdYR88pSc5bfhJ1cNsWagYJQvuYFBf+YIBSvxref4ojXA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/babel-preset-default@8.48.1": + resolution: + { integrity: sha512-wC8l2sMR8XJO7ck4rHnYUm+287iN24CzsGejlw64hetRP2Oz/QeAXp2jbghRb4qW+2Ab6hLPtTEuJQlevvA1Yg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/base-styles@8.0.0': - resolution: {integrity: sha512-livtgwnvBm7xbpm/gaBxwtdZm3KCXq210UNsr48WA8TGfi/OfZ4oOzk4Mp4/ZHsq2baaXzhZ0iXjyR7oyaOTsw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/base-styles@10.0.1": + resolution: + { integrity: sha512-Kkayj4f6KzcMW2TFaahADE0aoDpYeqadIinvIp0hxY6+zn/uqK1Ml7x5idLZ/jbyzzbVlI31eid3HtblGY3+og== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/blob@4.46.0': - resolution: {integrity: sha512-TUu6k4SFPThT86ek/O87/aQfwKVYAGG9Gt14uvYPXPyLz90/KeFLr15v9waZV2luk2xCZACMIa4OdBHQlkL/aQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/blob@4.48.1": + resolution: + { integrity: sha512-iK3dtZu/UtnYpKfQ2aGZM2xrLXK5ff88QNU77XlraipaGV/C7zK2M0+sWY6cVL50TfMR7VX9prZ2XCpE5aRzSg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/block-editor@15.19.0': - resolution: {integrity: sha512-kpTug+xiBLnbuN143nG9aNNEON4wrJGY3vM+s9XlKaNXIm+EeuOMv53Mm9HUKEJYctyPsPMFbfK7nVANWzC2fQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/block-editor@15.21.1": + resolution: + { integrity: sha512-LCHp/NoYsR7MV0e7vPNBAgtjHqK3ST4VtduxF5nOgxl0K0zuyvDvanb14EQtY4KmR2Gjndgo72/aZ/kfdQbddg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/block-serialization-default-parser@5.46.0': - resolution: {integrity: sha512-j9AWXtuBbjntWWapDTZVyLmRVYOA1me3lqR+ugkN54HvNiyQaDw0tt6JfJYGFTWhJ8peU90G2TO+IiFf6YDKQQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/block-serialization-default-parser@5.48.1": + resolution: + { integrity: sha512-REsjN6tT2lXekrjuiu2O0+FYW13QHhy23j7C458zzSjpYcxROtl/T8AozOJYRvG9SkdC9Og3PkEP/9/nGC4IVw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/blocks@15.19.0': - resolution: {integrity: sha512-8tsKYt9uD8xU+G0o2MwHVYgPz60FhyE1eSNHx27YS20VxgZPzIWPTRnAB45wEyjQ2yMcN/9G8maim+B7geQ0Kg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/blocks@15.21.1": + resolution: + { integrity: sha512-9VOQGCuDbmyBEp7/+HNgLKscOJfrqMEV6LYpOjF+LehZ7RwolqR03UGuU+xLSPKSVZw0wvmA0SjTm3a2GBxwjg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/browserslist-config@6.46.0': - resolution: {integrity: sha512-FV/CN/Qjvu0Ts1h63w0xuZyhKzipyePMFGXPmbZawu+fHpib/2D/JyAHb0wVpOD4qz8XOfB8Tyi9iMPJzAI87w==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/browserslist-config@6.48.1": + resolution: + { integrity: sha512-Rbh//p4Ugzw2xoKhBurtRXp/UxKxPAAPrtFAYDAXyByxIjEbEzvngHAYdFPn1VcwNxxB9qsEnzIaiZrgn2E2Qg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/commands@1.46.0': - resolution: {integrity: sha512-Pzn9noMCkmFs+tRd5ghpkJy1iZtc0EfHU8XQTKoL2rtafs5Sxhsw08+85RNci/Uk7FZKhDTjKCgy7bxlyZ4EIQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/commands@1.48.1": + resolution: + { integrity: sha512-yFmQ2yB4tOWPqhO+tE8uYyFqcGwxtOJ9uc1yHYfH40oMls3p+TswktsdbBM2gEmoYxfD+d3Nhp/mXGS38pdTdw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/components@33.1.0': - resolution: {integrity: sha512-5nFqe2pk7ePIhJhz+nDNS8r1az5hIJrUycuYJzmL3KL9hYgDknAzJDHb6IUNlVcNDPgLUuxzC780YlVG5Bi0LQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/components@35.0.1": + resolution: + { integrity: sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/compose@7.46.0': - resolution: {integrity: sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/compose@8.1.1": + resolution: + { integrity: sha512-AEC9yOS5CuTk34F+oiWebhQrxgICnb/v/KScQBUVm6zbs1AMFtu5ku+Zk0A3YTD0tO/hNzXLbvsXhJdh1bGkRA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/data@10.46.0': - resolution: {integrity: sha512-vxOO2IEn+29eue9Pq7Mzsq1SipMAg0Rp0Oztz9LsgWQIF9yyylGlP3yHnFjEmJ4MonGSjzvpArlc7jWwkzutKg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/data@10.48.1": + resolution: + { integrity: sha512-74p4PiDLxS0SAd4tdkPEUF5rtHVtdRzoXExfhkZaumviE56tEceG07YbLjQWpZ+Vl1tZCvkyqLbMHK+Wj6ZerQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/dataviews@14.3.0': - resolution: {integrity: sha512-2fFSgyatDldjPb2gO+vLDwkbI2Jw+8zd/O0/BwLftQ5QhrrRtAqECFp+eYzcQ8Onh8OMhxq0n7tsaIHE/jWqJQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/dataviews@16.0.1": + resolution: + { integrity: sha512-OyDOPvtCIL0AV4wTGSrFHhBVEYwkBJvmfleSjXzGWc09u3BPIiefazoGN4GvtJPJbvieSyelXuVyN+JARIRUug== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/date@5.46.0': - resolution: {integrity: sha512-phbKy1siTFGwFet5hQzaSZJB1mMDIXflMLKj+oJ/mT/m9ughp3seFDPvKoL+UzukLxNJh3l5G5h1l9XQFfC2cA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/date@5.48.1": + resolution: + { integrity: sha512-SD6AzzmxtsrTbSkZFV6nklYzYgZFDuCxX41kxRmIQGTBNP0f4DvLjwlUCpLN/lHEerctx4XdkZAghvGOHOKvbg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/dependency-extraction-webpack-plugin@6.46.0': - resolution: {integrity: sha512-Lm2JFEI4NrcEQFdnIXK+CsUQGK/LTiRxrDY0ocpTLt5hhb3DJm3Ds2HFn8fa//H0U5B3FvO3XyGMHOUf9Q12Pg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/dependency-extraction-webpack-plugin@6.48.1": + resolution: + { integrity: sha512-mot0QEwrPhxmaCEzl/GzltbaUYkq92PmNnqIxm0sBSUxqXdWFeoAgkRCjrtHOcs480d8p5ETYL0Lyx7fBtOHMw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: webpack: ^5.0.0 - '@wordpress/deprecated@4.46.0': - resolution: {integrity: sha512-d4Dy9GeJ/VIORTgYKYXT026/hhpV6VOf3VUDj10f+QFoIJ86VMBrzV6KQn8KUVH4T3oH1MSpo/A5t8ttYFemsg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/dom-ready@4.46.0': - resolution: {integrity: sha512-CQ6KPaCkMzAmbxmR4E4Fu99ngyPpkP9VGaIFu0xUgx0ubkYOzcvEfEEPuyEV3n7PY2Jg/XWzBilgWCa8PmaxWw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/dom@4.46.0': - resolution: {integrity: sha512-XngkvNJpf0JnpZuOcsbBl/cTprfYQTfSykttIL4laXcFXfZe8rU3bGgv8K7AEoYigDwxfw3g/yMPi4fn195Kpw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/e2e-test-utils-playwright@1.46.0': - resolution: {integrity: sha512-Bls5BGRNda0Oo4biTZ/KIwO8iHBeovvfWNfrPXReIsrW1td1UqXw2Z9l0/LaP3euJZFNom2QExHCOba+8eN5lQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - peerDependencies: - '@playwright/test': '>=1' - '@types/node': ^20.17.10 - - '@wordpress/element@6.46.0': - resolution: {integrity: sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/escape-html@3.46.0': - resolution: {integrity: sha512-SzrVQwLQBZdaSStYVpTKeYqp97NABz1w551T8me3msDDsfhWWPhSZiZTNaGZ6iqUNfOX2uKyZsqXedvkqwLHqA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/eslint-plugin@25.2.0': - resolution: {integrity: sha512-h3Yz5Qzo1v53Rw9i8WBm68P6SFpVSeqWDohowpEeuIz2RC8Jg1CT5j49tVpSZXGNCQGSf3SaPLjXmiyxTZXkSw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - peerDependencies: - '@babel/core': '>=7' + "@wordpress/deprecated@4.48.1": + resolution: + { integrity: sha512-ZfJSCxWr4Ss5qGja9W7L6+8vcrbX0n+tKDe2TrYvTq6GiqEc+0MrajIl4vi/58jhceHbSze1ITX/ocC3Ed3NLg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/dom-ready@4.48.1": + resolution: + { integrity: sha512-EYd2H8cYSk8H3wSnTK1wTtuC+hOCmMmZrCEBWzgHevs1n3B9g0nwBafSiRWpzc0vA2vculkNNtlSfy3ByJ2hag== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/dom@4.48.1": + resolution: + { integrity: sha512-UmouS3KAAUf6q90adAM37FZ3Tq+w+5UfNVUEKRtZjzbH3gMZJTKmYXpG9dkYyLLmicXgOrcG1GQ0qTX91MjAuA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/e2e-test-utils-playwright@1.48.1": + resolution: + { integrity: sha512-jaBTZHZ0SG1MQ/Nb4GdaH7DMcieFp/ysYOoCodmhfoScFoWTI66/e8egPxU8cOs06gXnOYNPvJ9hnCaeCTz3ug== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + peerDependencies: + "@playwright/test": ">=1" + "@types/node": ^20.17.10 + + "@wordpress/element@8.0.1": + resolution: + { integrity: sha512-otYhxfm6ZKkcLCl/tI1rB70z6MVDvTL+RiPOWXi4qm0niJf4isSXCcB91ffj1gzJXKbEpszHfysIoU9L2gCSGQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/escape-html@3.48.1": + resolution: + { integrity: sha512-TQJK6sBcmMA5+xMjiAFuivcZ27wUgAfVCgB/fGf7YoxVC+BnCCIanAsHgpY0d4juGUK6LXzDEhU6ZgOpGkGqIQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/eslint-plugin@25.4.1": + resolution: + { integrity: sha512-snPU3xZ8U72+xwDobRx3cjjidb/BJH6i2LcY5zVs+n8FFksOTBkMvpr7tda78Eb/DfXAxVlanUbDkTs3PSl8Mg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + peerDependencies: + "@babel/core": ">=7" eslint: ^9.0.0 || ^10.0.0 - prettier: '>=3' - typescript: '>=5' + prettier: ">=3" + typescript: ">=5" peerDependenciesMeta: prettier: optional: true typescript: optional: true - '@wordpress/global-styles-engine@1.13.0': - resolution: {integrity: sha512-rOix+U4tAi3X9m0q82r7gQrDQ0uJzK/w5Pc9s7yawbWo5T7oW8FLor17VkTr5T75ZItV9OZshpAA0xELIdJZRw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/global-styles-engine@1.15.1": + resolution: + { integrity: sha512-jpMnDkAE1stcoSV19hyet0b2wySMz1kaplNivruKwUyQilkQRIhqlJFiEKBVt513m9I9CbEPA0WKcTpfqJxIMA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/hooks@4.46.0': - resolution: {integrity: sha512-fsKw4dmw4voIRoKc8t0XRREQlFvwj9XS/jTXvkh6mqRYCDpaEnrdB2Ji5jgbRXEMPU0GKVGMeAn5Wwi56gjBMg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/hooks@4.48.1": + resolution: + { integrity: sha512-QZh3Cv9TMJkrCQikuZSsDKTgX+6BBzYJe0MFKp7yP8drj/dtRpkqo5+eYmovBq3pk+HoyP7UJ1vTOb3GPJeU6Q== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/html-entities@4.46.0': - resolution: {integrity: sha512-YJ/V9R2p4lwYkhc9/bQrXxoX0rNDtt1WQGInKAxRWqF1w1gYQk0iWiwGcNnahnFofwK2LJSVf4/jYFjJrS/sPw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/html-entities@4.48.1": + resolution: + { integrity: sha512-Gq6j3yl+m0pc0989jFjAgYbtdwHyUS/5PR39zg+hQfq1IWiqCwfhFlJAqc8ymwx/gSklrxf9mmyhBwmUPWtMcw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/i18n@6.19.0': - resolution: {integrity: sha512-hRXd2E0SF9OQf22ZZWw7Ny/o+Q9u8jINiF1p0bF+rnSDKQUgoStihak6YiazWVRiIEYwctzotKXlt0HePJelXA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/i18n@6.21.1": + resolution: + { integrity: sha512-qBbDJTRCtMfEzTVtzOa/fZf8XlU/JY3nI4MSdxyRQKduFanbXvzTRqJSSEIpZS4ACJTyUqafZX8zEZIH5CrNHQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } hasBin: true - '@wordpress/icons@13.1.0': - resolution: {integrity: sha512-KMZAeYghsLs6e5wKMZ3/Ynrsuu5yZt2gAlMHmZSkWJKQFld++Pz/pEj8nDCJ79z/zx9FO7q4teG49vHHvVosjQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/icons@14.0.1": + resolution: + { integrity: sha512-Vf3wXrS8JWwozKGQ3vS8WQBwmzZyk0ih3W92kE+xPDK2K5QPrlW4MjbSV8gYbNAHC6NECPSWrEGI3DmbgvAP3w== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/image-cropper@1.10.0': - resolution: {integrity: sha512-Aq4Wz2nGf+GYZPi+n+nWq7AtsGSjUbREzYKEUQIAnt2pPGn2ZkvooBUQE405WOqoJadE+tkLjKdyjY24iOtocA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/image-cropper@1.12.1": + resolution: + { integrity: sha512-r7t5fzUGzeCt2Pkkp6lgh/a2UKsgW+okeR7Ldw29snE96JZcjYJHyJfRfqOGFZVxrCcoDe2XaEy+Q6PdL+aJhw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/interactivity@6.46.0': - resolution: {integrity: sha512-z/MbS0WzW7yQIMg45lG5Vfl1JQ3rWioNhLSNotCWuBZ191AGsJiZWHzyJE57MV6n+Nm5NMNN4Pe7S4qA3/9oWQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/interactivity@6.48.1": + resolution: + { integrity: sha512-Qc+VoBt2XNoOuVMZwjQtZJ8iQfh7mJsSjPlxzSMyYRHGPa+WqfWO50LY/vyXYPs5s5FoMsb3S64ty/p//1DI2w== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/is-shallow-equal@5.46.0': - resolution: {integrity: sha512-46J36GNPw7q3c5HF0RurUx9yJHvBDYqOFVqbb8Td8bov9pVI6TGtcMKd+/O+Q89ZUVSTVx/NfxKjNwXpeQQCmg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/is-shallow-equal@5.48.1": + resolution: + { integrity: sha512-qOn4doqp8Xr5vOdF7kni5BThkMLxFA9fZIUVZo/lzs+/rwV7rwdQQXtq/PXnHcOWDOqHSXBVlUciV7clDE6aeA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/jest-console@8.46.0': - resolution: {integrity: sha512-bD5FD/LDbDyfadZzxfUCOM6uBXlIfRFj+AAsgmCHuUBW3c7PrsZXDGh5KRaR8E0XLoeLpkxA78fpUaY8S1+XPw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/jest-console@8.48.1": + resolution: + { integrity: sha512-yoW7R8f2u/FWqJ+Owf7ZWLXrFgPQx/nTvyQLykODazLuU/a571TOg1pgwt+hUMN+8YwiTPWCulm+V079+hi1Qg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: - jest: '>=29' + jest: ">=29" - '@wordpress/jest-preset-default@12.46.0': - resolution: {integrity: sha512-R6D1IMFD1lkpTg8MI5g0c5Bb2TFwp37ZIHR5Xsv7cfK4e73Xk/NsQ5ImP0MyPNIu90IYMcGDOgCdUll7fgeLZg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/jest-preset-default@12.48.1": + resolution: + { integrity: sha512-u+bq7iw/Ts1dM1Vc74eEwTxwZvKsVZPMjSmNQ+Tpiyei9b+WpFROYq7+PYlJrtyxAmPyHx/b4nAJEQ1utzhTGg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: - '@babel/core': '>=7' - jest: '>=29' + "@babel/core": ">=7" + jest: ">=29" - '@wordpress/keyboard-shortcuts@5.46.0': - resolution: {integrity: sha512-zEnaatKpFaSUFrvxjY9G4xLWg7AjXv3vgVcY6k8R5eCLJTdhfRI+hmG8Zf5eyS4BnFPzUyv3orQ3iK8GgnvTdw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/keyboard-shortcuts@5.48.1": + resolution: + { integrity: sha512-HYm/Q52G5UvF4rOleWWJaRvsRjWBOyqhcCdlXXtVAWn7qEq5V2Lm5RSdI4L66EVFqRAHAPsz9ouwwiU98N5NFQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/keycodes@4.46.0': - resolution: {integrity: sha512-+eW0b4bRrpmiOOfdmz1BtQsbTqWqCkgJyeiR5yMLJ+sGG2He9icVLjt/fSc4xCQ56MhT03Zypb33L6j+zJFEgA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/keycodes@4.48.1": + resolution: + { integrity: sha512-mVNex4sY0APJj69kxFfCmaoJVOaNd9Bu7oNecuXKEAI4sp/jvvn0x+IGwLt1lMrLqC3+bPEo+q+JV3KNXMOJIQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/notices@5.46.0': - resolution: {integrity: sha512-HwU051rXauCsnCtW4naXUJkWvanNOmkzI6B5bUl+S4IHAUAVrr0oITgZcXEk6mJJuKFs7pMDiWAB5XhYixcsyw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/notices@5.48.1": + resolution: + { integrity: sha512-igkUhvyvp+C61HcE7OBiCPkPYMae8k0BQBZblepXghkX82zlqVe5NiueepWTwY7pFDDEsZlxl9sYF2DWf6HF3w== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/npm-package-json-lint-config@5.46.0': - resolution: {integrity: sha512-8LoW3tNXA1cjehpP/12g20HnbYAQ7n7//D6f3cha4Ev295XXGszxI2FSzk7OLEgV1QtQgCyijEC196RABRCilQ==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/npm-package-json-lint-config@5.48.1": + resolution: + { integrity: sha512-+zEF+kA79DjFLvu7icD51tHHQl/84Bjco8Dm1UlfMhvMxY9JclvwAVcR4PXhl6Ej5j0fRFlbwPI/isU7OFAehQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: - npm-package-json-lint: '>=6.0.0' + npm-package-json-lint: ">=6.0.0" - '@wordpress/postcss-plugins-preset@5.46.0': - resolution: {integrity: sha512-0cQq8mHFKqDCunu84oekhw/E2bE1paOxKPGAxe8mXdCAYrW/ZyIlHlNLBAy/EfI621UMsQYAz95KrJoKA9h0YA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/postcss-plugins-preset@5.48.1": + resolution: + { integrity: sha512-mTSXRTaUhbawT9w3UkVAWQ0NINKGIR0YrUDthNVAe12Jd1DJic9ixqeBDNSwgR9sxiZpTpMWWwcFeXNxD/dT2Q== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: postcss: ^8.0.0 - '@wordpress/preferences@4.46.0': - resolution: {integrity: sha512-vLvkOKmziv/D0ksC8wZ94bAeIAvXQm+X86Bte36kXXEvrru2+QGxCz4pHT+qOdkkALzS2cKXc7prqRCigRzJwg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/preferences@4.48.1": + resolution: + { integrity: sha512-ETRFHFXRJ80UYXwjy5FQlAHlVZQjC3PUqvrW6KT8aJT/nsy8+uMLV0FUE1e37QqeAwdwMDj9jC/MNz0m3eRmOw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/prettier-config@4.46.0': - resolution: {integrity: sha512-KjqvxbBohc0dtZBCYy82chj9WCa5nSQP7LuXrsTo5xFacRrNaB101TlsogVoaHADbOlcrayC0yRPzVmkA8gJFg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/prettier-config@4.48.1": + resolution: + { integrity: sha512-7tZfyBAx/ESV8KpwXY/XKghRlSrDPDuyB6XIuuKPjw6cCtPiLnFHFBxNDdyDmwKY0UAWO7834IypSHlPiwffaw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: - prettier: '>=3' + prettier: ">=3" - '@wordpress/primitives@4.46.0': - resolution: {integrity: sha512-x1IhEVa/aGDe6otGJ4VIqEioQGfIeK5B1VQm32+ycqinJRbtbw9F5bgx4ARIdnm5M1Lg63oV9Bhmg/XMyGSTZA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/primitives@4.48.1": + resolution: + { integrity: sha512-nzAcsXhBxw9x2q/ImVa45Ft80TO+e/WgCDmWaU3Zb2trogwThxZTezkE0oeQ6PSxSeGYM6nBgk+qqFCG8wyMhQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/priority-queue@3.46.0': - resolution: {integrity: sha512-rjwzO/I7Os16VMJFVdzIeXMmyvwe+DbODrXl3mgW5LZZeIYob94d++pjQxUdWN1/0APnXPQP6zk4yFfSLOVkYg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/priority-queue@3.48.1": + resolution: + { integrity: sha512-6nPO/FU1f9r9Zilaz7TOFSTIH5ojPqk/mmDFofo0h2kIljqik/mLwBOIls6WdDrQ2kti+BRNohbjGElAcws7kg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/private-apis@1.46.0': - resolution: {integrity: sha512-l8dsEuxq6CrtsI7Twfpn6CbPHmGBUQoGN4oLPJG1Bqsr1yXXLU/bEx9KAQN9emxRjXaELPsn7x7TVx0TUoKyJw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/private-apis@1.48.1": + resolution: + { integrity: sha512-KddQQq+qboNnc4fROsy9bsX4JENRfvBMtuBg5CjOq11hScFyh169ozoHozMEtNGXou4XFykEHCRwzM5MfSHjiA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/redux-routine@5.46.0': - resolution: {integrity: sha512-a4dzJrvqOB/DYXo9eoO6q0f9pTlo+P1/0s1Bzf0EU5RF4PTNjL9d2lYesM7xDhg0MYFLnVzklcriAeapIEv/ag==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/redux-routine@5.48.1": + resolution: + { integrity: sha512-+mUHB2DxfqGODfc9Lwdhz8D7jjojjWqhoa8w0ckUCzh84ZERiR3BcoiGhCkiWVSl9XedKu9itLFna5Q4gilEZw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: - redux: '>=4' + redux: ">=4" - '@wordpress/rich-text@7.46.0': - resolution: {integrity: sha512-XxuCe0gWq5YYfN+EdL5RmL4/qMlVka0R+n51/DzEpWM/+CkPInpXBeYE+3z9Ip+sRcnEgE1zKkMo1wjXWTDOjw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/rich-text@7.48.1": + resolution: + { integrity: sha512-pj+S2d2p4EUJ03V/tOhlvb9qGPixft7v1zj9KEyM70VY6nHD5mmVp95Q5ALtlioyDFWYhzSo609PEd9fJ8FTsQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 - '@wordpress/scripts@32.2.0': - resolution: {integrity: sha512-b31ks0qF/97CikOqkNSvvCjIpWRENSIMrNoA4FhPIqyNRcfsMKrp8pK71IBrrgpMHTBdKuKb/+E7PPFYut5JTA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/scripts@32.4.1": + resolution: + { integrity: sha512-kcR0zvXUm9qgeHbXVUXlq0M6NaPHMmZ1RudRt7HyS+9I+YK5nomvVgyFzcF/ViO+gbWU8o02iyf6iluihKtloQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } hasBin: true peerDependencies: - '@playwright/test': ^1.58.2 - '@wordpress/env': '>=10.0.0' + "@playwright/test": ^1.58.2 + "@wordpress/env": ">=10.0.0" react: ^18.0.0 react-dom: ^18.0.0 peerDependenciesMeta: - '@wordpress/env': + "@wordpress/env": optional: true - '@wordpress/shortcode@4.46.0': - resolution: {integrity: sha512-s+1p9Zondd53T3u8ovs9ef3cy8uShnpMCSeAF9OFr7SLr/GIzScDRaXJPGCofU3tGwTe6Om81j69DAjHEcSYIw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/shortcode@4.48.1": + resolution: + { integrity: sha512-zfOz45verEOIf3YIE4zOlMcQoZ2za+OFuJ4SKE+nmglUFLmF2I0iLGlNQO0BNLPI26+krSVZ8kclzJRaB5Z6Kw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/style-engine@2.46.0': - resolution: {integrity: sha512-3kUcomd7xbqV4KoDA0OIVbKb4HnCnvx4kWrohHfS8+r0gsW4LyMQr66WwV2u44U6eckn83Nw0sK1Jb+4PwWiNw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/style-engine@2.48.1": + resolution: + { integrity: sha512-biMD3eTjoUj5hlmA261kLAlgCN/bjxeeRe7XFrjG/bxQErmYp+hmMSejNTuLpg3j8I11eQ3Vo0iRCjGzn4xFEQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/style-runtime@0.2.0': - resolution: {integrity: sha512-9pLmilkgWqTvIlrnnXbW7ECfEPvCSYOve7btXgYGgMOzrGs12ijnG+kSGGg0aJhEV8OCzQ/QdVBh4s1zQZ0bLQ==} - engines: {node: '>=20.10.0', npm: '>=10.2.3'} + "@wordpress/style-runtime@0.4.1": + resolution: + { integrity: sha512-guZ0p9a5ZQyyCFPwVqDkhDNVXdXAhIqNkPGSNIGguEtt3OtSOskEMwYJHyXZYX8nlbH0FyKflGJhE4G6QlIWlw== } + engines: { node: ">=20.10.0", npm: ">=10.2.3" } - '@wordpress/stylelint-config@23.38.0': - resolution: {integrity: sha512-F1Bo45fhWFrpEXlkkwVfopmmgM8PwbzplrlBwu1FGm+9ohF890IXKhjjQ/CDphE9pMBCQnAyofF6ESymhbEm5A==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/stylelint-config@23.40.1": + resolution: + { integrity: sha512-9VaPT7bgMBN/oSRq+HUD3c3muCpZ7Axi4lOShwOhYql9ZVuWkovi94LjJqpXfNvwO0bFUqmfQjZReLa8mlNTuw== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: stylelint: ^16.8.2 stylelint-scss: ^6.4.0 - '@wordpress/theme@0.13.0': - resolution: {integrity: sha512-4Lasso3BPej43c7e+eO+YN/fl/mcg/Q9+nclp1FmV6xdWFiUXvfwAOsEeNQQ/5s5mw5aCgseK3//qX5gydhfUA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/theme@0.15.1": + resolution: + { integrity: sha512-0SqH40Sd4pKH8YkDjQ4JM2NJzdhliO19QTPHAOAGA+tXuh+YwHOwFxX8Mg0v/vvI4XJD11zuiKGr+grBI7icTQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -24014,202 +26871,252 @@ packages: stylelint: optional: true - '@wordpress/token-list@3.46.0': - resolution: {integrity: sha512-g9UytUCFcLnj8LWNHFUK0c53FeokTEXDlZ3C3VrpDnxq0jC0BnNj0uJCAmbzfehg23LWI2O5xnQzmpAJ9ldAKg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/token-list@3.48.1": + resolution: + { integrity: sha512-hFAqE8xmTpq/4IVs3AHXxVA2FTrQ2BcOQHsdXJ9kELfcazTZWZsPU2hampfIGYZzyzLnTX06dUubuuy2++LUSQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/ui@0.13.0': - resolution: {integrity: sha512-NSP/Hh6X3qbN0B7KsWFGZfmiYp28NiVZnxu8uJSspZs9mzVP+qKC9yOgIxPYIjFuGDrXJ6QK9wL3soRXkJMG0w==} - engines: {node: '>=20.10.0', npm: '>=10.2.3'} + "@wordpress/ui@0.15.1": + resolution: + { integrity: sha512-zFErzf84zc7dGXrCa9fPKUpMhYx86B8n5GeshC7Ut/nfE7yp09g/Bono5S7KhY1OJx7Z1Jur9t+4vnv5cocBbA== } + engines: { node: ">=20.10.0", npm: ">=10.2.3" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/undo-manager@1.46.0': - resolution: {integrity: sha512-vAchoUrF97IdjqVD30Iz7NI9YvDtgeMNPshgjsrM8MF9nOCMq2tBWb3HS+ue/kQknfAuU73FEnn/UNKt0JPH4Q==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/undo-manager@1.48.1": + resolution: + { integrity: sha512-i/yHiUQ5S47yong7FXxIRpJgO1MbItEKfcyp1a3rRe66rw1RVPmAlJxyeKaQg9eZbCXOmmDz5cLzZNPyUDN6uA== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } - '@wordpress/upload-media@0.31.0': - resolution: {integrity: sha512-fpg1wx1p04AEyemQ7EGsR1c2oHcHCgsVdKbSl27L4Nvw2YlhiZY6yb/BOqUNyBqTJ6OBS85vKace6JzW6KR27w==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} + "@wordpress/upload-media@0.33.1": + resolution: + { integrity: sha512-FjHJGZh7tjUyMbHXiPPHT8oRpM24ENwCOYG7OEoWRGP3NSU5v9Ff4TCksI25Ws420TkrNCFnHlU+xmALQAu30w== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@wordpress/url@4.46.0': - resolution: {integrity: sha512-LGja+dYBzaNkkPSE5ddPgk03M66wadUheuhyOLTu4uLQU2UmipN9qQgI4VAnZLrnXs7dqb4fJ8f0AuNmshHpbg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/vips@1.6.0': - resolution: {integrity: sha512-TiQYzS5L2hVk6H9Xpk0tSzMu0cpCLUXNCXioiM/LZ2SvzP9ibwp+uXp2QwI2SS32aO06OeECaCJx+qgbIimv3A==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/warning@3.46.0': - resolution: {integrity: sha512-Z1CE6x732iMD+NcWziitqWUyhxVy1JlioHDtQUU2oqhDcA0d/P2ifOc/af02dDYFIuLh7umurU19LqpBX6EoWw==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/wordcount@4.46.0': - resolution: {integrity: sha512-rOIICvsdxI80m3ajd/cxVls2Bc9Vin0x59mDJn8omxlwbuyIAPSAkSgt273m+uIIH6/05mXVIYULfWRFW9K5+w==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@wordpress/worker-threads@1.6.0': - resolution: {integrity: sha512-ZhKNMpqgJFiGILIvkYom4MJ/82CpZZ0Uj0UhuFmURo8pQQS3ROpp2/WQ9M/wlH1APUVZU2m7pLtkipt49RZosg==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - - '@xmldom/xmldom@0.9.10': - resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} - engines: {node: '>=14.6'} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + "@wordpress/url@4.48.1": + resolution: + { integrity: sha512-EiTMmEwotXY4Cu6casJ10HEe0ocsdVujkm1iZyA0vvu2qtR5IIQqlSVGxDx96cJBP6cB2b8x2ebGLWfnwow4/Q== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/vips@2.1.1": + resolution: + { integrity: sha512-3NvM0Bk4xrNhYI8Xgn9+dphE3FbJANhe9aNoU1J/Wqmqt3EpUJY5KoykFkfpHJWbdiLohSMkKIyVylGMdHpP7g== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/warning@3.48.1": + resolution: + { integrity: sha512-5YyMCOHycuHG+AjsVEUafpTqV4b4qjVv/tel5m1L8k8g8dUW5T/XKguFo1nhCqQc4HqoGBrJtKjaf6dMmg8uWg== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/wordcount@4.48.1": + resolution: + { integrity: sha512-/IdYqxbvAFgAf3O72lUj5ybeWMglG2dYwL8wz17koSHqH5XKlbIQrNGvz4XIvQueiewd4MvLOqIFt2TVHHU6/A== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@wordpress/worker-threads@1.8.1": + resolution: + { integrity: sha512-xrVypgVxciFPyc704/0fdQ6bf5BZrf2EXtTPQ4BSU0ylnvfSvgvTCYWdVzlI4VySq+FNfHgLHTCxKiKT23CrSQ== } + engines: { node: ">=18.12.0", npm: ">=8.19.2" } + + "@xmldom/xmldom@0.9.10": + resolution: + { integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw== } + engines: { node: ">=14.6" } + + "@xtuc/ieee754@1.2.0": + resolution: + { integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== } + + "@xtuc/long@4.2.2": + resolution: + { integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== } + + "@yarnpkg/lockfile@1.1.0": + resolution: + { integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== } + + "@zkochan/js-yaml@0.0.7": + resolution: + { integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ== } hasBin: true JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + resolution: + { integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== } hasBin: true a-sync-waterfall@1.0.1: - resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} + resolution: + { integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== } abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + resolution: + { integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== } deprecated: Use your platform's native atob() and btoa() methods instead abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + resolution: + { integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== } abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== } + engines: { node: ^18.17.0 || >=20.5.0 } abbrev@4.0.0: - resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA== } + engines: { node: ^20.17.0 || >=22.9.0 } abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + resolution: + { integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== } + engines: { node: ">=6.5" } abortcontroller-polyfill@1.7.8: - resolution: {integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==} + resolution: + { integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ== } accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== } + engines: { node: ">= 0.6" } accepts@2.0.0: - resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== } + engines: { node: ">= 0.6" } ace-builds@1.44.0: - resolution: {integrity: sha512-PFNMSYqFdEUkul2Ntud0HvA09AgY+F1ag0UYdpMH60wNI/qOA8cB8tlTgoALMEwIdUPJK2CjrIQ7OnbiSS/ugQ==} + resolution: + { integrity: sha512-PFNMSYqFdEUkul2Ntud0HvA09AgY+F1ag0UYdpMH60wNI/qOA8cB8tlTgoALMEwIdUPJK2CjrIQ7OnbiSS/ugQ== } acorn-globals@4.3.4: - resolution: {integrity: sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==} + resolution: + { integrity: sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== } acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + resolution: + { integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== } peerDependencies: acorn: ^8 acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== } + engines: { node: ">=10.13.0" } peerDependencies: acorn: ^8.14.0 acorn-jsx-walk@2.0.0: - resolution: {integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==} + resolution: + { integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA== } acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-loose@8.5.2: - resolution: {integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A== } + engines: { node: ">=0.4.0" } acorn-walk@6.2.0: - resolution: {integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== } + engines: { node: ">=0.4.0" } acorn-walk@8.3.5: - resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== } + engines: { node: ">=0.4.0" } acorn@6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== } + engines: { node: ">=0.4.0" } hasBin: true acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== } + engines: { node: ">=0.4.0" } hasBin: true acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== } + engines: { node: ">=0.4.0" } + hasBin: true + + acorn@8.17.0: + resolution: + { integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== } + engines: { node: ">=0.4.0" } hasBin: true add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + resolution: + { integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== } address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} + resolution: + { integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== } + engines: { node: ">= 10.0.0" } address@2.0.3: - resolution: {integrity: sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA==} - engines: {node: '>= 16.0.0'} - - adjust-sourcemap-loader@4.0.0: - resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} - engines: {node: '>=8.9'} + resolution: + { integrity: sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA== } + engines: { node: ">= 16.0.0" } adm-zip@0.5.17: - resolution: {integrity: sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==} - engines: {node: '>=12.0'} + resolution: + { integrity: sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ== } + engines: { node: ">=12.0" } after@0.8.2: - resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==} - - agent-base@4.3.0: - resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== } agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + resolution: + { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } + engines: { node: ">= 6.0.0" } agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== } + engines: { node: ">= 14" } + + agent-base@9.0.0: + resolution: + { integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA== } + engines: { node: ">= 20" } agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} + resolution: + { integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== } + engines: { node: ">= 8.0.0" } aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== } + engines: { node: ">=8" } ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + resolution: + { integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== } peerDependencies: ajv: ^8.5.0 peerDependenciesMeta: @@ -24217,12 +27124,14 @@ packages: optional: true ajv-errors@1.0.1: - resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} + resolution: + { integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== } peerDependencies: - ajv: '>=5.0.0' + ajv: ">=5.0.0" ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: + { integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -24230,7 +27139,8 @@ packages: optional: true ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + resolution: + { integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -24238,939 +27148,1147 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: + { integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== } peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + resolution: + { integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== } peerDependencies: ajv: ^8.8.2 ajv@6.15.0: - resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + resolution: + { integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== } ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + resolution: + { integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A== } ajv@8.20.0: - resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + resolution: + { integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== } - algoliasearch@5.48.1: - resolution: {integrity: sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==} - engines: {node: '>= 14.0.0'} + algoliasearch@5.52.0: + resolution: + { integrity: sha512-0ZzY9mjqV7gop/AH8pIBiAS8giXP7WcSiUfoFYIzYAK9QC5c37E4SIVtJVBMwlURc0/uNt2o4RcNRvdHa4CJ5w== } + engines: { node: ">= 14.0.0" } - algoliasearch@5.52.1: - resolution: {integrity: sha512-fHA8+kXTbjagw3jkLiaS7KKrH8qe2DyOsiUhGlN4cdT77PEsfqXZl7ewDk1hsg+pJnPlnE50XtLxjR91iJOpmg==} - engines: {node: '>= 14.0.0'} + algoliasearch@5.54.1: + resolution: + { integrity: sha512-v1AwSE7VrqyTn5C6v84fpwp05LqQol8gCJ6ki4bzfpnRqpEAPp/jPqcey1Dzr1fg7Ggsu0O81+3yMgQR9zdH5g== } + engines: { node: ">= 14.0.0" } alien-signals@3.2.1: - resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==} + resolution: + { integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g== } alphanum-sort@1.0.2: - resolution: {integrity: sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==} + resolution: + { integrity: sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== } amd-name-resolver@1.3.1: - resolution: {integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw== } + engines: { node: 6.* || 8.* || >= 10.* } amdefine@1.0.1: - resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} - engines: {node: '>=0.4.2'} + resolution: + { integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== } + engines: { node: ">=0.4.2" } ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + resolution: + { integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== } ansi-colors@3.2.3: - resolution: {integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== } + engines: { node: ">=6" } ansi-colors@3.2.4: - resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== } + engines: { node: ">=6" } ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } + engines: { node: ">=6" } ansi-escapes@3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== } + engines: { node: ">=4" } ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== } + engines: { node: ">=8" } ansi-escapes@7.3.0: - resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg== } + engines: { node: ">=18" } ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} + resolution: + { integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== } + engines: { "0": node >= 0.8.0 } hasBin: true ansi-html@0.0.9: - resolution: {integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==} - engines: {'0': node >= 0.8.0} + resolution: + { integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg== } + engines: { "0": node >= 0.8.0 } hasBin: true ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== } + engines: { node: ">=0.10.0" } ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== } + engines: { node: ">=4" } ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== } + engines: { node: ">=6" } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: ">=8" } ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== } + engines: { node: ">=12" } ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== } + engines: { node: ">=0.10.0" } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } + engines: { node: ">=4" } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: ">=8" } ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== } + engines: { node: ">=10" } ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== } + engines: { node: ">=12" } ansi-to-html@0.6.15: - resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ== } + engines: { node: ">=8.0.0" } hasBin: true ansicolors@0.2.1: - resolution: {integrity: sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==} + resolution: + { integrity: sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w== } - ansis@4.3.0: - resolution: {integrity: sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==} - engines: {node: '>=14'} + ansis@4.3.1: + resolution: + { integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA== } + engines: { node: ">=14" } any-observable@0.3.0: - resolution: {integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== } + engines: { node: ">=6" } peerDependencies: - rxjs: '*' - zenObservable: '*' + rxjs: "*" + zenObservable: "*" peerDependenciesMeta: rxjs: optional: true zenObservable: optional: true - any-promise@0.1.0: - resolution: {integrity: sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== } anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + resolution: + { integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } + engines: { node: ">= 8" } append-transform@2.0.0: - resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== } + engines: { node: ">=8" } aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + resolution: + { integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== } aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + resolution: + { integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== } aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} + resolution: + { integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew== } arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + resolution: + { integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== } archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA== } + engines: { node: ">= 14" } archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ== } + engines: { node: ">= 14" } archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + resolution: + { integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== } are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== } + engines: { node: ">=14" } are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } deprecated: This package is no longer supported. arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== } arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== } argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA== } + engines: { node: ">=10" } aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + resolution: + { integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== } aria-query@5.3.1: - resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g== } + engines: { node: ">= 0.4" } aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== } + engines: { node: ">= 0.4" } arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== } + engines: { node: ">=0.10.0" } arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== } + engines: { node: ">=0.10.0" } arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== } + engines: { node: ">=0.10.0" } array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== } + engines: { node: ">=6" } array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== } + engines: { node: ">=8" } array-back@6.2.3: - resolution: {integrity: sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==} - engines: {node: '>=12.17'} + resolution: + { integrity: sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw== } + engines: { node: ">=12.17" } array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-differ@1.0.0: - resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} - engines: {node: '>=0.10.0'} - - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== } + engines: { node: ">= 0.4" } array-each@1.0.1: - resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== } + engines: { node: ">=0.10.0" } array-equal@1.0.2: - resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} + resolution: + { integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== } array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: + { integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== } array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + resolution: + { integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== } array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== } + engines: { node: ">= 0.4" } array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + resolution: + { integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg== } array-slice@1.1.0: - resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== } + engines: { node: ">=0.10.0" } array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== } + engines: { node: ">=0.10.0" } array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } + engines: { node: ">=8" } array-union@3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== } + engines: { node: ">=12" } array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== } + engines: { node: ">=0.10.0" } array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== } + engines: { node: ">=0.10.0" } array.prototype.filter@1.0.4: - resolution: {integrity: sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ== } + engines: { node: ">= 0.4" } array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== } + engines: { node: ">= 0.4" } array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== } + engines: { node: ">= 0.4" } array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== } + engines: { node: ">= 0.4" } array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== } + engines: { node: ">= 0.4" } array.prototype.reduce@1.0.8: - resolution: {integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw== } + engines: { node: ">= 0.4" } array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== } + engines: { node: ">= 0.4" } arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== } + engines: { node: ">= 0.4" } arraybuffer.slice@0.0.7: - resolution: {integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==} + resolution: + { integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== } arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== } + engines: { node: ">=0.10.0" } arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== } + engines: { node: ">=8" } asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + resolution: + { integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== } asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + resolution: + { integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== } asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + resolution: + { integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== } asn1js@3.0.10: - resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== } + engines: { node: ">=12.0.0" } assert-never@1.4.0: - resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} + resolution: + { integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA== } assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== } + engines: { node: ">=0.8" } assert@1.5.1: - resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} + resolution: + { integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== } assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + resolution: + { integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== } assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== } + engines: { node: ">=12" } assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== } + engines: { node: ">=0.10.0" } ast-kit@2.2.0: - resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw== } + engines: { node: ">=20.19.0" } - ast-kit@3.0.0-beta.1: - resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} - engines: {node: '>=20.19.0'} + ast-kit@3.0.0: + resolution: + { integrity: sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ== } + engines: { node: ^22.18.0 || >=24.11.0 } ast-metadata-inferer@0.8.1: - resolution: {integrity: sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==} + resolution: + { integrity: sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA== } ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + resolution: + { integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== } ast-types@0.13.3: - resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA== } + engines: { node: ">=4" } ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== } + engines: { node: ">=4" } ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== } + engines: { node: ">=4" } - ast-v8-to-istanbul@1.0.0: - resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} + ast-v8-to-istanbul@1.0.4: + resolution: + { integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA== } ast-walker-scope@0.8.3: - resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg== } + engines: { node: ">=20.19.0" } - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + ast-walker-scope@0.9.0: + resolution: + { integrity: sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A== } + engines: { node: ">=20.19.0" } - astro@6.3.7: - resolution: {integrity: sha512-zIeDRrI0qNgN1lcCjNqt6/IVCVej7VwSa326cO8uP9BOk1cg4QuffhLnOn2gCgWQr32/wxpSRFfXiLKHglu1Tw==} - engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} + astral-regex@2.0.0: + resolution: + { integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== } + engines: { node: ">=8" } + + astro@6.4.7: + resolution: + { integrity: sha512-5vsXx0H52u23Jpshs9tM81D03Tb3Oh2Vt2Zo0bpqjXN+njkAWjFyGjTfmWJLAcrCQd9Q+iWB1eqfhR1sZJEaUA== } + engines: { node: ">=22.12.0", npm: ">=9.6.5", pnpm: ">=7.1.0" } hasBin: true async-disk-cache@1.3.5: - resolution: {integrity: sha512-VZpqfR0R7CEOJZ/0FOTgWq70lCrZyS1rkI8PXugDUkTKyyAUgZ2zQ09gLhMkEn+wN8LYeUTPxZdXtlX/kmbXKQ==} + resolution: + { integrity: sha512-VZpqfR0R7CEOJZ/0FOTgWq70lCrZyS1rkI8PXugDUkTKyyAUgZ2zQ09gLhMkEn+wN8LYeUTPxZdXtlX/kmbXKQ== } async-disk-cache@2.1.0: - resolution: {integrity: sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg== } + engines: { node: 8.* || >= 10.* } async-done@2.0.0: - resolution: {integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw== } + engines: { node: ">= 10.13.0" } async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + resolution: + { integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== } async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== } + engines: { node: ">= 0.4" } async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + resolution: + { integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== } async-promise-queue@1.0.5: - resolution: {integrity: sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw==} + resolution: + { integrity: sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw== } async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + resolution: + { integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== } async-settle@2.0.0: - resolution: {integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg== } + engines: { node: ">= 10.13.0" } async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + resolution: + { integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== } async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + resolution: + { integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== } + engines: { node: ">= 4.0.0" } atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} + resolution: + { integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== } + engines: { node: ">= 4.5.0" } hasBin: true atomically@2.1.1: - resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} + resolution: + { integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ== } author-regex@1.0.0: - resolution: {integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==} - engines: {node: '>=0.8'} - - autoprefixer@10.4.27: - resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + resolution: + { integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g== } + engines: { node: ">=0.8" } autoprefixer@10.5.0: - resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong== } + engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 autosize@4.0.4: - resolution: {integrity: sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==} + resolution: + { integrity: sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== } available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== } + engines: { node: ">= 0.4" } aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + resolution: + { integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== } aws4@1.13.2: - resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + resolution: + { integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== } - axe-core@4.11.4: - resolution: {integrity: sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==} - engines: {node: '>=4'} + axe-core@4.12.1: + resolution: + { integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA== } + engines: { node: ">=4" } axios@0.21.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + resolution: + { integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== } axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + resolution: + { integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ== } axios@1.16.0: - resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==} + resolution: + { integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w== } - axios@1.16.1: - resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} + axios@1.18.0: + resolution: + { integrity: sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw== } axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== } + engines: { node: ">= 0.4" } b4a@1.8.1: - resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + resolution: + { integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw== } peerDependencies: - react-native-b4a: '*' + react-native-b4a: "*" peerDependenciesMeta: react-native-b4a: optional: true babel-code-frame@6.26.0: - resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} - - babel-eslint@10.1.0: - resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} - engines: {node: '>=6'} - deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. - peerDependencies: - eslint: '>= 4.12.1' + resolution: + { integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== } babel-esm-plugin@0.9.0: - resolution: {integrity: sha512-OyPyLI6LUuUqNm3HNUldAkynWrLzXkhcZo4fGTsieCgHqvbCoCIMMOwJmfG9Lmp91S7WDIuUr0mvOeI8pAb/pw==} + resolution: + { integrity: sha512-OyPyLI6LUuUqNm3HNUldAkynWrLzXkhcZo4fGTsieCgHqvbCoCIMMOwJmfG9Lmp91S7WDIuUr0mvOeI8pAb/pw== } peerDependencies: webpack: ^4.28.4 babel-helper-builder-binary-assignment-operator-visitor@6.24.1: - resolution: {integrity: sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==} + resolution: + { integrity: sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== } babel-helper-call-delegate@6.24.1: - resolution: {integrity: sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==} + resolution: + { integrity: sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== } babel-helper-define-map@6.26.0: - resolution: {integrity: sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==} + resolution: + { integrity: sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== } babel-helper-explode-assignable-expression@6.24.1: - resolution: {integrity: sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==} + resolution: + { integrity: sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== } babel-helper-function-name@6.24.1: - resolution: {integrity: sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==} + resolution: + { integrity: sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== } babel-helper-get-function-arity@6.24.1: - resolution: {integrity: sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==} + resolution: + { integrity: sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== } babel-helper-hoist-variables@6.24.1: - resolution: {integrity: sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==} + resolution: + { integrity: sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== } babel-helper-optimise-call-expression@6.24.1: - resolution: {integrity: sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==} + resolution: + { integrity: sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== } babel-helper-regex@6.26.0: - resolution: {integrity: sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==} + resolution: + { integrity: sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== } babel-helper-remap-async-to-generator@6.24.1: - resolution: {integrity: sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==} + resolution: + { integrity: sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg== } babel-helper-replace-supers@6.24.1: - resolution: {integrity: sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==} + resolution: + { integrity: sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== } babel-import-util@2.1.1: - resolution: {integrity: sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA==} - engines: {node: '>= 12.*'} + resolution: + { integrity: sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA== } + engines: { node: ">= 12.*" } babel-import-util@3.0.1: - resolution: {integrity: sha512-2copPaWQFUrzooJVIVZA/Oppx/S/KOoZ4Uhr+XWEQDMZ8Rvq/0SNQpbdIyMBJ8IELWt10dewuJw+tX4XjOo7Rg==} - engines: {node: '>= 12.*'} + resolution: + { integrity: sha512-2copPaWQFUrzooJVIVZA/Oppx/S/KOoZ4Uhr+XWEQDMZ8Rvq/0SNQpbdIyMBJ8IELWt10dewuJw+tX4XjOo7Rg== } + engines: { node: ">= 12.*" } babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@babel/core': ^7.8.0 - - babel-loader@10.0.0: - resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} - engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5.61.0' + "@babel/core": ^7.8.0 babel-loader@10.1.1: - resolution: {integrity: sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg==} - engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} + resolution: + { integrity: sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg== } + engines: { node: ^18.20.0 || ^20.10.0 || >=22.0.0 } peerDependencies: - '@babel/core': ^7.12.0 || ^8.0.0-beta.1 - '@rspack/core': ^1.0.0 || ^2.0.0-0 - webpack: '>=5.61.0' + "@babel/core": ^7.12.0 || ^8.0.0-beta.1 + "@rspack/core": ^1.0.0 || ^2.0.0-0 + webpack: ">=5.61.0" peerDependenciesMeta: - '@rspack/core': + "@rspack/core": optional: true webpack: optional: true babel-loader@8.4.1: - resolution: {integrity: sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==} - engines: {node: '>= 8.9'} + resolution: + { integrity: sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== } + engines: { node: ">= 8.9" } peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' + "@babel/core": ^7.0.0 + webpack: ">=2" babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} + resolution: + { integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== } + engines: { node: ">= 14.15.0" } peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' + "@babel/core": ^7.12.0 + webpack: ">=5" babel-messages@6.23.0: - resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==} + resolution: + { integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== } babel-plugin-check-es2015-constants@6.22.0: - resolution: {integrity: sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==} + resolution: + { integrity: sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== } babel-plugin-const-enum@1.2.0: - resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + resolution: + { integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg== } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 babel-plugin-debug-macros@0.2.0: - resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA== } + engines: { node: ">=4" } peerDependencies: - '@babel/core': ^7.0.0-beta.42 + "@babel/core": ^7.0.0-beta.42 babel-plugin-debug-macros@0.3.4: - resolution: {integrity: sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw== } + engines: { node: ">=6" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + resolution: + { integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== } babel-plugin-ember-data-packages-polyfill@0.1.2: - resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==} - engines: {node: 6.* || 8.* || 10.* || >= 12.*} + resolution: + { integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww== } + engines: { node: 6.* || 8.* || 10.* || >= 12.* } babel-plugin-ember-modules-api-polyfill@3.5.0: - resolution: {integrity: sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA== } + engines: { node: 6.* || 8.* || >= 10.* } babel-plugin-ember-template-compilation@2.4.1: - resolution: {integrity: sha512-n+ktQ3JeyWrpRutSyPn2PsHeH+A94SVm+iUoogzf9VUqpP47FfWem24gpQXhn+p6+x5/BpuFJXMLXWt7ZoYAKA==} - engines: {node: '>= 12.*'} + resolution: + { integrity: sha512-n+ktQ3JeyWrpRutSyPn2PsHeH+A94SVm+iUoogzf9VUqpP47FfWem24gpQXhn+p6+x5/BpuFJXMLXWt7ZoYAKA== } + engines: { node: ">= 12.*" } babel-plugin-htmlbars-inline-precompile@5.3.1: - resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA== } + engines: { node: 10.* || >= 12.* } babel-plugin-inferno@6.8.5: - resolution: {integrity: sha512-dYIex2Uig0aBLfMF1zIV+eDVfQvSYZ/IsjMBEgwEmqG07lXy4r9RZ41TKw2wAuOTqIe19RxWvg8pxguHO2ljDA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-dYIex2Uig0aBLfMF1zIV+eDVfQvSYZ/IsjMBEgwEmqG07lXy4r9RZ41TKw2wAuOTqIe19RxWvg8pxguHO2ljDA== } + engines: { node: ">=18" } babel-plugin-istanbul@5.2.0: - resolution: {integrity: sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== } + engines: { node: ">=6" } babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== } + engines: { node: ">=8" } babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } babel-plugin-jsx-dom-expressions@0.40.7: - resolution: {integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==} + resolution: + { integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ== } peerDependencies: - '@babel/core': ^7.20.12 + "@babel/core": ^7.20.12 babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} + resolution: + { integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== } + engines: { node: ">=10", npm: ">=6" } babel-plugin-module-resolver@3.2.0: - resolution: {integrity: sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==} - engines: {node: '>= 6.0.0'} + resolution: + { integrity: sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== } + engines: { node: ">= 6.0.0" } babel-plugin-module-resolver@5.0.3: - resolution: {integrity: sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ==} + resolution: + { integrity: sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ== } babel-plugin-polyfill-corejs2@0.4.17: - resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + resolution: + { integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w== } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.13.0: - resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + resolution: + { integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.14.2: - resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + resolution: + { integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g== } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@1.0.0-rc.2: + resolution: + { integrity: sha512-CANdCTyNm6Ds/kevG0Rbby/dvRPTvA7K5DLTiUrWBeRMnqp6Okg8idCw5fM3AdbAcxtR23Y9na3WOJRZ3i1hNA== } + engines: { node: ^20.19.0 || >=22.12.0 } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-rc.3 babel-plugin-polyfill-regenerator@0.6.8: - resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + resolution: + { integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg== } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-syntax-async-functions@6.13.0: - resolution: {integrity: sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==} + resolution: + { integrity: sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== } babel-plugin-syntax-dynamic-import@6.18.0: - resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==} + resolution: + { integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA== } babel-plugin-syntax-exponentiation-operator@6.13.0: - resolution: {integrity: sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==} + resolution: + { integrity: sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== } babel-plugin-syntax-trailing-function-commas@6.22.0: - resolution: {integrity: sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==} + resolution: + { integrity: sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== } babel-plugin-transform-async-to-generator@6.24.1: - resolution: {integrity: sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==} + resolution: + { integrity: sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== } babel-plugin-transform-es2015-arrow-functions@6.22.0: - resolution: {integrity: sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==} + resolution: + { integrity: sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== } babel-plugin-transform-es2015-block-scoped-functions@6.22.0: - resolution: {integrity: sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==} + resolution: + { integrity: sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== } babel-plugin-transform-es2015-block-scoping@6.26.0: - resolution: {integrity: sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==} + resolution: + { integrity: sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== } babel-plugin-transform-es2015-classes@6.24.1: - resolution: {integrity: sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==} + resolution: + { integrity: sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== } babel-plugin-transform-es2015-computed-properties@6.24.1: - resolution: {integrity: sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==} + resolution: + { integrity: sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== } babel-plugin-transform-es2015-destructuring@6.23.0: - resolution: {integrity: sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==} + resolution: + { integrity: sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== } babel-plugin-transform-es2015-duplicate-keys@6.24.1: - resolution: {integrity: sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==} + resolution: + { integrity: sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== } babel-plugin-transform-es2015-for-of@6.23.0: - resolution: {integrity: sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==} + resolution: + { integrity: sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== } babel-plugin-transform-es2015-function-name@6.24.1: - resolution: {integrity: sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==} + resolution: + { integrity: sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== } babel-plugin-transform-es2015-literals@6.22.0: - resolution: {integrity: sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==} + resolution: + { integrity: sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== } babel-plugin-transform-es2015-modules-amd@6.24.1: - resolution: {integrity: sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==} + resolution: + { integrity: sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== } babel-plugin-transform-es2015-modules-commonjs@6.26.2: - resolution: {integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==} + resolution: + { integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== } babel-plugin-transform-es2015-modules-systemjs@6.24.1: - resolution: {integrity: sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==} + resolution: + { integrity: sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== } babel-plugin-transform-es2015-modules-umd@6.24.1: - resolution: {integrity: sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==} + resolution: + { integrity: sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== } babel-plugin-transform-es2015-object-super@6.24.1: - resolution: {integrity: sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==} + resolution: + { integrity: sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== } babel-plugin-transform-es2015-parameters@6.24.1: - resolution: {integrity: sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==} + resolution: + { integrity: sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== } babel-plugin-transform-es2015-shorthand-properties@6.24.1: - resolution: {integrity: sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==} + resolution: + { integrity: sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== } babel-plugin-transform-es2015-spread@6.22.0: - resolution: {integrity: sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==} + resolution: + { integrity: sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== } babel-plugin-transform-es2015-sticky-regex@6.24.1: - resolution: {integrity: sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==} + resolution: + { integrity: sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== } babel-plugin-transform-es2015-template-literals@6.22.0: - resolution: {integrity: sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==} + resolution: + { integrity: sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== } babel-plugin-transform-es2015-typeof-symbol@6.23.0: - resolution: {integrity: sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==} + resolution: + { integrity: sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== } babel-plugin-transform-es2015-unicode-regex@6.24.1: - resolution: {integrity: sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==} + resolution: + { integrity: sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== } babel-plugin-transform-exponentiation-operator@6.24.1: - resolution: {integrity: sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==} + resolution: + { integrity: sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== } babel-plugin-transform-react-remove-prop-types@0.4.24: - resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} + resolution: + { integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== } babel-plugin-transform-regenerator@6.26.0: - resolution: {integrity: sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==} + resolution: + { integrity: sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== } babel-plugin-transform-strict-mode@6.24.1: - resolution: {integrity: sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==} + resolution: + { integrity: sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== } babel-plugin-transform-typescript-metadata@0.3.2: - resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} + resolution: + { integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg== } peerDependencies: - '@babel/core': ^7 - '@babel/traverse': ^7 + "@babel/core": ^7 + "@babel/traverse": ^7 peerDependenciesMeta: - '@babel/traverse': + "@babel/traverse": optional: true babel-preset-current-node-syntax@1.2.0: - resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + resolution: + { integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== } peerDependencies: - '@babel/core': ^7.0.0 || ^8.0.0-0 + "@babel/core": ^7.0.0 || ^8.0.0-0 babel-preset-env@1.7.0: - resolution: {integrity: sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==} + resolution: + { integrity: sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== } babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 babel-preset-solid@1.9.12: - resolution: {integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==} + resolution: + { integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg== } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 solid-js: ^1.9.12 peerDependenciesMeta: solid-js: optional: true babel-remove-types@1.1.0: - resolution: {integrity: sha512-2wszSY8Pll8uefPFrJcOb2cP67epjpDnLADtzgQ9u1WgFJmBdJAkx5MGISjFCg/56Q8YgzA/o9RBMpScjhf+dw==} + resolution: + { integrity: sha512-2wszSY8Pll8uefPFrJcOb2cP67epjpDnLADtzgQ9u1WgFJmBdJAkx5MGISjFCg/56Q8YgzA/o9RBMpScjhf+dw== } babel-runtime@6.26.0: - resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} + resolution: + { integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== } babel-template@6.26.0: - resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==} + resolution: + { integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== } babel-traverse@6.26.0: - resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==} + resolution: + { integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== } babel-types@6.26.0: - resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==} + resolution: + { integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== } babel-walk@3.0.0-canary-5: - resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} - engines: {node: '>= 10.0.0'} + resolution: + { integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== } + engines: { node: ">= 10.0.0" } babylon@6.18.0: - resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} + resolution: + { integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== } hasBin: true bach@2.0.1: - resolution: {integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg== } + engines: { node: ">=10.13.0" } backbone@1.6.1: - resolution: {integrity: sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q==} + resolution: + { integrity: sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q== } backburner.js@2.8.0: - resolution: {integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ==} + resolution: + { integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ== } backo2@1.0.2: - resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} + resolution: + { integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== } bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + resolution: + { integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== } bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + resolution: + { integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + resolution: + { integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== } balanced-match@4.0.3: - resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g== } + engines: { node: 20 || >=22 } balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + resolution: + { integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== } + engines: { node: 18 || 20 || >=22 } - bare-events@2.8.3: - resolution: {integrity: sha512-HdUm8EMQBLaJvGUdidNNbqpA1kYkwNcb+MYxkxCLAPJGQzlv9J0C24h8V65Z4c5GLd/JEALDvpFCQgpLJqc0zw==} + bare-events@2.9.1: + resolution: + { integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg== } peerDependencies: - bare-abort-controller: '*' + bare-abort-controller: "*" peerDependenciesMeta: bare-abort-controller: optional: true - bare-fs@4.7.1: - resolution: {integrity: sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==} - engines: {bare: '>=1.16.0'} + bare-fs@4.7.2: + resolution: + { integrity: sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg== } + engines: { bare: ">=1.16.0" } peerDependencies: - bare-buffer: '*' + bare-buffer: "*" peerDependenciesMeta: bare-buffer: optional: true bare-os@3.9.1: - resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} - engines: {bare: '>=1.14.0'} + resolution: + { integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ== } + engines: { bare: ">=1.14.0" } - bare-path@3.0.0: - resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + bare-path@3.0.1: + resolution: + { integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ== } - bare-stream@2.13.1: - resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} + bare-stream@2.13.3: + resolution: + { integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ== } peerDependencies: - bare-abort-controller: '*' - bare-buffer: '*' - bare-events: '*' + bare-abort-controller: "*" + bare-buffer: "*" + bare-events: "*" peerDependenciesMeta: bare-abort-controller: optional: true @@ -25179,1262 +28297,1578 @@ packages: bare-events: optional: true - bare-url@2.4.3: - resolution: {integrity: sha512-Kccpc7ACfXaxfeInfqKcZtW4pT5YBn1mesc4sCsun6sRwtbJ4h+sNOaksUpYEJUKfN65YWC6Bw2OJEFiKxq8nQ==} + bare-url@2.4.5: + resolution: + { integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ== } base64-arraybuffer@0.1.4: - resolution: {integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==} - engines: {node: '>= 0.6.0'} + resolution: + { integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== } + engines: { node: ">= 0.6.0" } base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} - engines: {node: ^4.5.0 || >= 5.9} + resolution: + { integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== } + engines: { node: ^4.5.0 || >= 5.9 } base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - - baseline-browser-mapping@2.10.32: - resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== } + engines: { node: ">=0.10.0" } + + baseline-browser-mapping@2.10.37: + resolution: + { integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig== } + engines: { node: ">=6.0.0" } hasBin: true basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== } + engines: { node: ">= 0.8" } basic-ftp@5.3.1: - resolution: {integrity: sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw== } + engines: { node: ">=10.0.0" } batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + resolution: + { integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== } - bcp-47-match@1.0.3: - resolution: {integrity: sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==} + bcp-47-match@2.0.3: + resolution: + { integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ== } - bcp-47-normalize@1.1.1: - resolution: {integrity: sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==} + bcp-47-normalize@2.3.0: + resolution: + { integrity: sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q== } - bcp-47@1.0.8: - resolution: {integrity: sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==} + bcp-47@2.1.0: + resolution: + { integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w== } bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + resolution: + { integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== } - beasties@0.4.1: - resolution: {integrity: sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==} - engines: {node: '>=18.0.0'} + beasties@0.4.2: + resolution: + { integrity: sha512-NvcGjG/7AVUAfRbvrJmHunDQS9uHnE6Q/7AkaPr8oKE8HjOlpjRG5075z/th2Tmlezk3VlaaS8+X9I1RwHJMQw== } + engines: { node: ">=18.0.0" } before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + resolution: + { integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== } better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== } + engines: { node: ">=4" } bianco.attr@1.1.1: - resolution: {integrity: sha512-fTjfPnnGYiCVbe5UltC/LsDRtJE+MjmadtL749CMIfCwjl18sdbCkaQ7cgtSao6iC9ZJC8Pzw0rjMdIuA6mK1g==} + resolution: + { integrity: sha512-fTjfPnnGYiCVbe5UltC/LsDRtJE+MjmadtL749CMIfCwjl18sdbCkaQ7cgtSao6iC9ZJC8Pzw0rjMdIuA6mK1g== } bianco.dom-to-array@1.1.0: - resolution: {integrity: sha512-IWUgplQRhJSZh+7PgD/my5+X27PXNUFdcHPosOYz39a/iFF8Wl9d0N/mOArdR7Zgr3J0Q9pKVk7nO6W+7XZwBg==} + resolution: + { integrity: sha512-IWUgplQRhJSZh+7PgD/my5+X27PXNUFdcHPosOYz39a/iFF8Wl9d0N/mOArdR7Zgr3J0Q9pKVk7nO6W+7XZwBg== } bianco.events@1.1.1: - resolution: {integrity: sha512-Ja7oY4xThYgsmfS+JltOnzdAvqP90DVXjbXab0lwrygJdCVRoL0Q4SkEKVMnN1VqNfDtxIUKNlubEUVNp00H7A==} + resolution: + { integrity: sha512-Ja7oY4xThYgsmfS+JltOnzdAvqP90DVXjbXab0lwrygJdCVRoL0Q4SkEKVMnN1VqNfDtxIUKNlubEUVNp00H7A== } bianco.query@1.1.4: - resolution: {integrity: sha512-jUu8l484ckacCBmxN0gYLZ4Ge5aMfReL+aYNiC81s37s8+l0+rn9pnQayEgQtMHGlnL8ejd+x5U2PKpo0rvQzw==} + resolution: + { integrity: sha512-jUu8l484ckacCBmxN0gYLZ4Ge5aMfReL+aYNiC81s37s8+l0+rn9pnQayEgQtMHGlnL8ejd+x5U2PKpo0rvQzw== } bidi-js@1.0.3: - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + resolution: + { integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw== } big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} + resolution: + { integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== } + engines: { node: ">=0.6" } big.js@3.2.0: - resolution: {integrity: sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==} + resolution: + { integrity: sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== } big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + resolution: + { integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== } bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + resolution: + { integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== } bin-links@5.0.0: - resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA== } + engines: { node: ^18.17.0 || >=20.5.0 } binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== } + engines: { node: ">=0.10.0" } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== } + engines: { node: ">=8" } binaryextensions@2.3.0: - resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== } + engines: { node: ">=0.8" } bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + resolution: + { integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== } birpc@2.9.0: - resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + resolution: + { integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw== } birpc@4.0.0: - resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + resolution: + { integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw== } bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== } bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + resolution: + { integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== } blank-object@1.0.2: - resolution: {integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==} + resolution: + { integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ== } blob@0.0.5: - resolution: {integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==} - - blocking-proxy@1.0.1: - resolution: {integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==} - engines: {node: '>=6.9.x'} - hasBin: true + resolution: + { integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== } bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + resolution: + { integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== } bn.js@4.12.3: - resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} + resolution: + { integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== } bn.js@5.2.3: - resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} + resolution: + { integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== } body-parser@1.20.5: - resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA== } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } - body-parser@2.2.2: - resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} - engines: {node: '>=18'} + body-parser@2.3.0: + resolution: + { integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw== } + engines: { node: ">=18" } body@5.1.0: - resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==} + resolution: + { integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ== } - bonjour-service@1.4.0: - resolution: {integrity: sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==} + bonjour-service@1.4.1: + resolution: + { integrity: sha512-9KM4QMPKnaJqaja1v7gYO/+TXZGLtzPA05NmUTqDAJjcsWeVoOXKMvU9g0gfuuoYTQqJZ924hivICd5R/bCJbA== } boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + resolution: + { integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== } bootstrap@5.3.8: - resolution: {integrity: sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==} + resolution: + { integrity: sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg== } peerDependencies: - '@popperjs/core': ^2.11.8 + "@popperjs/core": ^2.11.8 boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== } + engines: { node: ">=10" } boxen@8.0.1: - resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw== } + engines: { node: ">=18" } bplist-parser@0.3.2: - resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} - engines: {node: '>= 5.10.0'} + resolution: + { integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== } + engines: { node: ">= 5.10.0" } - brace-expansion@1.1.14: - resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + brace-expansion@1.1.15: + resolution: + { integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg== } - brace-expansion@2.1.0: - resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + brace-expansion@2.1.1: + resolution: + { integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== } brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} - engines: {node: 18 || 20 || >=22} + resolution: + { integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g== } + engines: { node: 18 || 20 || >=22 } braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== } + engines: { node: ">=0.10.0" } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } + engines: { node: ">=8" } broccoli-asset-rev@3.0.0: - resolution: {integrity: sha512-gAHQZnwvtl74tGevUqGuWoyOdJUdMMv0TjGSMzbdyGImr9fZcnM6xmggDA8bUawrMto9NFi00ZtNUgA4dQiUBw==} + resolution: + { integrity: sha512-gAHQZnwvtl74tGevUqGuWoyOdJUdMMv0TjGSMzbdyGImr9fZcnM6xmggDA8bUawrMto9NFi00ZtNUgA4dQiUBw== } broccoli-asset-rewrite@2.0.0: - resolution: {integrity: sha512-dqhxdQpooNi7LHe8J9Jdxp6o3YPFWl4vQmint6zrsn2sVbOo+wpyiX3erUSt0IBtjNkAxqJjuvS375o2cLBHTA==} + resolution: + { integrity: sha512-dqhxdQpooNi7LHe8J9Jdxp6o3YPFWl4vQmint6zrsn2sVbOo+wpyiX3erUSt0IBtjNkAxqJjuvS375o2cLBHTA== } broccoli-babel-transpiler@7.8.1: - resolution: {integrity: sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA== } + engines: { node: ">= 6" } broccoli-babel-transpiler@8.0.2: - resolution: {integrity: sha512-XIGsUyJgehSRNVVrOnRuW+tijYBqkoGEONc/UHkiOBW+C0trPv9c/Icc/Cf+2l1McQlHW/Mc6SksHg6qFlEClg==} - engines: {node: 16.* || >= 18} + resolution: + { integrity: sha512-XIGsUyJgehSRNVVrOnRuW+tijYBqkoGEONc/UHkiOBW+C0trPv9c/Icc/Cf+2l1McQlHW/Mc6SksHg6qFlEClg== } + engines: { node: 16.* || >= 18 } peerDependencies: - '@babel/core': ^7.17.9 + "@babel/core": ^7.17.9 broccoli-caching-writer@2.3.1: - resolution: {integrity: sha512-lfoDx98VaU8tG4mUXCxKdKyw2Lr+iSIGUjCgV83KC2zRC07SzYTGuSsMqpXFiOQlOGuoJxG3NRoyniBa1BWOqA==} + resolution: + { integrity: sha512-lfoDx98VaU8tG4mUXCxKdKyw2Lr+iSIGUjCgV83KC2zRC07SzYTGuSsMqpXFiOQlOGuoJxG3NRoyniBa1BWOqA== } broccoli-caching-writer@3.1.0: - resolution: {integrity: sha512-3TWi92ogzUhLmCF5V4DjhN7v4t6OjXYO21p9GkuOZQ1SiVmM1sYio364y64dREHUzjFEcH8mdVCiRDdrwUGVTw==} + resolution: + { integrity: sha512-3TWi92ogzUhLmCF5V4DjhN7v4t6OjXYO21p9GkuOZQ1SiVmM1sYio364y64dREHUzjFEcH8mdVCiRDdrwUGVTw== } broccoli-concat@4.2.7: - resolution: {integrity: sha512-JePfBFwHtZ2FR33PBZQA99/hQ4idIbZ205rH84Jw6vgkuKDRVXWVzZP2gvR2WXugXaQ1fj3+yO04b0QsstNHzQ==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-JePfBFwHtZ2FR33PBZQA99/hQ4idIbZ205rH84Jw6vgkuKDRVXWVzZP2gvR2WXugXaQ1fj3+yO04b0QsstNHzQ== } + engines: { node: 10.* || >= 12.* } broccoli-config-loader@1.0.1: - resolution: {integrity: sha512-MDKYQ50rxhn+g17DYdfzfEM9DjTuSGu42Db37A8TQHQe8geYEcUZ4SQqZRgzdAI3aRQNlA1yBHJfOeGmOjhLIg==} + resolution: + { integrity: sha512-MDKYQ50rxhn+g17DYdfzfEM9DjTuSGu42Db37A8TQHQe8geYEcUZ4SQqZRgzdAI3aRQNlA1yBHJfOeGmOjhLIg== } broccoli-config-replace@1.1.3: - resolution: {integrity: sha512-gWGS2h/2VyJnD9tI1/HzRsXLOptnt7tu+KLpfPuxd+DBcdswn/i0kyVrTxQpFy+C5eo2hBn672QAEZzf/7LlAA==} + resolution: + { integrity: sha512-gWGS2h/2VyJnD9tI1/HzRsXLOptnt7tu+KLpfPuxd+DBcdswn/i0kyVrTxQpFy+C5eo2hBn672QAEZzf/7LlAA== } broccoli-debug@0.6.5: - resolution: {integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg==} + resolution: + { integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg== } broccoli-file-creator@2.1.1: - resolution: {integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw==} - engines: {node: ^4.5 || 6.* || >= 7.*} + resolution: + { integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw== } + engines: { node: ^4.5 || 6.* || >= 7.* } broccoli-filter@1.3.0: - resolution: {integrity: sha512-VXJXw7eBfG82CFxaBDjYmyN7V72D4In2zwLVQJd/h3mBfF3CMdRTsv2L20lmRTtCv1sAHcB+LgMso90e/KYiLw==} + resolution: + { integrity: sha512-VXJXw7eBfG82CFxaBDjYmyN7V72D4In2zwLVQJd/h3mBfF3CMdRTsv2L20lmRTtCv1sAHcB+LgMso90e/KYiLw== } broccoli-funnel-reducer@1.0.0: - resolution: {integrity: sha512-SaOCEdh+wnt2jFUV2Qb32m7LXyElvFwW3NKNaEJyi5PGQNwxfqpkc0KI6AbQANKgdj/40U2UC0WuGThFwuEUaA==} + resolution: + { integrity: sha512-SaOCEdh+wnt2jFUV2Qb32m7LXyElvFwW3NKNaEJyi5PGQNwxfqpkc0KI6AbQANKgdj/40U2UC0WuGThFwuEUaA== } broccoli-funnel@2.0.2: - resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==} - engines: {node: ^4.5 || 6.* || >= 7.*} + resolution: + { integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ== } + engines: { node: ^4.5 || 6.* || >= 7.* } broccoli-funnel@3.0.8: - resolution: {integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ== } + engines: { node: 10.* || >= 12.* } broccoli-kitchen-sink-helpers@0.2.9: - resolution: {integrity: sha512-C+oEqivDofZv/h80rgN4WJkbZkbfwkrIeu8vFn4bb4m4jPd3ICNNplhkXGl3ps439pzc2yjZ1qIwz0yy8uHcQg==} + resolution: + { integrity: sha512-C+oEqivDofZv/h80rgN4WJkbZkbfwkrIeu8vFn4bb4m4jPd3ICNNplhkXGl3ps439pzc2yjZ1qIwz0yy8uHcQg== } broccoli-kitchen-sink-helpers@0.3.1: - resolution: {integrity: sha512-gqYnKSJxBSjj/uJqeuRAzYVbmjWhG0mOZ8jrp6+fnUIOgLN6MvI7XxBECDHkYMIFPJ8Smf4xaI066Q2FqQDnXg==} + resolution: + { integrity: sha512-gqYnKSJxBSjj/uJqeuRAzYVbmjWhG0mOZ8jrp6+fnUIOgLN6MvI7XxBECDHkYMIFPJ8Smf4xaI066Q2FqQDnXg== } broccoli-merge-trees@3.0.2: - resolution: {integrity: sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A== } + engines: { node: ">=6.0.0" } broccoli-merge-trees@4.2.0: - resolution: {integrity: sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw== } + engines: { node: 10.* || >= 12.* } broccoli-middleware@2.1.2: - resolution: {integrity: sha512-hdJ5mPwvsQI/eDZbpztfaA0DNINqp/aHzEz4lPG8WCVOXUfbFdbiWO7nMu3v+mmwTcgRD2e8I4DVQ9J2AoYnPQ==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-hdJ5mPwvsQI/eDZbpztfaA0DNINqp/aHzEz4lPG8WCVOXUfbFdbiWO7nMu3v+mmwTcgRD2e8I4DVQ9J2AoYnPQ== } + engines: { node: 6.* || 8.* || >= 10.* } broccoli-node-api@1.7.0: - resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==} + resolution: + { integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw== } broccoli-node-info@2.2.0: - resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg== } + engines: { node: 8.* || >= 10.* } broccoli-output-wrapper@3.2.5: - resolution: {integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw== } + engines: { node: 10.* || >= 12.* } broccoli-persistent-filter@1.4.6: - resolution: {integrity: sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw==} + resolution: + { integrity: sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw== } broccoli-persistent-filter@2.3.1: - resolution: {integrity: sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g==} - engines: {node: 6.* || >= 8.*} + resolution: + { integrity: sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g== } + engines: { node: 6.* || >= 8.* } broccoli-persistent-filter@3.1.3: - resolution: {integrity: sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw== } + engines: { node: 10.* || >= 12.* } broccoli-plugin@1.1.0: - resolution: {integrity: sha512-dY1QsA20of9wWEto8yhN7JQjpfjySmgeIMsvnQ9aBAv1wEJJCe04B0ekdgq7Bduyx9yWXdoC5CngGy81swmp2w==} + resolution: + { integrity: sha512-dY1QsA20of9wWEto8yhN7JQjpfjySmgeIMsvnQ9aBAv1wEJJCe04B0ekdgq7Bduyx9yWXdoC5CngGy81swmp2w== } broccoli-plugin@1.3.1: - resolution: {integrity: sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==} + resolution: + { integrity: sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ== } broccoli-plugin@2.1.0: - resolution: {integrity: sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw== } + engines: { node: 6.* || 8.* || >= 10.* } broccoli-plugin@4.0.7: - resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg== } + engines: { node: 10.* || >= 12.* } broccoli-slow-trees@3.1.0: - resolution: {integrity: sha512-FRI7mRTk2wjIDrdNJd6znS7Kmmne4VkAkl8Ix1R/VoePFMD0g0tEl671xswzFqaRjpT9Qu+CC4hdXDLDJBuzMw==} + resolution: + { integrity: sha512-FRI7mRTk2wjIDrdNJd6znS7Kmmne4VkAkl8Ix1R/VoePFMD0g0tEl671xswzFqaRjpT9Qu+CC4hdXDLDJBuzMw== } broccoli-source@2.1.2: - resolution: {integrity: sha512-1lLayO4wfS0c0Sj50VfHJXNWf94FYY0WUhxj0R77thbs6uWI7USiOWFqQV5dRmhAJnoKaGN4WyLGQbgjgiYFwQ==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-1lLayO4wfS0c0Sj50VfHJXNWf94FYY0WUhxj0R77thbs6uWI7USiOWFqQV5dRmhAJnoKaGN4WyLGQbgjgiYFwQ== } + engines: { node: 6.* || 8.* || >= 10.* } broccoli-source@3.0.1: - resolution: {integrity: sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==} - engines: {node: 8.* || 10.* || >= 12.*} + resolution: + { integrity: sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg== } + engines: { node: 8.* || 10.* || >= 12.* } broccoli-sri-hash@2.1.2: - resolution: {integrity: sha512-toLD/v7ut2ajcH8JsdCMG2Bpq2qkwTcKM6CMzVMSAJjaz/KpK69fR+gSqe1dsjh+QTdxG0yVvkq3Sij/XMzV6A==} + resolution: + { integrity: sha512-toLD/v7ut2ajcH8JsdCMG2Bpq2qkwTcKM6CMzVMSAJjaz/KpK69fR+gSqe1dsjh+QTdxG0yVvkq3Sij/XMzV6A== } broccoli-stew@3.0.0: - resolution: {integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg== } + engines: { node: 8.* || >= 10.* } broccoli-terser-sourcemap@4.1.1: - resolution: {integrity: sha512-8sbpRf0/+XeszBJQM7vph2UNj4Kal0lCI/yubcrBIzb2NvYj5gjTHJABXOdxx5mKNmlCMu2hx2kvOtMpQsxrfg==} - engines: {node: ^10.12.0 || 12.* || >= 14} + resolution: + { integrity: sha512-8sbpRf0/+XeszBJQM7vph2UNj4Kal0lCI/yubcrBIzb2NvYj5gjTHJABXOdxx5mKNmlCMu2hx2kvOtMpQsxrfg== } + engines: { node: ^10.12.0 || 12.* || >= 14 } broccoli@4.0.0: - resolution: {integrity: sha512-p5el5/ig0QeRGFPkLMPdm7KblkTm44eicEWfwnRTz6hncghVuRZ0+XDAtCi7ynxobeE/mey5Q7lAulFkgNzxVA==} - engines: {node: '>= 20.19.*'} + resolution: + { integrity: sha512-p5el5/ig0QeRGFPkLMPdm7KblkTm44eicEWfwnRTz6hncghVuRZ0+XDAtCi7ynxobeE/mey5Q7lAulFkgNzxVA== } + engines: { node: ">= 20.19.*" } brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + resolution: + { integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== } brotli-size@4.0.0: - resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} - engines: {node: '>= 10.16.0'} + resolution: + { integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA== } + engines: { node: ">= 10.16.0" } browser-or-node@3.0.0: - resolution: {integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==} + resolution: + { integrity: sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ== } browser-process-hrtime@1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + resolution: + { integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== } browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + resolution: + { integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== } browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + resolution: + { integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== } browserify-cipher@1.0.1: - resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + resolution: + { integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== } browserify-des@1.0.2: - resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + resolution: + { integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== } browserify-rsa@4.1.1: - resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== } + engines: { node: ">= 0.10" } browserify-sign@4.2.6: - resolution: {integrity: sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg== } + engines: { node: ">= 0.10" } browserify-zlib@0.2.0: - resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + resolution: + { integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== } browserslist-useragent@3.1.4: - resolution: {integrity: sha512-o9V55790uae98Kwn+vwyO+ww07OreiH1BUc9bjjlUbIL3Fh43fyoasZxZ2EiI4ErfEIKwbycQ1pvwOBlySJ7ow==} - engines: {node: '>= 6.x.x'} + resolution: + { integrity: sha512-o9V55790uae98Kwn+vwyO+ww07OreiH1BUc9bjjlUbIL3Fh43fyoasZxZ2EiI4ErfEIKwbycQ1pvwOBlySJ7ow== } + engines: { node: ">= 6.x.x" } browserslist@3.2.8: - resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} + resolution: + { integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== } hasBin: true browserslist@4.28.2: - resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg== } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true - browserstack@1.6.1: - resolution: {integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==} - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + resolution: + { integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== } buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + resolution: + { integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== } buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w== } + engines: { node: ">=8.0.0" } buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } buffer-json@2.0.0: - resolution: {integrity: sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==} + resolution: + { integrity: sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== } buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + resolution: + { integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== } buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + resolution: + { integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== } buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== } buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== } builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== } + engines: { node: ">=6" } builtin-status-codes@3.0.0: - resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + resolution: + { integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== } builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + resolution: + { integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== } bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== } + engines: { node: ">=18" } bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } peerDependencies: - esbuild: '>=0.18' + esbuild: ">=0.18" byte-size@8.1.1: - resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} - engines: {node: '>=12.17'} + resolution: + { integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== } + engines: { node: ">=12.17" } bytes@1.0.0: - resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} + resolution: + { integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ== } bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== } + engines: { node: ">= 0.8" } bytestreamjs@2.0.1: - resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ== } + engines: { node: ">=6.0.0" } c12@3.3.4: - resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + resolution: + { integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA== } peerDependencies: - magicast: '*' + magicast: "*" peerDependenciesMeta: magicast: optional: true cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== } + engines: { node: ">=8" } cac@7.0.0: - resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ== } + engines: { node: ">=20.19.0" } cacache@12.0.4: - resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} + resolution: + { integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== } cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== } + engines: { node: ">= 10" } cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } cacache@20.0.4: - resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA== } + engines: { node: ^20.17.0 || >=22.9.0 } cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== } + engines: { node: ">=0.10.0" } cache-content-type@1.0.1: - resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} - engines: {node: '>= 6.0.0'} + resolution: + { integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== } + engines: { node: ">= 6.0.0" } cache-loader@4.1.0: - resolution: {integrity: sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==} - engines: {node: '>= 8.9.0'} + resolution: + { integrity: sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== } + engines: { node: ">= 8.9.0" } peerDependencies: webpack: ^4.0.0 - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== } + engines: { node: ">=8" } cacheable@2.3.5: - resolution: {integrity: sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==} + resolution: + { integrity: sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg== } caching-transform@4.0.0: - resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== } + engines: { node: ">=8" } calculate-cache-key-for-tree@2.0.0: - resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ== } + engines: { node: 6.* || 8.* || >= 10.* } call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== } + engines: { node: ">= 0.4" } call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ== } + engines: { node: ">= 0.4" } call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + resolution: + { integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== } + engines: { node: ">= 0.4" } caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== } + engines: { node: ">=4" } caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== } + engines: { node: ">=4" } callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== } + engines: { node: ">=4" } callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } + engines: { node: ">=6" } camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} + resolution: + { integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== } camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + resolution: + { integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== } camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== } + engines: { node: ">=8" } camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== } + engines: { node: ">=6" } camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== } + engines: { node: ">=10" } camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA== } + engines: { node: ">=16" } can-symlink@1.0.0: - resolution: {integrity: sha512-RbsNrFyhwkx+6psk/0fK/Q9orOUr9VMxohGd8vTa4djf4TGLfblBgUfqZChrZuW0Q+mz2eBPFLusw9Jfukzmhg==} + resolution: + { integrity: sha512-RbsNrFyhwkx+6psk/0fK/Q9orOUr9VMxohGd8vTa4djf4TGLfblBgUfqZChrZuW0Q+mz2eBPFLusw9Jfukzmhg== } hasBin: true caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + resolution: + { integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== } + + caniuse-api@4.0.0: + resolution: + { integrity: sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA== } - caniuse-lite@1.0.30001793: - resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + caniuse-lite@1.0.30001799: + resolution: + { integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw== } canvas@3.2.3: - resolution: {integrity: sha512-PzE5nJZPz72YUAfo8oTp0u3fqqY7IzlTubneAihqDYAUcBk7ryeCmBbdJBEdaH0bptSOe2VT2Zwcb3UaFyaSWw==} - engines: {node: ^18.12.0 || >= 20.9.0} + resolution: + { integrity: sha512-PzE5nJZPz72YUAfo8oTp0u3fqqY7IzlTubneAihqDYAUcBk7ryeCmBbdJBEdaH0bptSOe2VT2Zwcb3UaFyaSWw== } + engines: { node: ^18.12.0 || >= 20.9.0 } capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + resolution: + { integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== } capture-exit@2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== } + engines: { node: 6.* || 8.* || >= 10.* } cardinal@1.0.0: - resolution: {integrity: sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==} + resolution: + { integrity: sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg== } hasBin: true case-sensitive-paths-webpack-plugin@2.4.0: - resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== } + engines: { node: ">=4" } caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + resolution: + { integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== } ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + resolution: + { integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== } chai-a11y-axe@1.5.0: - resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} + resolution: + { integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ== } chai@4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== } + engines: { node: ">=4" } chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== } + engines: { node: ">=18" } chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== } + engines: { node: ">=12" } chalk-template@1.1.2: - resolution: {integrity: sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA== } + engines: { node: ">=14.16" } chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== } + engines: { node: ">=0.10.0" } chalk@2.4.1: - resolution: {integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== } + engines: { node: ">=4" } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } + engines: { node: ">=4" } chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== } + engines: { node: ">=8" } chalk@4.1.0: - resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== } + engines: { node: ">=10" } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: ">=10" } chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + resolution: + { integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== } char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== } + engines: { node: ">=10" } character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + resolution: + { integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== } character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + resolution: + { integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== } character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + resolution: + { integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== } character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + resolution: + { integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== } character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + resolution: + { integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== } character-parser@2.2.0: - resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + resolution: + { integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== } character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + resolution: + { integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== } chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + resolution: + { integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ== } charm@1.0.2: - resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + resolution: + { integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw== } check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + resolution: + { integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== } check-node-version@4.2.1: - resolution: {integrity: sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==} - engines: {node: '>=8.3.0'} + resolution: + { integrity: sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw== } + engines: { node: ">=8.3.0" } hasBin: true cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + resolution: + { integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== } cheerio@1.2.0: - resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} - engines: {node: '>=20.18.1'} + resolution: + { integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg== } + engines: { node: ">=20.18.1" } chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + resolution: + { integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== } + engines: { node: ">= 8.10.0" } chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + resolution: + { integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== } + engines: { node: ">= 14.16.0" } chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} + resolution: + { integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== } + engines: { node: ">= 20.19.0" } chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + resolution: + { integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== } chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== } + engines: { node: ">=10" } chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== } + engines: { node: ">=18" } chrome-launcher@1.2.1: - resolution: {integrity: sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==} - engines: {node: '>=12.13.0'} + resolution: + { integrity: sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A== } + engines: { node: ">=12.13.0" } hasBin: true chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== } + engines: { node: ">=6.0" } chromium-bidi@0.11.0: - resolution: {integrity: sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==} + resolution: + { integrity: sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA== } peerDependencies: - devtools-protocol: '*' + devtools-protocol: "*" chromium-bidi@14.0.0: - resolution: {integrity: sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==} + resolution: + { integrity: sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw== } peerDependencies: - devtools-protocol: '*' + devtools-protocol: "*" chromium-bidi@16.0.1: - resolution: {integrity: sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA==} - engines: {node: '>=20.19.0 <22.0.0 || >=22.12.0'} + resolution: + { integrity: sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA== } + engines: { node: ">=20.19.0 <22.0.0 || >=22.12.0" } peerDependencies: - devtools-protocol: '*' + devtools-protocol: "*" ci-env@1.17.0: - resolution: {integrity: sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==} + resolution: + { integrity: sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A== } ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + resolution: + { integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== } ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== } + engines: { node: ">=8" } ci-info@4.3.1: - resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== } + engines: { node: ">=8" } ci-info@4.4.0: - resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== } + engines: { node: ">=8" } cipher-base@1.0.7: - resolution: {integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA== } + engines: { node: ">= 0.10" } citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + resolution: + { integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== } citty@0.2.2: - resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} + resolution: + { integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w== } cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + resolution: + { integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== } class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== } + engines: { node: ">=0.10.0" } clean-base-url@1.0.0: - resolution: {integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg==} + resolution: + { integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg== } clean-css@4.2.4: - resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} - engines: {node: '>= 4.0'} + resolution: + { integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== } + engines: { node: ">= 4.0" } clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + resolution: + { integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== } + engines: { node: ">= 10.0" } clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== } + engines: { node: ">=4" } clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== } + engines: { node: ">=6" } clean-up-path@1.0.0: - resolution: {integrity: sha512-PHGlEF0Z6976qQyN6gM7kKH6EH0RdfZcc8V+QhFe36eRxV0SMH5OUBZG7Bxa9YcreNzyNbK63cGiZxdSZgosRw==} + resolution: + { integrity: sha512-PHGlEF0Z6976qQyN6gM7kKH6EH0RdfZcc8V+QhFe36eRxV0SMH5OUBZG7Bxa9YcreNzyNbK63cGiZxdSZgosRw== } clean-webpack-plugin@4.0.0: - resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w== } + engines: { node: ">=10.0.0" } peerDependencies: - webpack: '>=4.0.0 <6.0.0' + webpack: ">=4.0.0 <6.0.0" cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== } + engines: { node: ">=6" } cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== } + engines: { node: ">=10" } cli-cursor@2.1.0: - resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== } + engines: { node: ">=4" } cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== } + engines: { node: ">=8" } cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== } + engines: { node: ">=18" } cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} + resolution: + { integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== } + engines: { node: ">=8.0.0", npm: ">=5.0.0" } hasBin: true cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== } + engines: { node: ">=6" } cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== } + engines: { node: ">=6" } cli-spinners@3.4.0: - resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} - engines: {node: '>=18.20'} + resolution: + { integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw== } + engines: { node: ">=18.20" } cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== } + engines: { node: 10.* || >= 12.* } cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} + resolution: + { integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== } + engines: { node: ">= 0.2.0" } cli-truncate@0.2.1: - resolution: {integrity: sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== } + engines: { node: ">=0.10.0" } cli-truncate@5.2.0: - resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw== } + engines: { node: ">=20" } cli-width@2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + resolution: + { integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== } cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== } + engines: { node: ">= 10" } cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} + resolution: + { integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== } + engines: { node: ">= 12" } client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + resolution: + { integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== } clipboard-image@0.1.0: - resolution: {integrity: sha512-SWk7FgaXLNFld19peQ/rTe0n97lwR1WbkqxV6JKCAOh7U52AKV/PeMFCyt/8IhBdqyDA8rdyewQMKZqvWT5Akg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-SWk7FgaXLNFld19peQ/rTe0n97lwR1WbkqxV6JKCAOh7U52AKV/PeMFCyt/8IhBdqyDA8rdyewQMKZqvWT5Akg== } + engines: { node: ">=20" } hasBin: true clipboardy@2.3.0: - resolution: {integrity: sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== } + engines: { node: ">=8" } clipboardy@5.3.1: - resolution: {integrity: sha512-fPWgBqpp9ctiOQCkE5yjYGzv11ZU55g6ahEgr3COiio6dXdt1mbchCPXQrSR2Y9sZqfi8L7QD3+UosgXVIuPdg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-fPWgBqpp9ctiOQCkE5yjYGzv11ZU55g6ahEgr3COiio6dXdt1mbchCPXQrSR2Y9sZqfi8L7QD3+UosgXVIuPdg== } + engines: { node: ">=20" } cliui@5.0.0: - resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + resolution: + { integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== } cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + resolution: + { integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== } cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + resolution: + { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== } + engines: { node: ">=12" } cliui@9.0.1: - resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w== } + engines: { node: ">=20" } clone-deep@0.2.4: - resolution: {integrity: sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg== } + engines: { node: ">=0.10.0" } clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } + engines: { node: ">=6" } clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + resolution: + { integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== } clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== } + engines: { node: ">=0.8" } clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== } + engines: { node: ">=0.8" } clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== } + engines: { node: ">=6" } - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} + cluster-key-slot@1.1.1: + resolution: + { integrity: sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw== } + engines: { node: ">=0.10.0" } cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } cmd-shim@7.0.0: - resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw== } + engines: { node: ^18.17.0 || >=20.5.0 } cmdk@1.1.1: - resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + resolution: + { integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg== } peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc co-body@6.2.0: - resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA== } + engines: { node: ">=8.0.0" } co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + resolution: + { integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== } + engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } coa@2.0.2: - resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} - engines: {node: '>= 4.0'} + resolution: + { integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== } + engines: { node: ">= 4.0" } code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== } + engines: { node: ">=0.10.0" } codsen-utils@1.7.3: - resolution: {integrity: sha512-YIFQQ1n2NSgwoB3sCe7RpkZzsrPxTMek6jc7wC9fXOm1wwfWAKja9gLOMEjlXOUd3LKV3o6Jci7n9BoHs5Z8Sg==} - engines: {node: '>=14.18.0'} + resolution: + { integrity: sha512-YIFQQ1n2NSgwoB3sCe7RpkZzsrPxTMek6jc7wC9fXOm1wwfWAKja9gLOMEjlXOUd3LKV3o6Jci7n9BoHs5Z8Sg== } + engines: { node: ">=14.18.0" } collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + resolution: + { integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== } collect-v8-coverage@1.0.3: - resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + resolution: + { integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== } collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== } + engines: { node: ">=0.10.0" } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: ">=7.0.0" } color-convert@3.1.3: - resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} - engines: {node: '>=14.6'} + resolution: + { integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg== } + engines: { node: ">=14.6" } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } color-name@2.1.0: - resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg== } + engines: { node: ">=12.20" } color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: + { integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== } color-string@2.1.4: - resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg== } + engines: { node: ">=18" } color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + resolution: + { integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== } hasBin: true color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + resolution: + { integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== } color@5.0.3: - resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA== } + engines: { node: ">=18" } colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + resolution: + { integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== } colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: + { integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== } colorjs.io@0.6.1: - resolution: {integrity: sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==} + resolution: + { integrity: sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg== } colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} + resolution: + { integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== } + engines: { node: ">=0.1.90" } colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} + resolution: + { integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== } + engines: { node: ">=0.1.90" } columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== } + engines: { node: ">=8.0.0" } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: ">= 0.8" } - comctx@1.6.1: - resolution: {integrity: sha512-ZMRGAYASYRdVfEoB7oxH8Nqu5Ay8I+YvAsQni+td0pYV9eww/PrtSFVyvc2JkNQyHXGDknCB4wJfxFYP6fuqZg==} + comctx@1.7.5: + resolution: + { integrity: sha512-0fsxsxr1Hg2T99wOIteUbsJOX6jMmnhAJepcVRqNRMWpcbxRhbm2+0R8qEuQEaE4gWjfdXaKeAGYAn0yeElylQ== } comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + resolution: + { integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== } command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== } + engines: { node: ">=4.0.0" } command-line-usage@6.1.3: - resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== } + engines: { node: ">=8.0.0" } command-line-usage@7.0.4: - resolution: {integrity: sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==} - engines: {node: '>=12.20.0'} + resolution: + { integrity: sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg== } + engines: { node: ">=12.20.0" } commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== } + engines: { node: ">=14" } commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== } + engines: { node: ">=16" } commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== } + engines: { node: ">=18" } commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== } + engines: { node: ">=18" } commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== } + engines: { node: ">=20" } commander@15.0.0: - resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} - engines: {node: '>=22.12.0'} + resolution: + { integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== } + engines: { node: ">=22.12.0" } commander@2.17.1: - resolution: {integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==} + resolution: + { integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== } commander@2.19.0: - resolution: {integrity: sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==} + resolution: + { integrity: sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== } commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== } + engines: { node: ">= 6" } commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== } + engines: { node: ">= 6" } commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== } + engines: { node: ">= 10" } commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + resolution: + { integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== } + engines: { node: ">= 12" } commander@9.0.0: - resolution: {integrity: sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==} - engines: {node: ^12.20.0 || >=14} + resolution: + { integrity: sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== } + engines: { node: ^12.20.0 || >=14 } commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} + resolution: + { integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== } + engines: { node: ^12.20.0 || >=14 } comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== } + engines: { node: ">= 12.0.0" } - comment-parser@1.4.6: - resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} - engines: {node: '>= 12.0.0'} + comment-parser@1.4.7: + resolution: + { integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ== } + engines: { node: ">= 12.0.0" } common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + resolution: + { integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== } common-ancestor-path@2.0.0: - resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng== } + engines: { node: ">= 18" } common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + resolution: + { integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== } common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== } + engines: { node: ">=4.0.0" } commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + resolution: + { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + resolution: + { integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== } compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + resolution: + { integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== } compatx@0.2.0: - resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} + resolution: + { integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA== } component-bind@1.0.0: - resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==} + resolution: + { integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== } component-emitter@1.2.1: - resolution: {integrity: sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==} + resolution: + { integrity: sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== } component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + resolution: + { integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== } component-inherit@0.0.3: - resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==} + resolution: + { integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== } compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg== } + engines: { node: ">= 14" } compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== } + engines: { node: ">= 0.6" } compression-webpack-plugin@6.1.2: - resolution: {integrity: sha512-z6xtgKP3Uds2lyrkx2PGwrE9FZT8raHTC3ImFrY3e0faAfSfVIV63JmR+sfk5pf4OhUj3E4XdjZBCKpjYWIw6Q==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-z6xtgKP3Uds2lyrkx2PGwrE9FZT8raHTC3ImFrY3e0faAfSfVIV63JmR+sfk5pf4OhUj3E4XdjZBCKpjYWIw6Q== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== } + engines: { node: ">= 0.8.0" } computed-style@0.1.4: - resolution: {integrity: sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==} + resolution: + { integrity: sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w== } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + resolution: + { integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== } + engines: { "0": node >= 0.8 } concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - - concurrently@9.2.1: - resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== } + engines: { "0": node >= 6.0 } + + concurrently@10.0.3: + resolution: + { integrity: sha512-hc3LH4UaKWd/bbyDK/IGVa4RB6PtQ3CUYwtrkzqHn+wIG3Hr5fhpRlk0L/gCa8ZE1L/Ufj50Zho69cI5w8SQBA== } + engines: { node: ">=22" } hasBin: true confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + resolution: + { integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== } confbox@0.2.4: - resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + resolution: + { integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ== } config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + resolution: + { integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== } configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== } + engines: { node: ">=8" } configstore@7.1.0: - resolution: {integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg== } + engines: { node: ">=18" } connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== } + engines: { node: ">=0.8" } connect-livereload@0.6.1: - resolution: {integrity: sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g==} + resolution: + { integrity: sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g== } connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== } + engines: { node: ">= 0.10.0" } consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} + resolution: + { integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== } + engines: { node: ^14.18.0 || >=16.10.0 } console-browserify@1.2.0: - resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + resolution: + { integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== } console-clear@1.1.1: - resolution: {integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ== } + engines: { node: ">=4" } console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + resolution: + { integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== } console-ui@3.1.2: - resolution: {integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw== } + engines: { node: 6.* || 8.* || >= 10.* } consolidate@0.15.1: - resolution: {integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== } + engines: { node: ">= 0.10.0" } deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog peerDependencies: arc-templates: ^0.5.3 - atpl: '>=0.7.6' + atpl: ">=0.7.6" babel-core: ^6.26.3 bracket-template: ^1.1.5 coffee-script: ^1.12.7 @@ -26474,9 +29908,9 @@ packages: swig: ^1.4.2 swig-templates: ^2.0.3 teacup: ^2.0.0 - templayed: '>=0.2.3' - then-jade: '*' - then-pug: '*' + templayed: ">=0.2.3" + then-jade: "*" + then-pug: "*" tinyliquid: ^0.2.34 toffee: ^0.3.6 twig: ^1.15.2 @@ -26595,12 +30029,13 @@ packages: optional: true consolidate@1.0.4: - resolution: {integrity: sha512-RuZ3xnqEDsxiwaoIkqVeeK3gg9qxw7+YKYX2tKhLs1eukVKMgSr4VYI3iYFsRHi4TloHYDlugrz3kvkjs3nynA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-RuZ3xnqEDsxiwaoIkqVeeK3gg9qxw7+YKYX2tKhLs1eukVKMgSr4VYI3iYFsRHi4TloHYDlugrz3kvkjs3nynA== } + engines: { node: ">=14" } peerDependencies: - '@babel/core': ^7.22.5 + "@babel/core": ^7.22.5 arc-templates: ^0.5.3 - atpl: '>=0.7.6' + atpl: ">=0.7.6" bracket-template: ^1.1.5 coffee-script: ^1.12.7 dot: ^1.1.3 @@ -26629,14 +30064,14 @@ packages: pug: ^3.0.0 qejs: ^3.0.5 ractive: ^1.3.12 - react: '>=16.13.1' - react-dom: '>=16.13.1' + react: ">=16.13.1" + react-dom: ">=16.13.1" slm: ^2.0.0 swig: ^1.4.2 swig-templates: ^2.0.3 teacup: ^2.0.0 - templayed: '>=0.2.3' - then-pug: '*' + templayed: ">=0.2.3" + then-pug: "*" tinyliquid: ^0.2.34 toffee: ^0.3.6 twig: ^1.15.2 @@ -26647,7 +30082,7 @@ packages: walrus: ^0.10.1 whiskers: ^0.4.0 peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true arc-templates: optional: true @@ -26745,453 +30180,522 @@ packages: optional: true constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + resolution: + { integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== } constantinople@4.0.1: - resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} + resolution: + { integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== } constants-browserify@1.0.0: - resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + resolution: + { integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== } content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== } + engines: { node: ">= 0.6" } content-disposition@1.1.0: - resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} - engines: {node: '>=18'} - - content-tag@2.0.3: - resolution: {integrity: sha512-htLIdtfhhKW2fHlFLnZH7GFzHSdSpHhDLrWVswkNiiPMZ5uXq5JfrGboQKFhNQuAAFF8VNB2EYUj3MsdJrKKpg==} + resolution: + { integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g== } + engines: { node: ">=18" } content-tag@3.1.3: - resolution: {integrity: sha512-4Kiv9mEroxuMXfWUNUHcljVJgxThCNk7eEswdHMXdzJnkBBaYDqDwzHkoh3F74JJhfU3taJOsgpR6oEGIDg17g==} + resolution: + { integrity: sha512-4Kiv9mEroxuMXfWUNUHcljVJgxThCNk7eEswdHMXdzJnkBBaYDqDwzHkoh3F74JJhfU3taJOsgpR6oEGIDg17g== } content-tag@4.2.0: - resolution: {integrity: sha512-f/o+F3qSa4gg23I7RWy6cMDxP2nPo99YWusxw2bjne7ZC6Acqqf4uB/+87AekOq1ehTocHH7b7nMd2X4S3NHVw==} + resolution: + { integrity: sha512-f/o+F3qSa4gg23I7RWy6cMDxP2nPo99YWusxw2bjne7ZC6Acqqf4uB/+87AekOq1ehTocHH7b7nMd2X4S3NHVw== } content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== } + engines: { node: ">= 0.6" } content-type@2.0.0: - resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ== } + engines: { node: ">=18" } continuable-cache@0.3.1: - resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} + resolution: + { integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA== } conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== } + engines: { node: ">=16" } conventional-changelog-angular@8.3.1: - resolution: {integrity: sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg== } + engines: { node: ">=18" } conventional-changelog-conventionalcommits@9.3.1: - resolution: {integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw== } + engines: { node: ">=18" } conventional-changelog-core@5.0.1: - resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A== } + engines: { node: ">=14" } conventional-changelog-preset-loader@3.0.0: - resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA== } + engines: { node: ">=14" } conventional-changelog-writer@6.0.1: - resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ== } + engines: { node: ">=14" } hasBin: true conventional-commits-filter@3.0.0: - resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q== } + engines: { node: ">=14" } conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== } + engines: { node: ">=14" } hasBin: true conventional-commits-parser@6.4.0: - resolution: {integrity: sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw== } + engines: { node: ">=18" } hasBin: true conventional-recommended-bump@7.0.1: - resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA== } + engines: { node: ">=14" } hasBin: true convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + resolution: + { integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== } convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } cookie-es@1.2.3: - resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + resolution: + { integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw== } cookie-es@2.0.1: - resolution: {integrity: sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==} + resolution: + { integrity: sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA== } cookie-es@3.1.1: - resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} + resolution: + { integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg== } cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + resolution: + { integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== } cookie-signature@1.2.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} - engines: {node: '>=6.6.0'} + resolution: + { integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== } + engines: { node: ">=6.6.0" } cookie@0.3.1: - resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== } + engines: { node: ">= 0.6" } cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== } + engines: { node: ">= 0.6" } cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== } + engines: { node: ">= 0.6" } cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== } + engines: { node: ">= 0.6" } cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ== } + engines: { node: ">=18" } cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} - - copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + resolution: + { integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw== } + engines: { node: ">= 0.8" } copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} + resolution: + { integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== } + engines: { node: ">=12.13" } copy-anything@4.0.5: - resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA== } + engines: { node: ">=18" } copy-concurrently@1.0.5: - resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} + resolution: + { integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== } deprecated: This package is no longer supported. copy-dereference@1.0.0: - resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==} + resolution: + { integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw== } copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== } + engines: { node: ">=0.10.0" } copy-props@4.0.0: - resolution: {integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw== } + engines: { node: ">= 10.13.0" } copy-webpack-plugin@10.2.4: - resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} - engines: {node: '>= 12.20.0'} - peerDependencies: - webpack: ^5.1.0 - - copy-webpack-plugin@14.0.0: - resolution: {integrity: sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==} - engines: {node: '>= 20.9.0'} + resolution: + { integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg== } + engines: { node: ">= 12.20.0" } peerDependencies: webpack: ^5.1.0 copy-webpack-plugin@6.4.1: - resolution: {integrity: sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.37.0 || ^5.0.0 copy-webpack-plugin@9.1.0: - resolution: {integrity: sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA== } + engines: { node: ">= 12.13.0" } peerDependencies: webpack: ^5.1.0 copyfiles@2.4.1: - resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} + resolution: + { integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== } hasBin: true core-js-bundle@3.49.0: - resolution: {integrity: sha512-WXc7oOsePN3aKFOJVG5zQdi+h/Jm2W0WIPYvRc4IG3vkNcbC2w6LlSzTmnhOl6N1xmOJEzCSNieX3mwF+3zBGw==} + resolution: + { integrity: sha512-WXc7oOsePN3aKFOJVG5zQdi+h/Jm2W0WIPYvRc4IG3vkNcbC2w6LlSzTmnhOl6N1xmOJEzCSNieX3mwF+3zBGw== } core-js-compat@3.49.0: - resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + resolution: + { integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA== } core-js-pure@3.49.0: - resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==} + resolution: + { integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw== } core-js@2.6.12: - resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + resolution: + { integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== } deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. core-js@3.49.0: - resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} + resolution: + { integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg== } core-object@3.1.5: - resolution: {integrity: sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg== } + engines: { node: ">= 4" } core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + resolution: + { integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== } core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== } cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw== } + engines: { node: ">= 0.10" } cosmiconfig-typescript-loader@6.3.0: - resolution: {integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==} - engines: {node: '>=v18'} + resolution: + { integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA== } + engines: { node: ">=v18" } peerDependencies: - '@types/node': '*' - cosmiconfig: '>=9' - typescript: '>=5' + "@types/node": "*" + cosmiconfig: ">=9" + typescript: ">=5" cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== } + engines: { node: ">=4" } cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== } + engines: { node: ">=8" } cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== } + engines: { node: ">=10" } cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== } + engines: { node: ">=14" } peerDependencies: - typescript: '>=4.9.5' + typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== } + engines: { node: ">=14" } peerDependencies: - typescript: '>=4.9.5' + typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true - cosmiconfig@9.0.1: - resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} - engines: {node: '>=14'} + cosmiconfig@9.0.2: + resolution: + { integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg== } + engines: { node: ">=14" } peerDependencies: - typescript: '>=4.9.5' + typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true cpx2@9.0.0: - resolution: {integrity: sha512-KRZGQCmHrM10xfLjrCBTQHpEIJgKtZyOOO5fygu9KE00IjQOL76FHjeON62R5PWS/W2J5ofgRJKF8rpUlEuLPQ==} - engines: {node: ^22.0.0 || >=24.0.0, npm: '>=10'} + resolution: + { integrity: sha512-KRZGQCmHrM10xfLjrCBTQHpEIJgKtZyOOO5fygu9KE00IjQOL76FHjeON62R5PWS/W2J5ofgRJKF8rpUlEuLPQ== } + engines: { node: ^22.0.0 || >=24.0.0, npm: ">=10" } hasBin: true crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== } + engines: { node: ">=0.8" } hasBin: true crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g== } + engines: { node: ">= 14" } crc@4.3.2: - resolution: {integrity: sha512-uGDHf4KLLh2zsHa8D8hIQ1H/HtFQhyHrc0uhHBcoKGol/Xnb+MPYfUMw7cvON6ze/GUESTudKayDcJC5HnJv1A==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-uGDHf4KLLh2zsHa8D8hIQ1H/HtFQhyHrc0uhHBcoKGol/Xnb+MPYfUMw7cvON6ze/GUESTudKayDcJC5HnJv1A== } + engines: { node: ">=12" } peerDependencies: - buffer: '>=6.0.3' + buffer: ">=6.0.3" peerDependenciesMeta: buffer: optional: true create-ecdh@4.0.4: - resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + resolution: + { integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== } create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + resolution: + { integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== } create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + resolution: + { integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== } create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + resolution: + { integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== } critters-webpack-plugin@2.5.0: - resolution: {integrity: sha512-O41TSPV2orAfrV6kSVC0SivZCtVkeypCNKb7xtrbqE/CfjrHeRaFaGuxglcjOI2IGf+oNg6E+ZoOktdlhXPTIQ==} + resolution: + { integrity: sha512-O41TSPV2orAfrV6kSVC0SivZCtVkeypCNKb7xtrbqE/CfjrHeRaFaGuxglcjOI2IGf+oNg6E+ZoOktdlhXPTIQ== } peerDependencies: - html-webpack-plugin: '*' + html-webpack-plugin: "*" peerDependenciesMeta: html-webpack-plugin: optional: true croner@10.0.1: - resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} - engines: {node: '>=18.0'} + resolution: + { integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g== } + engines: { node: ">=18.0" } cross-env@10.1.0: - resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw== } + engines: { node: ">=20" } hasBin: true cross-spawn-promise@0.10.2: - resolution: {integrity: sha512-74PXJf6DYaab2klRS+D+9qxKJL1Weo3/ao9OPoH6NFzxtINSa/HE2mcyAPu1fpEmRTPD4Gdmpg3xEXQSgI8lpg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-74PXJf6DYaab2klRS+D+9qxKJL1Weo3/ao9OPoH6NFzxtINSa/HE2mcyAPu1fpEmRTPD4Gdmpg3xEXQSgI8lpg== } + engines: { node: ">=4" } cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + resolution: + { integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== } cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} - engines: {node: '>=4.8'} + resolution: + { integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== } + engines: { node: ">=4.8" } cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== } + engines: { node: ">= 8" } crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + resolution: + { integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA== } - crossws@0.4.5: - resolution: {integrity: sha512-wUR89x/Rw7/8t+vn0CmGDYM9TD6VtARGb0LD5jq2wjtMy1vCP4M+sm6N6TigWeTYvnA8MoW29NqqXD0ep0rfBA==} + crossws@0.4.6: + resolution: + { integrity: sha512-/Wxe9Z007EbJ496j88nToZEvyPZ8PY/wjZJ18Agh/GCA9cYHyLbxtrpdFlFzAw3TV20F0SUYGl0g6PzChbwUrg== } peerDependencies: - srvx: '>=0.11.5' + srvx: ">=0.11.5" peerDependenciesMeta: srvx: optional: true crypto-browserify@3.12.1: - resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== } + engines: { node: ">= 0.10" } crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== } + engines: { node: ">=8" } crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== } + engines: { node: ">=12" } csp_evaluator@1.1.5: - resolution: {integrity: sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==} + resolution: + { integrity: sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw== } css-b64-images@0.2.5: - resolution: {integrity: sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg==} + resolution: + { integrity: sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg== } hasBin: true css-blank-pseudo@6.0.2: - resolution: {integrity: sha512-J/6m+lsqpKPqWHOifAFtKFeGLOzw3jR92rxQcwRUfA/eTuZzKfKlxOmYDx2+tqOPQAueNvBiY8WhAeHu5qNmTg==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-J/6m+lsqpKPqWHOifAFtKFeGLOzw3jR92rxQcwRUfA/eTuZzKfKlxOmYDx2+tqOPQAueNvBiY8WhAeHu5qNmTg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 css-color-names@0.0.4: - resolution: {integrity: sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==} + resolution: + { integrity: sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== } css-declaration-sorter@4.0.1: - resolution: {integrity: sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==} - engines: {node: '>4'} + resolution: + { integrity: sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== } + engines: { node: ">4" } css-declaration-sorter@6.4.1: - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== } + engines: { node: ^10 || ^12 || >=14 } peerDependencies: postcss: ^8.0.9 css-declaration-sorter@7.4.0: - resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.0.9 css-functions-list@3.3.3: - resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg== } + engines: { node: ">=12" } css-has-pseudo@6.0.5: - resolution: {integrity: sha512-ZTv6RlvJJZKp32jPYnAJVhowDCrRrHUTAxsYSuUPBEDJjzws6neMnzkRblxtgmv1RgcV5dhH2gn7E3wA9Wt6lw==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-ZTv6RlvJJZKp32jPYnAJVhowDCrRrHUTAxsYSuUPBEDJjzws6neMnzkRblxtgmv1RgcV5dhH2gn7E3wA9Wt6lw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 css-loader@5.2.7: - resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.27.0 || ^5.0.0 css-loader@6.11.0: - resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== } + engines: { node: ">= 12.13.0" } peerDependencies: - '@rspack/core': 0.x || 1.x + "@rspack/core": 0.x || 1.x webpack: ^5.0.0 peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-loader@7.1.3: - resolution: {integrity: sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': + "@rspack/core": optional: true webpack: optional: true css-loader@7.1.4: - resolution: {integrity: sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==} - engines: {node: '>= 18.12.0'} + resolution: + { integrity: sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw== } + engines: { node: ">= 18.12.0" } peerDependencies: - '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 webpack: ^5.27.0 peerDependenciesMeta: - '@rspack/core': + "@rspack/core": optional: true webpack: optional: true css-minimizer-webpack-plugin@3.4.1: - resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@parcel/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' + resolution: + { integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== } + engines: { node: ">= 12.13.0" } + peerDependencies: + "@parcel/css": "*" + clean-css: "*" + csso: "*" + esbuild: "*" webpack: ^5.0.0 peerDependenciesMeta: - '@parcel/css': + "@parcel/css": optional: true clean-css: optional: true @@ -27200,293 +30704,354 @@ packages: esbuild: optional: true - css-parse@2.0.0: - resolution: {integrity: sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==} - css-prefers-color-scheme@9.0.1: - resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 css-select-base-adapter@0.1.1: - resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} + resolution: + { integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== } css-select@2.1.0: - resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==} + resolution: + { integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== } css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + resolution: + { integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== } css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + resolution: + { integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== } css-select@6.0.0: - resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} - - css-selector-tokenizer@0.7.3: - resolution: {integrity: sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==} + resolution: + { integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw== } css-simple-parser@3.0.2: - resolution: {integrity: sha512-8PzVfpTZVdRN5X7/4yIdcfM+u7b8C4OF+bchwX7eH0JlPEgpVH8axAr9ByNYMmm20xNIi0Z8llg/JtvhFql/ig==} + resolution: + { integrity: sha512-8PzVfpTZVdRN5X7/4yIdcfM+u7b8C4OF+bchwX7eH0JlPEgpVH8axAr9ByNYMmm20xNIi0Z8llg/JtvhFql/ig== } css-tree@1.0.0-alpha.37: - resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== } + engines: { node: ">=8.0.0" } css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== } + engines: { node: ">=8.0.0" } css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + resolution: + { integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0" } css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + resolution: + { integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + resolution: + { integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA== } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } css-what@3.4.2: - resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== } + engines: { node: ">= 6" } css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== } + engines: { node: ">= 6" } css-what@7.0.0: - resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ== } + engines: { node: ">= 6" } css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + resolution: + { integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== } css@2.2.4: - resolution: {integrity: sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==} + resolution: + { integrity: sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== } cssdb@8.9.0: - resolution: {integrity: sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw==} + resolution: + { integrity: sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw== } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== } + engines: { node: ">=4" } hasBin: true cssnano-preset-default@4.0.8: - resolution: {integrity: sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== } + engines: { node: ">=6.9.0" } cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 cssnano-preset-default@6.1.2: - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 cssnano-preset-default@7.0.17: - resolution: {integrity: sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - cssnano-preset-default@8.0.1: - resolution: {integrity: sha512-OTdKeYMlvQ8KBgyej5ysktnWJoeyo7rGrVnm+bdpIHGvxhbTGPsOkB+7T1EdTuX00dGlQQb2UEbSPB1OpMXULw==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + cssnano-preset-default@8.0.2: + resolution: + { integrity: sha512-+jQAqIKCqMmBjZs7741XkilU93ITZ/EW8gjAkMmujdCzfDkfjrDBv2VqkSu29Fzeig/0rZ3S9IAwfPLlmXEUfQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 cssnano-util-get-arguments@4.0.0: - resolution: {integrity: sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== } + engines: { node: ">=6.9.0" } cssnano-util-get-match@4.0.0: - resolution: {integrity: sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== } + engines: { node: ">=6.9.0" } cssnano-util-raw-cache@4.0.1: - resolution: {integrity: sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== } + engines: { node: ">=6.9.0" } cssnano-util-same-parent@4.0.1: - resolution: {integrity: sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== } + engines: { node: ">=6.9.0" } cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 cssnano-utils@4.0.2: - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 cssnano-utils@5.0.3: - resolution: {integrity: sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - cssnano-utils@6.0.0: - resolution: {integrity: sha512-ztS9W/+uaDn+bkYmDhs+GdMveHJ3CL8IPNHpRqDUQXv5GJOTQAJjV1XUOInr9esLXSabQV1pLRZlJpyUwEqDyQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + cssnano-utils@6.0.1: + resolution: + { integrity: sha512-zk65GIxA8tCjqVk7nTm1mE+ZKxtnxAvU5JSUaBLXbAr3ZF7IOvz3fbPOnEDvZKhnS7GOIitXTS5BgehLzNoc8Q== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 cssnano@4.1.11: - resolution: {integrity: sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== } + engines: { node: ">=6.9.0" } cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 cssnano@6.1.2: - resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 cssnano@7.1.9: - resolution: {integrity: sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - cssnano@8.0.1: - resolution: {integrity: sha512-oSiOnPQNNYjusTUlYJiE6xvFQG4don3N0QavaoV1BxIsC1zjvxOwikXlR7lG1EVmZNDDaJkHbQx1VRB8kaoMHA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + cssnano@8.0.2: + resolution: + { integrity: sha512-K+a76gA1v0/CsYgcsE95HGGyIuPKxpQSetwSwz4nHEM8fFXqSkzq2JzEXFL8v5+CCjxzVVVhPcTK3Oo8SaF/xA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== } + engines: { node: ">=8.0.0" } csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + resolution: + { integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0" } cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + resolution: + { integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== } cssstyle@1.4.0: - resolution: {integrity: sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==} + resolution: + { integrity: sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== } cssstyle@4.6.0: - resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg== } + engines: { node: ">=18" } csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + resolution: + { integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== } cuint@0.2.2: - resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==} + resolution: + { integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw== } cumpa@2.0.1: - resolution: {integrity: sha512-8oBF1cSWkgYq0ZsLP9iiLLZDicIh1eYM8WLicRhaSLMrdtjEf9A3DgMYMxB/i/xgVUZGxPVD/hrwVzx/pjdmmw==} + resolution: + { integrity: sha512-8oBF1cSWkgYq0ZsLP9iiLLZDicIh1eYM8WLicRhaSLMrdtjEf9A3DgMYMxB/i/xgVUZGxPVD/hrwVzx/pjdmmw== } curri@2.0.3: - resolution: {integrity: sha512-pdDH7g0LnogX/ZLO+Oa+GuTc4dgcK3aQm+tVMXum92SPZCU4LlKQ3IC8pZiE9hdtnucXGy1G+hfoZkneCDqZEw==} + resolution: + { integrity: sha512-pdDH7g0LnogX/ZLO+Oa+GuTc4dgcK3aQm+tVMXum92SPZCU4LlKQ3IC8pZiE9hdtnucXGy1G+hfoZkneCDqZEw== } custom-event@1.0.1: - resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} + resolution: + { integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== } cwd@0.10.0: - resolution: {integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA== } + engines: { node: ">=0.8" } cyclist@1.0.2: - resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} + resolution: + { integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== } dag-map@2.0.2: - resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} + resolution: + { integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w== } damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + resolution: + { integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== } dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== } + engines: { node: ">=8" } dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== } + engines: { node: ">=0.10" } data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== } + engines: { node: ">= 14" } data-urls@1.1.0: - resolution: {integrity: sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==} + resolution: + { integrity: sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== } data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== } + engines: { node: ">=18" } data-urls@7.0.0: - resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + resolution: + { integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== } + engines: { node: ">= 0.4" } data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== } + engines: { node: ">= 0.4" } data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== } + engines: { node: ">= 0.4" } date-fns-jalali@4.1.0-0: - resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} + resolution: + { integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg== } date-fns@1.30.1: - resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} + resolution: + { integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== } - date-fns@4.3.0: - resolution: {integrity: sha512-OYcL+3N/jyWbYdFGqoMAhytDgxP9pbYPUUiRCOgn4Fewaadk9l/Wam4Avciiyp2BgkpfQyBV9B+ehnVJych+eQ==} + date-fns@4.4.0: + resolution: + { integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w== } date-format@2.1.0: - resolution: {integrity: sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== } + engines: { node: ">=4.0" } deprecated: 2.x is no longer supported. Please upgrade to 4.x or higher. date-format@4.0.14: - resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== } + engines: { node: ">=4.0" } dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + resolution: + { integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== } db0@0.3.4: - resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} - peerDependencies: - '@electric-sql/pglite': '*' - '@libsql/client': '*' - better-sqlite3: '*' - drizzle-orm: '*' - mysql2: '*' - sqlite3: '*' + resolution: + { integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw== } + peerDependencies: + "@electric-sql/pglite": "*" + "@libsql/client": "*" + better-sqlite3: "*" + drizzle-orm: "*" + mysql2: "*" + sqlite3: "*" peerDependenciesMeta: - '@electric-sql/pglite': + "@electric-sql/pglite": optional: true - '@libsql/client': + "@libsql/client": optional: true better-sqlite3: optional: true @@ -27498,104 +31063,124 @@ packages: optional: true de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + resolution: + { integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== } debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + resolution: + { integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== } debounce@3.0.0: - resolution: {integrity: sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA== } + engines: { node: ">=20" } debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@3.1.0: - resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + resolution: + { integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@3.2.6: - resolution: {integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==} + resolution: + { integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== } deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: + { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.1.1: - resolution: {integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==} + resolution: + { integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== } deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== } + engines: { node: ">=0.10.0" } decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== } + engines: { node: ">=0.10.0" } decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== } + engines: { node: ">=10" } decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + resolution: + { integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== } decode-named-character-reference@1.3.0: - resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + resolution: + { integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== } decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== } + engines: { node: ">=0.10" } decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== } + engines: { node: ">=4" } decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== } + engines: { node: ">=10" } decorator-transforms@2.3.2: - resolution: {integrity: sha512-XcErcjlmCzG5ODgYjt6ZTXwd6S8fPKln/sJmw15ZXkWG2JpoQNwszis+AwF6XSGlOoG7g8MCEO97g+Yw3fk5OQ==} + resolution: + { integrity: sha512-XcErcjlmCzG5ODgYjt6ZTXwd6S8fPKln/sJmw15ZXkWG2JpoQNwszis+AwF6XSGlOoG7g8MCEO97g+Yw3fk5OQ== } dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + resolution: + { integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ== } dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + resolution: + { integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== } peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -27603,7 +31188,8 @@ packages: optional: true dedent@1.7.2: - resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} + resolution: + { integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA== } peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -27611,1074 +31197,1290 @@ packages: optional: true deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== } + engines: { node: ">=6" } deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== } + engines: { node: ">=6" } deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + resolution: + { integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw== } deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== } + engines: { node: ">=4.0.0" } deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } - deepcopy-esm@2.1.1: - resolution: {integrity: sha512-0lopQd/gi3excE3sgBrjuR3gJv6ZElk027i30pUgdjtvSJl/OoZ8B6L42GUBm6C3G8hD1EB5ir2gTYnINzWx4g==} - engines: {node: '>=22'} + deepcopy-esm@2.1.2: + resolution: + { integrity: sha512-iOrQr2AZDcKi5jenwiidK96Ivvn2uHqU1g25qmfs3MbgOUlXPNRbMtHDwTx+U83tD6z+PeYhZzvsPiOqVh20IA== } + engines: { node: ">=22" } deepcopy@1.0.0: - resolution: {integrity: sha512-WJrecobaoqqgQHtvRI2/VCzWoWXPAnFYyAkF/spmL46lZMnd0gW0gLGuyeFVSrqt2B3s0oEEj6i+j2L/2QiS4g==} + resolution: + { integrity: sha512-WJrecobaoqqgQHtvRI2/VCzWoWXPAnFYyAkF/spmL46lZMnd0gW0gLGuyeFVSrqt2B3s0oEEj6i+j2L/2QiS4g== } deprecated: No longer maintained. Use structuredClone instead. deepmerge@1.5.2: - resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== } + engines: { node: ">=0.10.0" } deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== } + engines: { node: ">=0.10.0" } default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== } + engines: { node: ">=18" } default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw== } + engines: { node: ">=18" } default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== } + engines: { node: ">= 10" } default-require-extensions@3.0.1: - resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== } + engines: { node: ">=8" } defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== } defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== } define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== } + engines: { node: ">= 0.4" } define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== } + engines: { node: ">=8" } define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== } + engines: { node: ">=12" } define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== } + engines: { node: ">= 0.4" } define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== } + engines: { node: ">=0.10.0" } define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== } + engines: { node: ">=0.10.0" } define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== } + engines: { node: ">=0.10.0" } defu@5.0.1: - resolution: {integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==} + resolution: + { integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ== } defu@6.1.7: - resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + resolution: + { integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ== } degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} - - del@2.2.2: - resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== } + engines: { node: ">= 14" } del@4.1.1: - resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== } + engines: { node: ">=6" } del@8.0.1: - resolution: {integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA== } + engines: { node: ">=18" } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } + engines: { node: ">=0.4.0" } delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + resolution: + { integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== } denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== } + engines: { node: ">=0.10" } depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== } + engines: { node: ">= 0.6" } depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== } + engines: { node: ">= 0.8" } dependency-cruiser@17.4.3: - resolution: {integrity: sha512-L4GLuAvmXevWnPCIaFfOz6eD92c+yY+pDgVqgufrLDnW3xYA799CSZQlly2r2N13nhAlnZY6VzY7Rx5pHNvk2w==} - engines: {node: ^20.12||^22||>=24} + resolution: + { integrity: sha512-L4GLuAvmXevWnPCIaFfOz6eD92c+yY+pDgVqgufrLDnW3xYA799CSZQlly2r2N13nhAlnZY6VzY7Rx5pHNvk2w== } + engines: { node: ^20.12||^22||>=24 } hasBin: true dependency-graph@0.11.0: - resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} - engines: {node: '>= 0.6.0'} + resolution: + { integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== } + engines: { node: ">= 0.6.0" } dependency-graph@1.0.0: - resolution: {integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg== } + engines: { node: ">=4" } deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + resolution: + { integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== } dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== } + engines: { node: ">=6" } des.js@1.1.0: - resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + resolution: + { integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== } destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + resolution: + { integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== } destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== } + engines: { node: ">=0.10.0" } detect-indent@5.0.0: - resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} - engines: {node: '>=4'} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== } + engines: { node: ">=4" } detect-indent@7.0.2: - resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A== } + engines: { node: ">=12.20" } detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== } + engines: { node: ">=8" } detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== } + engines: { node: ">=8" } detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + resolution: + { integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== } detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + resolution: + { integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== } detect-port@2.1.0: - resolution: {integrity: sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q==} - engines: {node: '>= 16.0.0'} - hasBin: true - - dev-ip@1.0.1: - resolution: {integrity: sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q== } + engines: { node: ">= 16.0.0" } hasBin: true devalue@2.0.1: - resolution: {integrity: sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q==} + resolution: + { integrity: sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q== } devalue@5.8.1: - resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + resolution: + { integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw== } devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + resolution: + { integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== } devtools-protocol@0.0.1367902: - resolution: {integrity: sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==} + resolution: + { integrity: sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg== } devtools-protocol@0.0.1507524: - resolution: {integrity: sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==} + resolution: + { integrity: sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w== } devtools-protocol@0.0.1608973: - resolution: {integrity: sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==} + resolution: + { integrity: sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ== } devtools-protocol@0.0.1624250: - resolution: {integrity: sha512-YFAat/lOiIk0ARmBweG+ygrEcbZrq5B9urRyUoeQKp53MlidHXE2TmTbxKcaXoQj7u/aX+jebDO4BW55rs0WwA==} + resolution: + { integrity: sha512-YFAat/lOiIk0ARmBweG+ygrEcbZrq5B9urRyUoeQKp53MlidHXE2TmTbxKcaXoQj7u/aX+jebDO4BW55rs0WwA== } di@0.0.1: - resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + resolution: + { integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== } didyoumean2@4.1.0: - resolution: {integrity: sha512-qTBmfQoXvhKO75D/05C8m+fteQmn4U46FWYiLhXtZQInzitXLWY0EQ/2oKnpAz9g2lQWW8jYcLcT+hPJGT+kig==} - engines: {node: '>=10.13'} + resolution: + { integrity: sha512-qTBmfQoXvhKO75D/05C8m+fteQmn4U46FWYiLhXtZQInzitXLWY0EQ/2oKnpAz9g2lQWW8jYcLcT+hPJGT+kig== } + engines: { node: ">=10.13" } diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } diff@3.5.0: - resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} - engines: {node: '>=0.3.1'} + resolution: + { integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== } + engines: { node: ">=0.3.1" } diff@4.0.4: - resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} - engines: {node: '>=0.3.1'} - - diff@5.2.2: - resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} - engines: {node: '>=0.3.1'} + resolution: + { integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== } + engines: { node: ">=0.3.1" } diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} + resolution: + { integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== } + engines: { node: ">=0.3.1" } diff@8.0.4: - resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} - engines: {node: '>=0.3.1'} + resolution: + { integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw== } + engines: { node: ">=0.3.1" } diff@9.0.0: - resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} - engines: {node: '>=0.3.1'} + resolution: + { integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw== } + engines: { node: ">=0.3.1" } diffie-hellman@5.0.3: - resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + resolution: + { integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== } dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } + engines: { node: ">=8" } discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + resolution: + { integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== } dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== } + engines: { node: ">=6" } doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== } + engines: { node: ">=0.10.0" } doctypes@1.1.0: - resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} + resolution: + { integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== } dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + resolution: + { integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== } dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + resolution: + { integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== } dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + resolution: + { integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== } dom-element-descriptors@0.5.1: - resolution: {integrity: sha512-DLayMRQ+yJaziF4JJX1FMjwjdr7wdTr1y9XvZ+NfHELfOMcYDnCHneAYXAS4FT1gLILh4V0juMZohhH1N5FsoQ==} + resolution: + { integrity: sha512-DLayMRQ+yJaziF4JJX1FMjwjdr7wdTr1y9XvZ+NfHELfOMcYDnCHneAYXAS4FT1gLILh4V0juMZohhH1N5FsoQ== } dom-nodes@1.1.3: - resolution: {integrity: sha512-y5wnIx97oe0IqMllL/lizgkK2c9vu1cQeqPCCsS7mwNdPuYxg3b04eDJynHhC63kM8+ZsteOmiPElfVGOUmmKg==} + resolution: + { integrity: sha512-y5wnIx97oe0IqMllL/lizgkK2c9vu1cQeqPCCsS7mwNdPuYxg3b04eDJynHhC63kM8+ZsteOmiPElfVGOUmmKg== } dom-serialize@2.2.1: - resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} + resolution: + { integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== } dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + resolution: + { integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== } dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + resolution: + { integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== } dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: + { integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== } domain-browser@1.2.0: - resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} - engines: {node: '>=0.4', npm: '>=1.2'} + resolution: + { integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== } + engines: { node: ">=0.4", npm: ">=1.2" } domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + resolution: + { integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== } domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: + { integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== } domexception@1.0.1: - resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} + resolution: + { integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== } deprecated: Use your platform's native DOMException instead domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== } + engines: { node: ">= 4" } domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== } + engines: { node: ">= 4" } domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + resolution: + { integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== } domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + resolution: + { integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== } domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + resolution: + { integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== } dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + resolution: + { integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== } dot-prop@10.1.0: - resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q== } + engines: { node: ">=20" } dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== } + engines: { node: ">=8" } dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ== } + engines: { node: ">=18" } dotenv-expand@12.0.3: - resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA== } + engines: { node: ">=12" } dotenv-expand@5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + resolution: + { integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== } dotenv@10.0.0: - resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== } + engines: { node: ">=10" } dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== } + engines: { node: ">=12" } dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== } + engines: { node: ">=12" } dotenv@17.4.2: - resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw== } + engines: { node: ">=12" } dotenv@9.0.2: - resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== } + engines: { node: ">=10" } dset@3.1.4: - resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA== } + engines: { node: ">=4" } dts-resolver@3.0.0: - resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} - engines: {node: ^22.18.0 || >=24.0.0} + resolution: + { integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q== } + engines: { node: ^22.18.0 || >=24.0.0 } peerDependencies: - oxc-resolver: '>=11.0.0' + oxc-resolver: ">=11.0.0" peerDependenciesMeta: oxc-resolver: optional: true dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } + engines: { node: ">= 0.4" } duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + resolution: + { integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== } duplexer@0.1.1: - resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} + resolution: + { integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q== } duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + resolution: + { integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== } duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + resolution: + { integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== } dynamic-import-polyfill@0.1.1: - resolution: {integrity: sha512-m953zv0w5oDagTItWm6Auhmk/pY7EiejaqiVbnzSS3HIjh1FCUeK7WzuaVtWPNs58A+/xpIE+/dVk6pKsrua8g==} + resolution: + { integrity: sha512-m953zv0w5oDagTItWm6Auhmk/pY7EiejaqiVbnzSS3HIjh1FCUeK7WzuaVtWPNs58A+/xpIE+/dVk6pKsrua8g== } each-props@3.0.0: - resolution: {integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw== } + engines: { node: ">= 10.13.0" } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } easy-stack@1.0.1: - resolution: {integrity: sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== } + engines: { node: ">=6.0.0" } ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + resolution: + { integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== } editions@1.3.4: - resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg== } + engines: { node: ">=0.8" } editions@2.3.1: - resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA== } + engines: { node: ">=0.8" } editorconfig@1.0.7: - resolution: {integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw== } + engines: { node: ">=14" } hasBin: true editorconfig@3.0.2: - resolution: {integrity: sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA== } + engines: { node: ">=20" } hasBin: true ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== } ejs-loader@0.5.0: - resolution: {integrity: sha512-iirFqlP3tiFoedNZ7dQcjvechunl054VbW6Ki38T/pabgXMAncduSE0ZXLeVGn1NbmcUJF9Z5TC0EvQ4RIpP9Q==} + resolution: + { integrity: sha512-iirFqlP3tiFoedNZ7dQcjvechunl054VbW6Ki38T/pabgXMAncduSE0ZXLeVGn1NbmcUJF9Z5TC0EvQ4RIpP9Q== } ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== } + engines: { node: ">=0.10.0" } hasBin: true ejs@5.0.1: - resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} - engines: {node: '>=0.12.18'} + resolution: + { integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A== } + engines: { node: ">=0.12.18" } hasBin: true - electron-to-chromium@1.5.361: - resolution: {integrity: sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==} + electron-to-chromium@1.5.372: + resolution: + { integrity: sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA== } - electron@41.7.1: - resolution: {integrity: sha512-pdRvNNP99Qfvs1lyIxo/sfIGAwJP0CrJFNCE3goFKc7/fV+kjK3EPxx5Nt6sLTkzqTyeRYylpwPUfpeGojiyyw==} - engines: {node: '>= 12.20.55'} + electron@42.4.1: + resolution: + { integrity: sha512-8CYHJP5O4wFO+ycoJR98yy907MmPeo+vWXrzjxmGGgRNKqv8pOjjm+wphO0CCgQJnBU7+QUPSJS4QXhbKrO50w== } + engines: { node: ">= 22.12.0" } hasBin: true elegant-spinner@1.0.1: - resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== } + engines: { node: ">=0.10.0" } elementtree@0.1.7: - resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==} - engines: {node: '>= 0.4.0'} + resolution: + { integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg== } + engines: { node: ">= 0.4.0" } elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + resolution: + { integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== } email-addresses@5.0.0: - resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} + resolution: + { integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== } ember-auto-import@2.13.1: - resolution: {integrity: sha512-MjxJK2nfCJmmQI/rju2TrycmAa1AxmTarfvygbcrrgW0s4WeZHtbGXCO2z1lW9wfrShqeTo/o+3Mgk+9xcDTWg==} - engines: {node: 12.* || 14.* || >= 16} + resolution: + { integrity: sha512-MjxJK2nfCJmmQI/rju2TrycmAa1AxmTarfvygbcrrgW0s4WeZHtbGXCO2z1lW9wfrShqeTo/o+3Mgk+9xcDTWg== } + engines: { node: 12.* || 14.* || >= 16 } ember-cli-babel-plugin-helpers@1.1.1: - resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== } + engines: { node: 6.* || 8.* || >= 10.* } ember-cli-babel@7.26.11: - resolution: {integrity: sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA== } + engines: { node: 6.* || 8.* || >= 10.* } ember-cli-babel@8.3.1: - resolution: {integrity: sha512-Pxm5JP0jQ6fCBlXuh1BFmhrg2/5YXjhf16JI/n8ReOR6Nl+fEbudMpdO69LlqZRsMmTgdjCRmfSxMh26Wsw/rw==} - engines: {node: 16.* || 18.* || >= 20} + resolution: + { integrity: sha512-Pxm5JP0jQ6fCBlXuh1BFmhrg2/5YXjhf16JI/n8ReOR6Nl+fEbudMpdO69LlqZRsMmTgdjCRmfSxMh26Wsw/rw== } + engines: { node: 16.* || 18.* || >= 20 } peerDependencies: - '@babel/core': ^7.12.0 + "@babel/core": ^7.12.0 ember-cli-dependency-checker@3.4.0: - resolution: {integrity: sha512-hlQRRCz2W2ZVg1l2Lz7zO0vfeYEXOYVc6hI1CUoy8mBvETauPtvo3Pi+CECUOa2kjXjyuNtclPc3ged6kNMumw==} - engines: {node: '>= 20'} + resolution: + { integrity: sha512-hlQRRCz2W2ZVg1l2Lz7zO0vfeYEXOYVc6hI1CUoy8mBvETauPtvo3Pi+CECUOa2kjXjyuNtclPc3ged6kNMumw== } + engines: { node: ">= 20" } peerDependencies: ember-cli: ^3.2.0 || >=4.0.0 ember-cli-get-component-path-option@1.0.0: - resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==} + resolution: + { integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA== } ember-cli-htmlbars@7.0.1: - resolution: {integrity: sha512-bNVAwTvBOmk7KjGCN0Vq81w8FAWQ1zXwCS1CUUHTeWdcFypRsv0qUEkTtwxho4H3BYaoqMCXPS45Js9WWtEXYw==} - engines: {node: '>= 20'} + resolution: + { integrity: sha512-bNVAwTvBOmk7KjGCN0Vq81w8FAWQ1zXwCS1CUUHTeWdcFypRsv0qUEkTtwxho4H3BYaoqMCXPS45Js9WWtEXYw== } + engines: { node: ">= 20" } peerDependencies: - '@babel/core': '>= 7' - ember-source: '>= 4.0.0' + "@babel/core": ">= 7" + ember-source: ">= 4.0.0" ember-cli-inject-live-reload@2.1.0: - resolution: {integrity: sha512-YV5wYRD5PJHmxaxaJt18u6LE6Y+wo455BnmcpN+hGNlChy2piM9/GMvYgTAz/8Vin8RJ5KekqP/w/NEaRndc/A==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-YV5wYRD5PJHmxaxaJt18u6LE6Y+wo455BnmcpN+hGNlChy2piM9/GMvYgTAz/8Vin8RJ5KekqP/w/NEaRndc/A== } + engines: { node: 6.* || 8.* || >= 10.* } ember-cli-is-package-missing@1.0.0: - resolution: {integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g==} + resolution: + { integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g== } ember-cli-normalize-entity-name@1.0.0: - resolution: {integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA==} + resolution: + { integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA== } ember-cli-path-utils@1.0.0: - resolution: {integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA==} + resolution: + { integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA== } ember-cli-preprocess-registry@5.0.1: - resolution: {integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg==} - engines: {node: 16.* || >= 18} + resolution: + { integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg== } + engines: { node: 16.* || >= 18 } ember-cli-sri@2.1.1: - resolution: {integrity: sha512-YG/lojDxkur9Bnskt7xB6gUOtJ6aPl/+JyGYm9HNDk3GECVHB3SMN3rlGhDKHa1ndS5NK2W2TSLb9bzRbGlMdg==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-YG/lojDxkur9Bnskt7xB6gUOtJ6aPl/+JyGYm9HNDk3GECVHB3SMN3rlGhDKHa1ndS5NK2W2TSLb9bzRbGlMdg== } + engines: { node: ">= 0.10.0" } ember-cli-string-utils@1.1.0: - resolution: {integrity: sha512-PlJt4fUDyBrC/0X+4cOpaGCiMawaaB//qD85AXmDRikxhxVzfVdpuoec02HSiTGTTB85qCIzWBIh8lDOiMyyFg==} + resolution: + { integrity: sha512-PlJt4fUDyBrC/0X+4cOpaGCiMawaaB//qD85AXmDRikxhxVzfVdpuoec02HSiTGTTB85qCIzWBIh8lDOiMyyFg== } ember-cli-terser@4.0.2: - resolution: {integrity: sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA==} - engines: {node: 10.* || 12.* || >= 14} + resolution: + { integrity: sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA== } + engines: { node: 10.* || 12.* || >= 14 } ember-cli-typescript-blueprint-polyfill@0.1.0: - resolution: {integrity: sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA==} + resolution: + { integrity: sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA== } ember-cli-typescript@3.0.0: - resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA== } + engines: { node: 8.* || >= 10.* } ember-cli-typescript@5.3.0: - resolution: {integrity: sha512-gFA+ZwmsvvFwo2Jz/B9GMduEn+fPoGb69qWGP0Tp3+Tu5xypDtIKVSZ5086I3Cr19cLXD4HkrOR3YQvdUKzAkQ==} - engines: {node: '>= 12.*'} + resolution: + { integrity: sha512-gFA+ZwmsvvFwo2Jz/B9GMduEn+fPoGb69qWGP0Tp3+Tu5xypDtIKVSZ5086I3Cr19cLXD4HkrOR3YQvdUKzAkQ== } + engines: { node: ">= 12.*" } ember-cli-version-checker@3.1.3: - resolution: {integrity: sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg== } + engines: { node: 6.* || 8.* || >= 10.* } ember-cli-version-checker@4.1.1: - resolution: {integrity: sha512-bzEWsTMXUGEJfxcAGWPe6kI7oHEGD3jaxUWDYPTqzqGhNkgPwXTBgoWs9zG1RaSMaOPFnloWuxRcoHi4TrYS3Q==} - engines: {node: 8.* || 10.* || >= 12.*} + resolution: + { integrity: sha512-bzEWsTMXUGEJfxcAGWPe6kI7oHEGD3jaxUWDYPTqzqGhNkgPwXTBgoWs9zG1RaSMaOPFnloWuxRcoHi4TrYS3Q== } + engines: { node: 8.* || 10.* || >= 12.* } ember-cli-version-checker@5.1.2: - resolution: {integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==} - engines: {node: 10.* || >= 12.*} - - ember-cli@6.12.0: - resolution: {integrity: sha512-DDFTHdDofuRCZnu5FO79patRi1W4ndKFLcgb0MsspC+jyS9hgxDepBBFuV6daIjaTq5RvWdZRf5tjQ141VmcTw==} - engines: {node: '>= 20.19.0'} + resolution: + { integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q== } + engines: { node: 10.* || >= 12.* } + + ember-cli@7.0.1: + resolution: + { integrity: sha512-B8OAcAT8rY/Hyx56f3IEunSDctqygu8gFUWCp+pi0ukQesd9EEDEun658rQpC9Gna/RmF3btgKKYDZX6YNDsHA== } + engines: { node: ">= 20.19.0" } hasBin: true ember-compatibility-helpers@1.2.7: - resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA== } + engines: { node: 10.* || >= 12.* } ember-disable-prototype-extensions@1.1.3: - resolution: {integrity: sha512-SB9NcZ27OtoUk+gfalsc3QU17+54OoqR668qHcuvHByk4KAhGxCKlkm9EBlKJcGr7yceOOAJqohTcCEBqfRw9g==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-SB9NcZ27OtoUk+gfalsc3QU17+54OoqR668qHcuvHByk4KAhGxCKlkm9EBlKJcGr7yceOOAJqohTcCEBqfRw9g== } + engines: { node: ">= 0.10.0" } - ember-eslint-parser@0.12.0: - resolution: {integrity: sha512-vHy8rkGVSQtonGUUW8bAtiUfLRaUazykfPbIEzG0uYPbkNwSNScRUgePNRidSN8zffxcPNBiiZG1HXcPVDuh7A==} - engines: {node: '>=16.0.0'} + ember-eslint-parser@0.13.0: + resolution: + { integrity: sha512-i8mt96+yxFQaTNcz/2+SAkwpeLYU+VOFyHBshRyNL3HOciZhPpX3WszJK0/9GhVi8hQVGNtt21Iv7tsui3x0cQ== } + engines: { node: ">=16.0.0" } peerDependencies: - '@babel/eslint-parser': ^7.28.6 - '@typescript-eslint/parser': '*' + "@babel/eslint-parser": ^7.28.6 + "@typescript-eslint/parser": "*" peerDependenciesMeta: - '@babel/eslint-parser': - optional: true - '@typescript-eslint/parser': + "@babel/eslint-parser": optional: true - - ember-eslint-parser@0.5.13: - resolution: {integrity: sha512-b6ALDaxs9Bb4v0uagWud/5lECb78qpXHFv7M340dUHFW4Y0RuhlsfA4Rb+765X1+6KHp8G7TaAs0UgggWUqD3g==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@babel/core': ^7.23.6 - '@typescript-eslint/parser': '*' - peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true ember-estree@0.6.4: - resolution: {integrity: sha512-/0+JLFt200RB/gUfLfRALTFWby6fGS7Bu+NN985Y8gadEntX4KoiYHhOl2hkzvy+AmBi+PbHxBa9QVCV7K/PUg==} + resolution: + { integrity: sha512-/0+JLFt200RB/gUfLfRALTFWby6fGS7Bu+NN985Y8gadEntX4KoiYHhOl2hkzvy+AmBi+PbHxBa9QVCV7K/PUg== } ember-load-initializers@3.0.1: - resolution: {integrity: sha512-qV3vxJKw5+7TVDdtdLPy8PhVsh58MlK8jwzqh5xeOwJPNP7o0+BlhvwoIlLYTPzGaHdfjEIFCgVSyMRGd74E1g==} - engines: {node: '>= 18.*'} + resolution: + { integrity: sha512-qV3vxJKw5+7TVDdtdLPy8PhVsh58MlK8jwzqh5xeOwJPNP7o0+BlhvwoIlLYTPzGaHdfjEIFCgVSyMRGd74E1g== } + engines: { node: ">= 18.*" } peerDependencies: - ember-source: '>= 5' + ember-source: ">= 5" ember-modifier@4.3.0: - resolution: {integrity: sha512-O0rirSLQbGg0VJ/NqoQ4uN1bh2iAekZC/Ykma+FkjCM2ofrO38u+d8n3+AK6uVWeMJmogGX2KL+Is5fofoInJg==} + resolution: + { integrity: sha512-O0rirSLQbGg0VJ/NqoQ4uN1bh2iAekZC/Ykma+FkjCM2ofrO38u+d8n3+AK6uVWeMJmogGX2KL+Is5fofoInJg== } ember-page-title@9.0.3: - resolution: {integrity: sha512-fedRHUsvq8tIZgOii8jTrfAyeq+la/9H5eAzhNNwEyzo7nDMmqK2SxsyBUGXprd8fOacsPabLlzlucMi/4mUpA==} - engines: {node: 16.* || >= 18} + resolution: + { integrity: sha512-fedRHUsvq8tIZgOii8jTrfAyeq+la/9H5eAzhNNwEyzo7nDMmqK2SxsyBUGXprd8fOacsPabLlzlucMi/4mUpA== } + engines: { node: 16.* || >= 18 } - ember-qunit@9.0.4: - resolution: {integrity: sha512-rv6gKvrdXdPBTdSZC5co82eIcDWWVR7RjafU/c+5TTz290oXhIHPoVuZbcO2F5RiAqkTW0jKzwkCP8y+2tCjFw==} + ember-qunit@9.1.0: + resolution: + { integrity: sha512-dE32lSODyv4em0ACBS8PDzrAIPKR75hhSpn/au0qFBlzbdmNA/VVsgv2aoFAVRdlQ0zYJ8EiNPFqsBFciIeXVA== } peerDependencies: - '@ember/test-helpers': '>=3.0.3' + "@ember/test-helpers": ">=3.0.3" qunit: ^2.13.0 ember-resolver@13.2.0: - resolution: {integrity: sha512-A+BffoSKC0ngiczbgaz/IOY66ovZVRRHHIDDi+d7so5i0By8xuB4nXgZZ6Dv3u/3WwoUyixgUvb0xTUO+MtupA==} + resolution: + { integrity: sha512-A+BffoSKC0ngiczbgaz/IOY66ovZVRRHHIDDi+d7so5i0By8xuB4nXgZZ6Dv3u/3WwoUyixgUvb0xTUO+MtupA== } ember-rfc176-data@0.3.18: - resolution: {integrity: sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q==} + resolution: + { integrity: sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q== } ember-router-generator@2.0.0: - resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==} - engines: {node: 8.* || 10.* || >= 12} + resolution: + { integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw== } + engines: { node: 8.* || 10.* || >= 12 } ember-sinon-qunit@7.5.0: - resolution: {integrity: sha512-wSoRqBbiytUtDFIE6DLPDZFYhoS4FH+kgHhr707HJMF5tUYpKPIruBusF9kWezj/yOrJLyLqoWFoaAJ2aG2FQw==} + resolution: + { integrity: sha512-wSoRqBbiytUtDFIE6DLPDZFYhoS4FH+kgHhr707HJMF5tUYpKPIruBusF9kWezj/yOrJLyLqoWFoaAJ2aG2FQw== } peerDependencies: - ember-source: '>=3.28.0' + ember-source: ">=3.28.0" qunit: ^2.0.0 - sinon: '>=15.0.3' + sinon: ">=15.0.3" ember-source-channel-url@3.0.0: - resolution: {integrity: sha512-vF/8BraOc66ZxIDo3VuNP7iiDrnXEINclJgSJmqwAAEpg84Zb1DHPI22XTXSDA+E8fW5btPUxu65c3ZXi8AQFA==} - engines: {node: 10.* || 12.* || >= 14} + resolution: + { integrity: sha512-vF/8BraOc66ZxIDo3VuNP7iiDrnXEINclJgSJmqwAAEpg84Zb1DHPI22XTXSDA+E8fW5btPUxu65c3ZXi8AQFA== } + engines: { node: 10.* || 12.* || >= 14 } hasBin: true - ember-source@6.12.0: - resolution: {integrity: sha512-cApfEKxltl2VWt0o24XISsdkpyqqtT8wG0/EWokjeyqBPRCOIej2PMzRkLAu3A5AWpuWoJ//yq04mDix7axA7w==} - engines: {node: '>= 20.19'} + ember-source@7.0.0: + resolution: + { integrity: sha512-30dv3f4jMKAFhUmyjbb5V8B+hhkhwn2Y+GbwIxbb4SuEXtJf0uPr1Ppp1g5s6LzrxU5zPlCXh2bfN3LCwqqGog== } + engines: { node: ">= 20.19" } peerDependencies: - '@glimmer/component': '>= 1.1.2' + "@glimmer/component": ">= 1.1.2" ember-template-lint@7.9.3: - resolution: {integrity: sha512-iqC4rv/oVlXViGuf7hlOA/bC550ZqacZKAc8WvQV0ueeCtIYPkYYK+Tc7FwpM8qGx3jiwu/ZsTuNfPInI5pL7Q==} - engines: {node: ^18.18.0 || >= 20.9.0} + resolution: + { integrity: sha512-iqC4rv/oVlXViGuf7hlOA/bC550ZqacZKAc8WvQV0ueeCtIYPkYYK+Tc7FwpM8qGx3jiwu/ZsTuNfPInI5pL7Q== } + engines: { node: ^18.18.0 || >= 20.9.0 } hasBin: true ember-test-selectors@7.1.0: - resolution: {integrity: sha512-mIgjzv5PE+z64p1+o8eYkLHqkJY1g4BD93vgfE+ZTAvarIsJxGO8WmmZ7xCkmCM0xB4Idf0duR7IhLRsTg/81w==} - engines: {node: 18.* || 20.* || >= 22.*} + resolution: + { integrity: sha512-mIgjzv5PE+z64p1+o8eYkLHqkJY1g4BD93vgfE+ZTAvarIsJxGO8WmmZ7xCkmCM0xB4Idf0duR7IhLRsTg/81w== } + engines: { node: 18.* || 20.* || >= 22.* } ember-try-config@4.0.0: - resolution: {integrity: sha512-jAv7fqYJK7QYYekPc/8Nr7KOqDpv/asqM6F8xcRnbmf9UrD35BkSffY63qUuiD9e0aR5qiMNBIQzH8f65rGDqw==} - engines: {node: 10.* || 12.* || >= 14} + resolution: + { integrity: sha512-jAv7fqYJK7QYYekPc/8Nr7KOqDpv/asqM6F8xcRnbmf9UrD35BkSffY63qUuiD9e0aR5qiMNBIQzH8f65rGDqw== } + engines: { node: 10.* || 12.* || >= 14 } ember-try@4.0.0: - resolution: {integrity: sha512-gWG1k8+hio1rndJXxzIYhayL7ITof3ebkZ7HwFzFDaz3NARb8MjcVloKj1PFCheu8ZbY8iP8QTRPqb+J+N+Izg==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-gWG1k8+hio1rndJXxzIYhayL7ITof3ebkZ7HwFzFDaz3NARb8MjcVloKj1PFCheu8ZbY8iP8QTRPqb+J+N+Izg== } + engines: { node: ">= 18" } emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== } + engines: { node: ">=12" } emmet@2.4.11: - resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + resolution: + { integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ== } emoji-regex-xs@1.0.0: - resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + resolution: + { integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== } emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + resolution: + { integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== } emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + resolution: + { integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } emojis-list@2.1.0: - resolution: {integrity: sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== } + engines: { node: ">= 0.10" } emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== } + engines: { node: ">= 4" } empathic@2.0.1: - resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q== } + engines: { node: ">=14" } enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + resolution: + { integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== } encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== } + engines: { node: ">= 0.8" } encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== } + engines: { node: ">= 0.8" } encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + resolution: + { integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw== } encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + resolution: + { integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== } end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + resolution: + { integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== } engine.io-client@3.5.6: - resolution: {integrity: sha512-2fDMKiXSU7bGRDCWEw9cHEdRNfoU8cpP6lt+nwJhv72tSJpO7YBsqMqYZ63eVvwX3l9prPl2k/mxhfVhY+SDWg==} + resolution: + { integrity: sha512-2fDMKiXSU7bGRDCWEw9cHEdRNfoU8cpP6lt+nwJhv72tSJpO7YBsqMqYZ63eVvwX3l9prPl2k/mxhfVhY+SDWg== } engine.io-parser@2.2.1: - resolution: {integrity: sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==} + resolution: + { integrity: sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== } engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== } + engines: { node: ">=10.0.0" } engine.io@3.6.2: - resolution: {integrity: sha512-C4JjGQZLY3kWlIDx0BQNKizbrfpb7NahxDztGdN5jrPK2ghmXiNDN+E/t0JzDeNRZxPVaszxEng42Pmj27X/0w==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-C4JjGQZLY3kWlIDx0BQNKizbrfpb7NahxDztGdN5jrPK2ghmXiNDN+E/t0JzDeNRZxPVaszxEng42Pmj27X/0w== } + engines: { node: ">=8.0.0" } engine.io@6.6.8: - resolution: {integrity: sha512-2agL3ueZhqxoVrfmntO8yuVj+uNSlIOnhykYHk3Cq0ShYPdUjjUiSJrQvXjq01I9jAuI0Zl2YO8Evv5Mqytm5g==} - engines: {node: '>=10.2.0'} + resolution: + { integrity: sha512-2agL3ueZhqxoVrfmntO8yuVj+uNSlIOnhykYHk3Cq0ShYPdUjjUiSJrQvXjq01I9jAuI0Zl2YO8Evv5Mqytm5g== } + engines: { node: ">=10.2.0" } enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - - enhanced-resolve@5.22.0: - resolution: {integrity: sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== } + engines: { node: ">=6.9.0" } enhanced-resolve@5.22.1: - resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww== } + engines: { node: ">=10.13.0" } + + enhanced-resolve@5.24.0: + resolution: + { integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ== } + engines: { node: ">=10.13.0" } enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== } + engines: { node: ">=8.6" } enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== } + engines: { node: ">=8.6" } ensure-posix-path@1.1.1: - resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==} + resolution: + { integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== } ent@2.2.2: - resolution: {integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw== } + engines: { node: ">= 0.4" } entities@2.1.0: - resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} + resolution: + { integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== } entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + resolution: + { integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== } entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== } + engines: { node: ">=0.12" } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== } + engines: { node: ">=0.12" } entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== } + engines: { node: ">=0.12" } entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== } + engines: { node: ">=0.12" } entities@8.0.0: - resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA== } + engines: { node: ">=20.19.0" } env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== } + engines: { node: ">=6" } env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } env-paths@4.0.0: - resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw== } + engines: { node: ">=20" } envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== } + engines: { node: ">=4" } hasBin: true envinfo@7.21.0: - resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== } + engines: { node: ">=4" } hasBin: true environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } + engines: { node: ">=18" } enzyme-adapter-preact-pure@4.1.0: - resolution: {integrity: sha512-SifzvBGf1qUEs0FfCAOiKgDppb1wg/R+rmX8D7jFVpQ/Q2L3/xuyc1V575zoi8QAhIBDUB/8QUWvI4KZc50trw==} + resolution: + { integrity: sha512-SifzvBGf1qUEs0FfCAOiKgDppb1wg/R+rmX8D7jFVpQ/Q2L3/xuyc1V575zoi8QAhIBDUB/8QUWvI4KZc50trw== } peerDependencies: enzyme: ^3.11.0 preact: ^10.0.0 enzyme-shallow-equal@1.0.7: - resolution: {integrity: sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==} + resolution: + { integrity: sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg== } enzyme@3.11.0: - resolution: {integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==} + resolution: + { integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== } equivalent-key-map@0.2.2: - resolution: {integrity: sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==} + resolution: + { integrity: sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew== } err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + resolution: + { integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== } err-code@3.0.1: - resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} + resolution: + { integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== } erre@3.0.1: - resolution: {integrity: sha512-NoexRasUiWU1CcBMh997iybzdKRw4RPhjjiVjPwh1h+aK0PglsR6+7A3osXP5829hXNnarn9Yr1Zi9ThwwV4aA==} + resolution: + { integrity: sha512-NoexRasUiWU1CcBMh997iybzdKRw4RPhjjiVjPwh1h+aK0PglsR6+7A3osXP5829hXNnarn9Yr1Zi9ThwwV4aA== } errlop@2.2.0: - resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== } + engines: { node: ">=0.8" } errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + resolution: + { integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== } + hasBin: true + + errno@1.0.0: + resolution: + { integrity: sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ== } hasBin: true error-causes@3.0.2: - resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==} + resolution: + { integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw== } error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + resolution: + { integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== } error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + resolution: + { integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA== } error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + resolution: + { integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== } error@7.2.1: - resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} + resolution: + { integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== } errorstacks@2.4.2: - resolution: {integrity: sha512-aQAkABfX+AsCxWtvh1KGIDkTiYyABsTtZkBb8cd9FWxNnEdrcFEsTxUfi9sc0Jc1mgHC2kW3UtJVadqSuMm/uQ==} - engines: {node: '>=24'} + resolution: + { integrity: sha512-aQAkABfX+AsCxWtvh1KGIDkTiYyABsTtZkBb8cd9FWxNnEdrcFEsTxUfi9sc0Jc1mgHC2kW3UtJVadqSuMm/uQ== } + engines: { node: ">=24" } errx@0.1.0: - resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + resolution: + { integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== } es-abstract@1.24.2: - resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg== } + engines: { node: ">= 0.4" } es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + resolution: + { integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== } es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== } + engines: { node: ">= 0.4" } es-dev-server@1.60.2: - resolution: {integrity: sha512-Lp9kZzawJ35HDKiqLNb/YbD2VufF+3tdxHgbP/kfdLI5JLgDJV4SuKTWWny3ZuBUAlZKGre7a0iXUByGQqfdPA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Lp9kZzawJ35HDKiqLNb/YbD2VufF+3tdxHgbP/kfdLI5JLgDJV4SuKTWWny3ZuBUAlZKGre7a0iXUByGQqfdPA== } + engines: { node: ">=0.10.0" } hasBin: true es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== } + engines: { node: ">= 0.4" } - es-iterator-helpers@1.3.2: - resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==} - engines: {node: '>= 0.4'} + es-iterator-helpers@1.3.3: + resolution: + { integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g== } + engines: { node: ">= 0.4" } es-module-lexer@0.3.26: - resolution: {integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==} + resolution: + { integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== } es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + resolution: + { integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== } es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + resolution: + { integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ== } es-module-shims@0.4.7: - resolution: {integrity: sha512-0LTiSQoPWwdcaTVIQXhGlaDwTneD0g9/tnH1PNs3zHFFH+xoCeJclDM3rQeqF9nurXPfMKm3l9+kfPRa5VpbKg==} + resolution: + { integrity: sha512-0LTiSQoPWwdcaTVIQXhGlaDwTneD0g9/tnH1PNs3zHFFH+xoCeJclDM3rQeqF9nurXPfMKm3l9+kfPRa5VpbKg== } es-module-shims@1.10.1: - resolution: {integrity: sha512-HSSkRLkqFEyX6GrCAHrSOR5iz/QzQJRqZUF7bFJOZ4aoSw0WoSggfsTIGN2yFbF8v6xjQFhT4HGP6b+0qQZmEQ==} + resolution: + { integrity: sha512-HSSkRLkqFEyX6GrCAHrSOR5iz/QzQJRqZUF7bFJOZ4aoSw0WoSggfsTIGN2yFbF8v6xjQFhT4HGP6b+0qQZmEQ== } es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== } + engines: { node: ">= 0.4" } es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== } + engines: { node: ">= 0.4" } es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== } + engines: { node: ">= 0.4" } es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== } + engines: { node: ">= 0.4" } es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== } + engines: { node: ">= 0.4" } - es-toolkit@1.46.1: - resolution: {integrity: sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==} + es-toolkit@1.47.1: + resolution: + { integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q== } es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - - es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + resolution: + { integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== } esbuild-plugin-solid@0.5.0: - resolution: {integrity: sha512-ITK6n+0ayGFeDVUZWNMxX+vLsasEN1ILrg4pISsNOQ+mq4ljlJJiuXotInd+HE0MzwTcA9wExT1yzDE2hsqPsg==} + resolution: + { integrity: sha512-ITK6n+0ayGFeDVUZWNMxX+vLsasEN1ILrg4pISsNOQ+mq4ljlJJiuXotInd+HE0MzwTcA9wExT1yzDE2hsqPsg== } peerDependencies: - esbuild: '>=0.12' - solid-js: '>= 1.0' + esbuild: ">=0.12" + solid-js: ">= 1.0" esbuild-plugin-solid@0.6.0: - resolution: {integrity: sha512-V1FvDALwLDX6K0XNYM9CMRAnMzA0+Ecu55qBUT9q/eAJh1KIDsTMFoOzMSgyHqbOfvrVfO3Mws3z7TW2GVnIZA==} + resolution: + { integrity: sha512-V1FvDALwLDX6K0XNYM9CMRAnMzA0+Ecu55qBUT9q/eAJh1KIDsTMFoOzMSgyHqbOfvrVfO3Mws3z7TW2GVnIZA== } peerDependencies: - esbuild: '>=0.20' - solid-js: '>= 1.0' - - esbuild-wasm@0.27.3: - resolution: {integrity: sha512-AUXuOxZ145/5Az+lIqk6TdJbxKTyDGkXMJpTExmBdbnHR6n6qAFx+F4oG9ORpVYJ9dQYeQAqzv51TO4DFKsbXw==} - engines: {node: '>=18'} - hasBin: true + esbuild: ">=0.20" + solid-js: ">= 1.0" esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== } + engines: { node: ">=12" } hasBin: true esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== } + engines: { node: ">=18" } hasBin: true esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w== } + engines: { node: ">=18" } hasBin: true esbuild@0.28.0: - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw== } + engines: { node: ">=18" } + hasBin: true + + esbuild@0.28.1: + resolution: + { integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== } + engines: { node: ">=18" } hasBin: true escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== } + engines: { node: ">=6" } escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== } + engines: { node: ">=8" } escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== } + engines: { node: ">=12" } escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } + engines: { node: ">=0.8.0" } escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== } + engines: { node: ">=8" } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: ">=10" } escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== } + engines: { node: ">=12" } escodegen@1.14.3: - resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== } + engines: { node: ">=4.0" } hasBin: true escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== } + engines: { node: ">=6.0" } hasBin: true - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} + eslint-config-next@16.2.9: + resolution: + { integrity: sha512-olGtBrs07bQchpaJWeqbk9GaMoU0oGmN/pYNEBXSbfgKngb5uHnPe37X6tVeh6DJfaWFQildvinGEOrolo5fmw== } peerDependencies: - eslint: '>=6.0.0' - - eslint-config-next@16.2.6: - resolution: {integrity: sha512-z2ELYSkyrrJ6cuunTU8vhsT/RpouPkjaSah06nVW6Rg2Hpg0Vs8s497/e5s8G8qtdp4ccsiovz5P1rv+5VSW2Q==} - peerDependencies: - eslint: '>=9.0.0' - typescript: '>=3.3.1' + eslint: ">=9.0.0" + typescript: ">=3.3.1" peerDependenciesMeta: typescript: optional: true - eslint-config-preact@1.5.0: - resolution: {integrity: sha512-ELK0QvBNwfdzhjzpKAioqemoupXk/WQocGXMc8aLxKC0//sQwKAhIzAXTHKSYuelG/op45uiTQEq51KCVHkN+A==} + eslint-config-preact@2.0.0: + resolution: + { integrity: sha512-TFj70lEE7y3R9DQAFJ/clRfVmyaXdwE3q56gA9zm+iTmlpYjtZKtV1jv/jtgdF2LqgvJjlGlGE1rHVwE9yNdkg== } peerDependencies: - eslint: 6.x || 7.x || 8.x + eslint: ^8.57.1 || ^9.0.0 eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + resolution: + { integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w== } hasBin: true peerDependencies: - eslint: '>=7.0.0' + eslint: ">=7.0.0" eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== } + engines: { node: ">=12.0.0" } peerDependencies: eslint: ^8.0.1 eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-n: "^15.0.0 || ^16.0.0 " eslint-plugin-promise: ^6.0.0 eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + resolution: + { integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg== } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } peerDependencies: unrs-resolver: ^1.0.0 peerDependenciesMeta: @@ -28686,45 +32488,49 @@ packages: optional: true eslint-import-resolver-node@0.3.10: - resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} + resolution: + { integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ== } eslint-import-resolver-typescript@3.10.1: - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ== } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" peerDependenciesMeta: eslint-plugin-import: optional: true eslint-plugin-import-x: optional: true - eslint-import-resolver-typescript@4.4.4: - resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} - engines: {node: ^16.17.0 || >=18.6.0} + eslint-import-resolver-typescript@4.4.5: + resolution: + { integrity: sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw== } + engines: { node: ^16.17.0 || >=18.6.0 } peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" peerDependenciesMeta: eslint-plugin-import: optional: true eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} - engines: {node: '>=4'} + eslint-module-utils@2.13.0: + resolution: + { integrity: sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ== } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint: optional: true @@ -28735,209 +32541,194 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-compat@4.2.0: - resolution: {integrity: sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==} - engines: {node: '>=14.x'} - peerDependencies: - eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - - eslint-plugin-ember@12.7.5: - resolution: {integrity: sha512-2zLEpu3xcKjykgsKkj8sU2GwdxADFTH5XPBvuIrNBP253JxHSz2P21isUuRB50kGoR2KL+eUHNgV0j7IPCav1w==} - engines: {node: 18.* || 20.* || >= 21} + eslint-plugin-compat@6.2.1: + resolution: + { integrity: sha512-gLKqUH+lQcCL+HzsROUjBDvakc5Zaga51Y4ZAkPCXc41pzKBfyluqTr2j8zOx8QQQb7zyglu1LVoL5aSNWf2SQ== } + engines: { node: ">=18.x" } peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '>= 8' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-ember@13.3.0: - resolution: {integrity: sha512-RUPWB50Jln5AfMRQ9SxeflnJaqPIj3fVcLhmKJhzTTKy3zPUMEe2z7RU1zNLArW8P4bMkCF9S8qDwQDU7GG/Vw==} - engines: {node: '>= 20.19'} + eslint-plugin-ember@13.3.2: + resolution: + { integrity: sha512-A/Sy+rfwpqOYwinU6chNZjzOPcbxg0JI69cSnM6uxUfeLRYGp0eYd9SiVB/j2QWAltGF/HAC6r8UMV+qKxUV2A== } + engines: { node: ">= 20.19" } peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '>= 8.40.0' + "@typescript-eslint/parser": "*" + eslint: ">= 8.40.0" peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} + resolution: + { integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== } + engines: { node: ">=8.10.0" } peerDependencies: - eslint: '>=4.19.1' + eslint: ">=4.19.1" eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} + resolution: + { integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== } + engines: { node: ">=8.10.0" } peerDependencies: - eslint: '>=4.19.1' + eslint: ">=4.19.1" eslint-plugin-eslint-comments@3.2.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} + resolution: + { integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== } + engines: { node: ">=6.5.0" } peerDependencies: - eslint: '>=4.19.1' + eslint: ">=4.19.1" eslint-plugin-import@2.32.0: - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' + "@typescript-eslint/parser": "*" eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint-plugin-jest@28.14.0: - resolution: {integrity: sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ==} - engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + resolution: + { integrity: sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ== } + engines: { node: ^16.10.0 || ^18.12.0 || >=20.0.0 } peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - jest: '*' + jest: "*" peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': + "@typescript-eslint/eslint-plugin": optional: true jest: optional: true eslint-plugin-jsdoc@50.8.0: - resolution: {integrity: sha512-UyGb5755LMFWPrZTEqqvTJ3urLz1iqj+bYOHFNag+sw3NvaMWP9K2z+uIn37XfNALmQLQyrBlJ5mkiVPL7ADEg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-UyGb5755LMFWPrZTEqqvTJ3urLz1iqj+bYOHFNag+sw3NvaMWP9K2z+uIn37XfNALmQLQyrBlJ5mkiVPL7ADEg== } + engines: { node: ">=18" } peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-jsdoc@62.9.0: - resolution: {integrity: sha512-PY7/X4jrVgoIDncUmITlUqK546Ltmx/Pd4Hdsu4CvSjryQZJI2mEV4vrdMufyTetMiZ5taNSqvK//BTgVUlNkA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - - eslint-plugin-jsdoc@63.0.0: - resolution: {integrity: sha512-eDHuVGyZydr4BKgjXouU7bsn5qaqUlObXBSWRJk3vXcQgXVFnrwWIqpP7uBhRX9NQpk6NIIFyRc6F6omZNi/8g==} - engines: {node: ^22.13.0 || >=24} + eslint-plugin-jsdoc@63.0.5: + resolution: + { integrity: sha512-AzI9bgKhV9li049/mIblX0c41DeWMMfH9qNsRasc+fAxwURRKChIp03Pk57M7UTf+Y6hifTJ89kQyCOoOLtEDw== } + engines: { node: ^22.13.0 || >=24 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== } + engines: { node: ">=4.0" } peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} + resolution: + { integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== } + engines: { node: ">=12.22.0" } peerDependencies: - eslint: '>=7.0.0' + eslint: ">=7.0.0" eslint-plugin-no-only-tests@3.4.0: - resolution: {integrity: sha512-4S3/9Nb7A2tiMcpzEQE9bQSlpeOz6WJkgryBuou/SA8W2x2c8Zf4j0NvTKBjv6qNhF9T79tmkecm/0CHqV0UGg==} - engines: {node: '>=5.0.0'} + resolution: + { integrity: sha512-4S3/9Nb7A2tiMcpzEQE9bQSlpeOz6WJkgryBuou/SA8W2x2c8Zf4j0NvTKBjv6qNhF9T79tmkecm/0CHqV0UGg== } + engines: { node: ">=5.0.0" } eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} + resolution: + { integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== } + engines: { node: ">=8.10.0" } peerDependencies: - eslint: '>=5.16.0' + eslint: ">=5.16.0" eslint-plugin-nuxt@4.0.0: - resolution: {integrity: sha512-v3Vwdk8YKe52bAz8eSIDqQuTtfL/T1r9dSl1uhC5SyR5pgLxgKkQdxXVf/Bf6Ax7uyd9rHqiAuYVdqqDb7ILdA==} + resolution: + { integrity: sha512-v3Vwdk8YKe52bAz8eSIDqQuTtfL/T1r9dSl1uhC5SyR5pgLxgKkQdxXVf/Bf6Ax7uyd9rHqiAuYVdqqDb7ILdA== } eslint-plugin-playwright@2.10.4: - resolution: {integrity: sha512-l0V/VxyqfFbtqCTxj5AdRn3Q6S/hIW4nKBnKZVleVbZ24N2My6Usj//ytX3dKKqAoSbvKck9YtSytfdZ5qjLuA==} - engines: {node: '>=16.9.0'} + resolution: + { integrity: sha512-l0V/VxyqfFbtqCTxj5AdRn3Q6S/hIW4nKBnKZVleVbZ24N2My6Usj//ytX3dKKqAoSbvKck9YtSytfdZ5qjLuA== } + engines: { node: ">=16.9.0" } peerDependencies: - eslint: '>=8.40.0' + eslint: ">=8.40.0" eslint-plugin-prefer-arrow@1.2.3: - resolution: {integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==} + resolution: + { integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== } peerDependencies: - eslint: '>=2.0.0' - - eslint-plugin-prettier@5.5.5: - resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint: ">=2.0.0" eslint-plugin-prettier@5.5.6: - resolution: {integrity: sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' + resolution: + { integrity: sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ== } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: ">= 7.0.0 <10.0.0 || >=10.1.0" + prettier: ">=3.0.0" peerDependenciesMeta: - '@types/eslint': + "@types/eslint": optional: true eslint-config-prettier: optional: true eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 eslint-plugin-qunit@8.2.6: - resolution: {integrity: sha512-S1jC/DIW9J8VtNX4uG1vlf5FZVrfQFlcuiYmvTHR2IICUhubHqpWA5o+qS1tujh+81Gs39omKV2D4OXfbSJE5g==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + resolution: + { integrity: sha512-S1jC/DIW9J8VtNX4uG1vlf5FZVrfQFlcuiYmvTHR2IICUhubHqpWA5o+qS1tujh+81Gs39omKV2D4OXfbSJE5g== } + engines: { node: ^16.0.0 || ^18.0.0 || >=20.0.0 } peerDependencies: - eslint: '>=8.38.0' + eslint: ">=8.38.0" eslint-plugin-qwik@1.20.0: - resolution: {integrity: sha512-6XY7cGK5BDvtjHnIRcDp50dXKlr9+jnQCudxl9VrwRaJPzgKUNpVVSbo5tflTZkCJLj6/svulE5MVSn6zTsHYw==} - engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} + resolution: + { integrity: sha512-6XY7cGK5BDvtjHnIRcDp50dXKlr9+jnQCudxl9VrwRaJPzgKUNpVVSbo5tflTZkCJLj6/svulE5MVSn6zTsHYw== } + engines: { node: ">=16.8.0 <18.0.0 || >=18.11" } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} + eslint-plugin-react-hooks@5.2.0: + resolution: + { integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg== } + engines: { node: ">=10" } peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 eslint-plugin-react-hooks@7.1.1: - resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g== } + engines: { node: ">=18" } peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 - eslint-plugin-react-refresh@0.5.2: - resolution: {integrity: sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==} + eslint-plugin-react-refresh@0.5.3: + resolution: + { integrity: sha512-5EMmLCV98Pi4o/f/3DP/v/tNqLHMIc9I8LKClNDWhZ9JTho89/kQcitCXQBMG7sAfVRK0Ie3T2EDOzp1YXYiVA== } peerDependencies: eslint: ^9 || ^10 eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== } + engines: { node: ">=4" } peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-svelte@2.46.1: - resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - eslint-plugin-svelte@3.17.1: - resolution: {integrity: sha512-NyiXHtS3Ni7e532RBwS9OXlMKDIrENg3gY+/+ODjZzQx2xhU3NlJ+nIl1a93iUUQeiJL3lS8KLmY+W8hklzweQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-plugin-svelte@3.19.0: + resolution: + { integrity: sha512-t3rNaZeXz4d2gG4uJyMEYfJCFKf22+SWbSizIIXIWKu4wM+XPLiMWuSSr/C5821JmFeN9ogK+eExbG+z+twyxw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 @@ -28946,426 +32737,523 @@ packages: optional: true eslint-plugin-tsdoc@0.5.2: - resolution: {integrity: sha512-BlvqjWZdBJDIPO/YU3zcPCF23CvjYT3gyu63yo6b609NNV3D1b6zceAREy2xnweuBoDpZcLNuPyAUq9cvx6bbQ==} + resolution: + { integrity: sha512-BlvqjWZdBJDIPO/YU3zcPCF23CvjYT3gyu63yo6b609NNV3D1b6zceAREy2xnweuBoDpZcLNuPyAUq9cvx6bbQ== } eslint-plugin-unicorn@44.0.2: - resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} - engines: {node: '>=14.18'} + resolution: + { integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w== } + engines: { node: ">=14.18" } peerDependencies: - eslint: '>=8.23.1' + eslint: ">=8.23.1" - eslint-plugin-vue@10.9.1: - resolution: {integrity: sha512-cHB0Tf4Duvzwecwd/AqWzZvF/QszE13BhjVUpVXWCy9AeMR5GjkAjP3i85vqgLgOuTmkHR1OJ5oMeqLHtuw8zg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-plugin-vue@10.9.2: + resolution: + { integrity: sha512-4g7ZP3pYcuqd7Zp0pzUKcos0W+RkjBz4EGdhJ92FcYk6v03Ti/GK5NwjgsjxHK+98eXDbHeK7VtX1az7/8doZA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 + "@stylistic/eslint-plugin": ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + "@typescript-eslint/parser": ^7.0.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 vue-eslint-parser: ^10.3.0 peerDependenciesMeta: - '@stylistic/eslint-plugin': + "@stylistic/eslint-plugin": optional: true - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint-plugin-vue@9.33.0: - resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} - engines: {node: ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== } + engines: { node: ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 eslint-scope@4.0.3: - resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== } + engines: { node: ">=4.0.0" } eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== } + engines: { node: ">=8.0.0" } eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + resolution: + { integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== } + engines: { node: ">=6" } eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + resolution: + { integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== } + engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } peerDependencies: - eslint: '>=5' + eslint: ">=5" eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== } + engines: { node: ">=4" } eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== } + engines: { node: ">=10" } eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + resolution: + { integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } eslint-webpack-plugin@4.2.0: - resolution: {integrity: sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA==} - engines: {node: '>= 14.15.0'} + resolution: + { integrity: sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA== } + engines: { node: ">= 14.15.0" } peerDependencies: eslint: ^8.0.0 || ^9.0.0 webpack: ^5.0.0 - eslint@10.4.1: - resolution: {integrity: sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@10.5.0: + resolution: + { integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } hasBin: true peerDependencies: - jiti: '*' + jiti: "*" peerDependenciesMeta: jiti: optional: true esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + resolution: + { integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== } + + esm-import-transformer@3.0.5: + resolution: + { integrity: sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw== } esm@3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== } + engines: { node: ">=6" } espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + resolution: + { integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } esprima@3.0.0: - resolution: {integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw== } + engines: { node: ">=0.10.0" } hasBin: true esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } + engines: { node: ">=4" } hasBin: true esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== } + engines: { node: ">=0.10" } - esrap@2.2.9: - resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} + esrap@2.2.11: + resolution: + { integrity: sha512-gPdx+I+BjYEinNMQaBXFjbaJVyoPMU4ZODg5mE+M4DqVG9VusAVHHjcBX+zqyITlI0DIARwDMMzZwAWj36dRoQ== } peerDependencies: - '@typescript-eslint/types': ^8.2.0 + "@typescript-eslint/types": ^8.2.0 peerDependenciesMeta: - '@typescript-eslint/types': + "@typescript-eslint/types": optional: true esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } + engines: { node: ">=4.0" } estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== } + engines: { node: ">=4.0" } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } + engines: { node: ">=4.0" } estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + resolution: + { integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== } estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + resolution: + { integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== } estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: + { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } + engines: { node: ">=0.10.0" } etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== } + engines: { node: ">= 0.6" } + + evaluate-value@2.0.0: + resolution: + { integrity: sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ== } + engines: { node: ">= 8" } event-pubsub@4.3.0: - resolution: {integrity: sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== } + engines: { node: ">=4.0.0" } event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== } + engines: { node: ">=6" } eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + resolution: + { integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== } eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + resolution: + { integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== } events-to-array@2.0.3: - resolution: {integrity: sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ== } + engines: { node: ">=12" } events-universal@1.0.1: - resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + resolution: + { integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw== } events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== } + engines: { node: ">=0.8.x" } - eventsource-parser@3.0.8: - resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} - engines: {node: '>=18.0.0'} + eventsource-parser@3.1.0: + resolution: + { integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg== } + engines: { node: ">=18.0.0" } eventsource-polyfill@0.9.6: - resolution: {integrity: sha512-LyMFp2oPDGhum2lMvkjqKZEwWd2/AoXyt8aoyftTBMWwPHNgU+2tdxhTHPluDxoz+z4gNj0uHAPR9nqevATMbg==} + resolution: + { integrity: sha512-LyMFp2oPDGhum2lMvkjqKZEwWd2/AoXyt8aoyftTBMWwPHNgU+2tdxhTHPluDxoz+z4gNj0uHAPR9nqevATMbg== } eventsource@3.0.7: - resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA== } + engines: { node: ">=18.0.0" } evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + resolution: + { integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== } exec-sh@0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + resolution: + { integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== } execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== } + engines: { node: ">=6" } execa@2.1.0: - resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==} - engines: {node: ^8.12.0 || >=9.7.0} + resolution: + { integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== } + engines: { node: ^8.12.0 || >=9.7.0 } execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== } + engines: { node: ">=10" } execa@5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== } + engines: { node: ">=10" } execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== } + engines: { node: ">=10" } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== } + engines: { node: ">=16.17" } execa@9.6.1: - resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} - engines: {node: ^18.19.0 || >=20.5.0} + resolution: + { integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA== } + engines: { node: ^18.19.0 || >=20.5.0 } exit-hook@5.1.0: - resolution: {integrity: sha512-INjr2xyxHo7bhAqf5ong++GZPPnpcuBcaXUKt03yf7Fie9yWD7FapL4teOU0+awQazGs5ucBh7xWs/AD+6nhog==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-INjr2xyxHo7bhAqf5ong++GZPPnpcuBcaXUKt03yf7Fie9yWD7FapL4teOU0+awQazGs5ucBh7xWs/AD+6nhog== } + engines: { node: ">=20" } exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== } + engines: { node: ">= 0.8.0" } expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== } + engines: { node: ">=0.10.0" } expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== } + engines: { node: ">=6" } expand-tilde@1.2.2: - resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q== } + engines: { node: ">=0.10.0" } expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== } + engines: { node: ">=0.10.0" } expect-puppeteer@4.4.0: - resolution: {integrity: sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==} + resolution: + { integrity: sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA== } expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA== } + engines: { node: ">=12.0.0" } expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } expect@30.4.1: - resolution: {integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } exponential-backoff@3.1.3: - resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - - express-rate-limit@7.5.1: - resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} - engines: {node: '>= 16'} - peerDependencies: - express: '>= 4.11' + resolution: + { integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA== } express-rate-limit@8.5.2: - resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} - engines: {node: '>= 16'} + resolution: + { integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A== } + engines: { node: ">= 16" } peerDependencies: - express: '>= 4.11' + express: ">= 4.11" express@4.22.2: - resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q== } + engines: { node: ">= 0.10.0" } express@5.2.1: - resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== } + engines: { node: ">= 18" } exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + resolution: + { integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== } extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== } + engines: { node: ">=0.10.0" } extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== } + engines: { node: ">=0.10.0" } extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: + { integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== } external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== } + engines: { node: ">=4" } externality@1.0.2: - resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} + resolution: + { integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw== } extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== } + engines: { node: ">=0.10.0" } extract-css-chunks-webpack-plugin@4.10.0: - resolution: {integrity: sha512-D/wb/Tbexq8XMBl4uhthto25WBaHI9P8vucDdzwPtLTyVi4Rdw/aiRLSL2rHaF6jZfPAjThWXepFU9PXsdtIbA==} - engines: {node: '>= 6.9.0'} + resolution: + { integrity: sha512-D/wb/Tbexq8XMBl4uhthto25WBaHI9P8vucDdzwPtLTyVi4Rdw/aiRLSL2rHaF6jZfPAjThWXepFU9PXsdtIbA== } + engines: { node: ">= 6.9.0" } peerDependencies: webpack: ^4.4.0 || ^5.0.0 extract-stack@2.0.0: - resolution: {integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ== } + engines: { node: ">=8" } extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} + resolution: + { integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== } + engines: { node: ">= 10.17.0" } hasBin: true extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} + resolution: + { integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== } + engines: { "0": node >=0.6.0 } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + resolution: + { integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== } fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@2.2.7: - resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== } fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} + resolution: + { integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== } + engines: { node: ">=8.6.0" } fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + resolution: + { integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== } + engines: { node: ">=8.6.0" } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } fast-levenshtein@3.0.0: - resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} + resolution: + { integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== } fast-npm-meta@1.5.1: - resolution: {integrity: sha512-tWhw7z4jFuQgZB9tbQyUh5BY9nNd/wimM+fBLfmmJjakkJDNvbJKm0nQ5ruPKC0us1HGg7L6iBk1fxpSzcgSaA==} + resolution: + { integrity: sha512-tWhw7z4jFuQgZB9tbQyUh5BY9nNd/wimM+fBLfmmJjakkJDNvbJKm0nQ5ruPKC0us1HGg7L6iBk1fxpSzcgSaA== } hasBin: true fast-ordered-set@1.0.3: - resolution: {integrity: sha512-MxBW4URybFszOx1YlACEoK52P6lE3xiFcPaGCUZ7QQOZ6uJXKo++Se8wa31SjcZ+NC/fdAWX7UtKEfaGgHS2Vg==} + resolution: + { integrity: sha512-MxBW4URybFszOx1YlACEoK52P6lE3xiFcPaGCUZ7QQOZ6uJXKo++Se8wa31SjcZ+NC/fdAWX7UtKEfaGgHS2Vg== } fast-sourcemap-concat@2.1.1: - resolution: {integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw== } + engines: { node: 10.* || >= 12.* } fast-string-truncated-width@3.0.3: - resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + resolution: + { integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g== } fast-string-width@3.0.2: - resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + resolution: + { integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg== } fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + resolution: + { integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ== } fast-wrap-ansi@0.2.2: - resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + resolution: + { integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q== } fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastparse@1.1.2: - resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} + resolution: + { integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== } + engines: { node: ">= 4.9.1" } fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + resolution: + { integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== } faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== } + engines: { node: ">=0.8.0" } fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + resolution: + { integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== } fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + resolution: + { integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== } fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== } + engines: { node: ">=12.0.0" } peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -29373,342 +33261,436 @@ packages: optional: true fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + resolution: + { integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== } fflate@0.8.3: - resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + resolution: + { integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA== } figgy-pudding@3.5.2: - resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + resolution: + { integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== } deprecated: This module is no longer supported. figures@1.7.0: - resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== } + engines: { node: ">=0.10.0" } figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== } + engines: { node: ">=4" } figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== } + engines: { node: ">=8" } figures@6.1.0: - resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== } + engines: { node: ">=18" } file-entry-cache@11.1.3: - resolution: {integrity: sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==} + resolution: + { integrity: sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA== } file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + resolution: + { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } + engines: { node: ">=16.0.0" } file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + resolution: + { integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== } filelist@1.0.6: - resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + resolution: + { integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA== } filename-reserved-regex@2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== } + engines: { node: ">=4" } filename-reserved-regex@3.0.0: - resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } filename-reserved-regex@4.0.0: - resolution: {integrity: sha512-9ZT504KxEQDamsOogZImAWGEN24R1uFAxU3ZS4AZqn2ooidmN68Olh7n4/RcA4lLatZztjA0ZSuxeLHVoCc8JA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-9ZT504KxEQDamsOogZImAWGEN24R1uFAxU3ZS4AZqn2ooidmN68Olh7n4/RcA4lLatZztjA0ZSuxeLHVoCc8JA== } + engines: { node: ">=20" } filenamify@4.3.0: - resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== } + engines: { node: ">=8" } filenamify@6.0.0: - resolution: {integrity: sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ== } + engines: { node: ">=16" } + + filenamify@7.0.2: + resolution: + { integrity: sha512-fz10TUqSZ1lG7ftW1KnRotJzMD8YRb6kaAQKpZJBLvqXXfFgIEpuazy1w2lK3zhMiBSdH/uF9LFlv5smJ2Jl1w== } + engines: { node: ">=20" } - filenamify@7.0.1: - resolution: {integrity: sha512-9b4rfnaX2MkJCgp27wypV6DAMvj4WMOSgJ+TdcpJIO84Dql+Cv6iJjdG4XDTLubOWkfNiBv3joO59sau/TXw+Q==} - engines: {node: '>=20'} + filesize@10.1.6: + resolution: + { integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w== } + engines: { node: ">= 10.4.0" } filesize@11.0.17: - resolution: {integrity: sha512-oHLTvMLw6imZUl1se/RBQrFlyy50nXce4sU7yGR6Qc0JgCwqnfiFsAnEwotdGmfKLD7SArGUk2/5STU0k8LOBQ==} - engines: {node: '>= 10.8.0'} + resolution: + { integrity: sha512-oHLTvMLw6imZUl1se/RBQrFlyy50nXce4sU7yGR6Qc0JgCwqnfiFsAnEwotdGmfKLD7SArGUk2/5STU0k8LOBQ== } + engines: { node: ">= 10.8.0" } filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} + resolution: + { integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== } + engines: { node: ">= 0.4.0" } fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== } + engines: { node: ">=0.10.0" } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } + engines: { node: ">=8" } finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== } + engines: { node: ">= 0.8" } finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== } + engines: { node: ">= 0.8" } finalhandler@2.1.1: - resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} - engines: {node: '>= 18.0.0'} + resolution: + { integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== } + engines: { node: ">= 18.0.0" } find-babel-config@1.2.2: - resolution: {integrity: sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q== } + engines: { node: ">=4.0.0" } find-babel-config@2.1.2: - resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==} + resolution: + { integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg== } find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== } + engines: { node: ">=6" } find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== } + engines: { node: ">=8" } find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== } + engines: { node: ">=14.16" } find-cache-directory@6.0.0: - resolution: {integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA== } + engines: { node: ">=20" } find-file-up@0.1.3: - resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A== } + engines: { node: ">=0.10.0" } find-index@0.1.1: - resolution: {integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==} + resolution: + { integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg== } find-index@1.1.1: - resolution: {integrity: sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw==} + resolution: + { integrity: sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw== } find-parent-dir@0.3.1: - resolution: {integrity: sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==} + resolution: + { integrity: sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== } find-pkg@0.1.2: - resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw== } + engines: { node: ">=0.10.0" } find-process@1.4.11: - resolution: {integrity: sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==} + resolution: + { integrity: sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA== } hasBin: true find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== } + engines: { node: ">=4.0.0" } find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + resolution: + { integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== } find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ== } + engines: { node: ">=18" } find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== } + engines: { node: ">=4" } find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== } + engines: { node: ">=6" } find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } + engines: { node: ">=8" } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } + engines: { node: ">=10" } find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } find-up@8.0.0: - resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww== } + engines: { node: ">=20" } find-yarn-workspace-root@2.0.0: - resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + resolution: + { integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== } findup-sync@5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== } + engines: { node: ">= 10.13.0" } fined@2.0.0: - resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A== } + engines: { node: ">= 10.13.0" } fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + resolution: + { integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg== } fixturify-project@1.10.0: - resolution: {integrity: sha512-L1k9uiBQuN0Yr8tA9Noy2VSQ0dfg0B8qMdvT7Wb5WQKc7f3dn3bzCbSrqlb+etLW+KDV4cBC7R1OvcMg3kcxmA==} + resolution: + { integrity: sha512-L1k9uiBQuN0Yr8tA9Noy2VSQ0dfg0B8qMdvT7Wb5WQKc7f3dn3bzCbSrqlb+etLW+KDV4cBC7R1OvcMg3kcxmA== } fixturify@1.3.0: - resolution: {integrity: sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ== } + engines: { node: 6.* || 8.* || >= 10.* } flagged-respawn@2.0.0: - resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA== } + engines: { node: ">= 10.13.0" } flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== } + engines: { node: ">=16" } flat-cache@6.1.22: - resolution: {integrity: sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==} + resolution: + { integrity: sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug== } flat@4.1.1: - resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} + resolution: + { integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== } hasBin: true flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: + { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } hasBin: true flatted@2.0.2: - resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + resolution: + { integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== } flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + resolution: + { integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== } flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ== } + engines: { node: ">=8" } flora-colossus@3.0.2: - resolution: {integrity: sha512-Jk78K/Tzt6saxQPGChlJw69xuFGpWyTSAS8EdU0h/FyXwD2K46yNOXmo6nRHcZ9ooekyBAzMkwmiGNt7wOC5zg==} - engines: {node: '>=22.12.0'} + resolution: + { integrity: sha512-Jk78K/Tzt6saxQPGChlJw69xuFGpWyTSAS8EdU0h/FyXwD2K46yNOXmo6nRHcZ9ooekyBAzMkwmiGNt7wOC5zg== } + engines: { node: ">=22.12.0" } flush-write-stream@1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + resolution: + { integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== } fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + resolution: + { integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== } focus-trap@7.8.0: - resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + resolution: + { integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA== } follow-redirects@1.16.0: - resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== } + engines: { node: ">=4.0" } peerDependencies: - debug: '*' + debug: "*" peerDependenciesMeta: debug: optional: true fontace@0.4.1: - resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} + resolution: + { integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw== } fontkitten@1.0.3: - resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw== } + engines: { node: ">=20" } for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== } + engines: { node: ">= 0.4" } for-in@0.1.8: - resolution: {integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g== } + engines: { node: ">=0.10.0" } for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== } + engines: { node: ">=0.10.0" } for-own@0.1.5: - resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw== } + engines: { node: ">=0.10.0" } for-own@1.0.0: - resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== } + engines: { node: ">=0.10.0" } foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== } + engines: { node: ">=8.0.0" } foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== } + engines: { node: ">=14" } forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + resolution: + { integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== } fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' + resolution: + { integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== } + engines: { node: ">=10", yarn: ">=1.0.0" } + peerDependencies: + eslint: ">= 6" + typescript: ">= 2.7" + vue-template-compiler: "*" + webpack: ">= 4" peerDependenciesMeta: eslint: optional: true vue-template-compiler: optional: true - fork-ts-checker-webpack-plugin@8.0.0: - resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + fork-ts-checker-webpack-plugin@9.1.0: + resolution: + { integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q== } + engines: { node: ">=14.21.3" } peerDependencies: - typescript: '>3.6.0' + typescript: ">3.6.0" webpack: ^5.11.0 form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} + resolution: + { integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== } + engines: { node: ">= 0.12" } form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== } + engines: { node: ">= 6" } + + form-data@4.0.6: + resolution: + { integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== } + engines: { node: ">= 6" } forwarded-parse@2.1.2: - resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + resolution: + { integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw== } forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== } + engines: { node: ">= 0.6" } fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + resolution: + { integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== } fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== } + engines: { node: ">=0.10.0" } framer-motion@11.18.2: - resolution: {integrity: sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==} + resolution: + { integrity: sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w== } peerDependencies: - '@emotion/is-prop-valid': '*' + "@emotion/is-prop-valid": "*" react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: - '@emotion/is-prop-valid': + "@emotion/is-prop-valid": optional: true react: optional: true @@ -29716,2040 +33698,2501 @@ packages: optional: true fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== } + engines: { node: ">= 0.6" } fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== } + engines: { node: ">= 0.8" } from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + resolution: + { integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== } fromentries@1.3.2: - resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + resolution: + { integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== } fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: + { integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== } fs-exists-sync@0.1.0: - resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg== } + engines: { node: ">=0.10.0" } fs-extra@0.24.0: - resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==} + resolution: + { integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A== } fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== } + engines: { node: ">=12" } fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} - engines: {node: '>=14.14'} + resolution: + { integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA== } + engines: { node: ">=14.14" } fs-extra@11.3.5: - resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} - engines: {node: '>=14.14'} + resolution: + { integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg== } + engines: { node: ">=14.14" } fs-extra@4.0.3: - resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} + resolution: + { integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== } fs-extra@5.0.0: - resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} + resolution: + { integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== } fs-extra@6.0.1: - resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} + resolution: + { integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== } fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== } + engines: { node: ">=6 <7 || >=8" } fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } + engines: { node: ">=6 <7 || >=8" } fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== } + engines: { node: ">=10" } fs-memo@1.2.0: - resolution: {integrity: sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w==} + resolution: + { integrity: sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w== } fs-merger@3.2.1: - resolution: {integrity: sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==} + resolution: + { integrity: sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug== } fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} + resolution: + { integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== } fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== } + engines: { node: ">= 8" } fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } fs-mkdirp-stream@2.0.1: - resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw== } + engines: { node: ">=10.13.0" } fs-monkey@1.1.0: - resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} + resolution: + { integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== } fs-tree-diff@0.5.9: - resolution: {integrity: sha512-872G8ax0kHh01m9n/2KDzgYwouKza0Ad9iFltBpNykvROvf2AGtoOzPJgGx125aolGPER3JuC7uZFrQ7bG1AZw==} + resolution: + { integrity: sha512-872G8ax0kHh01m9n/2KDzgYwouKza0Ad9iFltBpNykvROvf2AGtoOzPJgGx125aolGPER3JuC7uZFrQ7bG1AZw== } fs-tree-diff@2.0.1: - resolution: {integrity: sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A== } + engines: { node: 6.* || 8.* || >= 10.* } fs-updater@1.0.4: - resolution: {integrity: sha512-0pJX4mJF/qLsNEwTct8CdnnRdagfb+LmjRPJ8sO+nCnAZLW0cTmz4rTgU25n+RvTuWSITiLKrGVJceJPBIPlKg==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-0pJX4mJF/qLsNEwTct8CdnnRdagfb+LmjRPJ8sO+nCnAZLW0cTmz4rTgU25n+RvTuWSITiLKrGVJceJPBIPlKg== } + engines: { node: ">=6.0.0" } fs-write-stream-atomic@1.0.10: - resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} + resolution: + { integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== } deprecated: This package is no longer supported. fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} + resolution: + { integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== } + engines: { node: ">= 4.0" } os: [darwin] deprecated: Upgrade to fsevents v2 to mitigate potential security issues fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} + function.prototype.name@1.2.0: + resolution: + { integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew== } + engines: { node: ">= 0.4" } functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== } - fuse.js@7.3.0: - resolution: {integrity: sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==} - engines: {node: '>=10'} + fuse.js@7.4.2: + resolution: + { integrity: sha512-LVbzjD4WA6UP5B1UnP8wuaXJiLnqMdM/E4fiJXTJ5haJ5b/MBNsK29h2fm6swEoQaVQjvYFWKLE2RanyZIoRVQ== } + engines: { node: ">=10" } fzf@0.5.2: - resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} + resolution: + { integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q== } galactus@2.0.2: - resolution: {integrity: sha512-HmKyTFGomdAchz4umx8MwBnrnfFmdpwiTyGA4ZOF7rya2Lmgbc9qate4yweInL+0gUBVImhaz12SBGpW3SY4Yg==} - engines: {node: '>=22.12.0'} + resolution: + { integrity: sha512-HmKyTFGomdAchz4umx8MwBnrnfFmdpwiTyGA4ZOF7rya2Lmgbc9qate4yweInL+0gUBVImhaz12SBGpW3SY4Yg== } + engines: { node: ">=22.12.0" } gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } deprecated: This package is no longer supported. generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - - generic-names@1.0.3: - resolution: {integrity: sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==} + resolution: + { integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== } + engines: { node: ">= 0.4" } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } + engines: { node: ">=6.9.0" } get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } + engines: { node: 6.* || 8.* || >= 10.* } get-east-asian-width@1.6.0: - resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA== } + engines: { node: ">=18" } get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + resolution: + { integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== } get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== } + engines: { node: ">= 0.4" } get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== } + engines: { node: ">=6" } get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + resolution: + { integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== } get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== } + engines: { node: ">=8.0.0" } get-pkg-repo@4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== } + engines: { node: ">=6.9.0" } hasBin: true get-port-please@2.6.1: - resolution: {integrity: sha512-4PDSrL6+cuMM1xs6w36ZIkaKzzE0xzfVBCfebHIJ3FE8iB9oic/ECwPw3iNiD4h1AoJ5XLLBhEviFAVrZsDC5A==} + resolution: + { integrity: sha512-4PDSrL6+cuMM1xs6w36ZIkaKzzE0xzfVBCfebHIJ3FE8iB9oic/ECwPw3iNiD4h1AoJ5XLLBhEviFAVrZsDC5A== } get-port-please@3.2.0: - resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} - - get-port@3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A== } get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== } + engines: { node: ">=8" } get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== } + engines: { node: ">= 0.4" } get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== } + engines: { node: ">=12" } get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== } + engines: { node: ">=6" } get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== } + engines: { node: ">=8" } get-stream@6.0.0: - resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== } + engines: { node: ">=10" } get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== } + engines: { node: ">=10" } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== } + engines: { node: ">=16" } get-stream@9.0.1: - resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== } + engines: { node: ">=18" } get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== } + engines: { node: ">= 0.4" } get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + resolution: + { integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA== } get-tsconfig@5.0.0-beta.4: - resolution: {integrity: sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==} - engines: {node: '>=20.20.0'} + resolution: + { integrity: sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ== } + engines: { node: ">=20.20.0" } get-tsconfig@5.0.0-beta.5: - resolution: {integrity: sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==} - engines: {node: '>=20.20.0'} + resolution: + { integrity: sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ== } + engines: { node: ">=20.20.0" } get-uri@6.0.5: - resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg== } + engines: { node: ">= 14" } get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== } + engines: { node: ">=0.10.0" } getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + resolution: + { integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== } gettext-parser@1.4.0: - resolution: {integrity: sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==} + resolution: + { integrity: sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA== } gh-pages@6.3.0: - resolution: {integrity: sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA== } + engines: { node: ">=10" } hasBin: true - giget@3.2.0: - resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} + giget@3.3.0: + resolution: + { integrity: sha512-gzi2D96p+AMfDcmJHGDj3KJ9NRiwvlFAU5yfa3ROwWZmFUjX4P43x3BcyRaOMMLto1vUo7C+86+MFhYTl6Ryiw== } hasBin: true git-config-path@2.0.0: - resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA== } + engines: { node: ">=4" } git-hooks-list@3.2.0: - resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} + resolution: + { integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ== } git-hooks-list@4.2.1: - resolution: {integrity: sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw==} + resolution: + { integrity: sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw== } git-raw-commits@3.0.0: - resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw== } + engines: { node: ">=14" } deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true git-raw-commits@5.0.1: - resolution: {integrity: sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ== } + engines: { node: ">=18" } hasBin: true git-remote-origin-url@2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== } + engines: { node: ">=4" } git-repo-info@2.1.1: - resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} - engines: {node: '>= 4.0'} + resolution: + { integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== } + engines: { node: ">= 4.0" } git-semver-tags@5.0.1: - resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA== } + engines: { node: ">=14" } deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + resolution: + { integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== } git-url-parse@13.1.1: - resolution: {integrity: sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==} + resolution: + { integrity: sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ== } git-url-parse@14.0.0: - resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} + resolution: + { integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== } gitconfiglocal@1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} + resolution: + { integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== } github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + resolution: + { integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== } github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + resolution: + { integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== } github-url-from-git@1.5.0: - resolution: {integrity: sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==} + resolution: + { integrity: sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ== } gittar@0.1.1: - resolution: {integrity: sha512-p+XuqWJpW9ahUuNTptqeFjudFq31o6Jd+maMBarkMAR5U3K9c7zJB4sQ4BV8mIqrTOV29TtqikDhnZfCD4XNfQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-p+XuqWJpW9ahUuNTptqeFjudFq31o6Jd+maMBarkMAR5U3K9c7zJB4sQ4BV8mIqrTOV29TtqikDhnZfCD4XNfQ== } + engines: { node: ">=4" } glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + resolution: + { integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: ">= 6" } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } + engines: { node: ">=10.13.0" } glob-stream@8.0.3: - resolution: {integrity: sha512-fqZVj22LtFJkHODT+M4N1RJQ3TjnnQhfE9GwZI8qXscYarnhpip70poMldRnP8ipQ/w0B621kOhfc53/J9bd/A==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-fqZVj22LtFJkHODT+M4N1RJQ3TjnnQhfE9GwZI8qXscYarnhpip70poMldRnP8ipQ/w0B621kOhfc53/J9bd/A== } + engines: { node: ">=10.13.0" } glob-to-regex.js@1.2.0: - resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} - engines: {node: '>=10.0'} + resolution: + { integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' - - glob-to-regexp@0.3.0: - resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} + tslib: "2" glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: + { integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== } glob-watcher@6.0.0: - resolution: {integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw== } + engines: { node: ">= 10.13.0" } glob2base@0.0.12: - resolution: {integrity: sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA== } + engines: { node: ">= 0.10" } glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + resolution: + { integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw== } + engines: { node: 20 || >=22 } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@13.0.6: - resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} - engines: {node: 18 || 20 || >=22} + resolution: + { integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== } + engines: { node: 18 || 20 || >=22 } glob@5.0.15: - resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + resolution: + { integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.1.3: - resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==} + resolution: + { integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== } + engines: { node: ">=12" } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== } + engines: { node: ">=16 || 14 >=14.17" } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} - engines: {node: '>=10.0'} - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== } + engines: { node: ">=18" } global-directory@5.0.0: - resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w== } + engines: { node: ">=20" } global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== } + engines: { node: ">=10" } global-modules@0.2.3: - resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA== } + engines: { node: ">=0.10.0" } global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== } + engines: { node: ">=0.10.0" } global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== } + engines: { node: ">=6" } global-prefix@0.1.5: - resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw== } + engines: { node: ">=0.10.0" } global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== } + engines: { node: ">=0.10.0" } global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== } + engines: { node: ">=6" } globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== } + engines: { node: ">=8" } + + globals@15.15.0: + resolution: + { integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== } + engines: { node: ">=18" } globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw== } + engines: { node: ">=18" } globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ== } + engines: { node: ">=18" } globals@17.6.0: - resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA== } + engines: { node: ">=18" } globals@9.18.0: - resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== } + engines: { node: ">=0.10.0" } globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== } + engines: { node: ">= 0.4" } globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + resolution: + { integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== } globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } + engines: { node: ">=10" } globby@12.2.0: - resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA== } + engines: { node: ">=18" } globby@16.2.0: - resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} - engines: {node: '>=20'} - - globby@5.0.0: - resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q== } + engines: { node: ">=20" } globby@6.1.0: - resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== } + engines: { node: ">=0.10.0" } globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + resolution: + { integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== } globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + resolution: + { integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== } glogg@2.2.0: - resolution: {integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A== } + engines: { node: ">= 10.13.0" } gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} + resolution: + { integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== } + engines: { node: ">= 0.4" } got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== } + engines: { node: ">=8.6" } graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + resolution: + { integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== } graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } gradient-parser@1.1.1: - resolution: {integrity: sha512-Hu0YfNU+38EsTmnUfLXUKFMXq9yz7htGYpF4x+dlbBhUCvIvzLt0yVLT/gJRmvLKFJdqNFrz4eKkIUjIXSr7Tw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Hu0YfNU+38EsTmnUfLXUKFMXq9yz7htGYpF4x+dlbBhUCvIvzLt0yVLT/gJRmvLKFJdqNFrz4eKkIUjIXSr7Tw== } + engines: { node: ">=0.10.0" } graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== } + engines: { node: ">=6.0" } growl@1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} + resolution: + { integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== } + engines: { node: ">=4.x" } growly@1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + resolution: + { integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== } gulp-cli@3.1.0: - resolution: {integrity: sha512-zZzwlmEsTfXcxRKiCHsdyjZZnFvXWM4v1NqBJSYbuApkvVKivjcmOS2qruAJ+PkEHLFavcDKH40DPc1+t12a9Q==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-zZzwlmEsTfXcxRKiCHsdyjZZnFvXWM4v1NqBJSYbuApkvVKivjcmOS2qruAJ+PkEHLFavcDKH40DPc1+t12a9Q== } + engines: { node: ">=10.13.0" } hasBin: true gulp@5.0.1: - resolution: {integrity: sha512-PErok3DZSA5WGMd6XXV3IRNO0mlB+wW3OzhFJLEec1jSERg2j1bxJ6e5Fh6N6fn3FH2T9AP4UYNb/pYlADB9sA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-PErok3DZSA5WGMd6XXV3IRNO0mlB+wW3OzhFJLEec1jSERg2j1bxJ6e5Fh6N6fn3FH2T9AP4UYNb/pYlADB9sA== } + engines: { node: ">=10.13.0" } hasBin: true gulplog@2.2.0: - resolution: {integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A== } + engines: { node: ">= 10.13.0" } gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== } + engines: { node: ">=10" } gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } h3@1.15.11: - resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + resolution: + { integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg== } hamljs@0.6.2: - resolution: {integrity: sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==} + resolution: + { integrity: sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg== } handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + resolution: + { integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== } handlebars@4.7.9: - resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} - engines: {node: '>=0.4.7'} + resolution: + { integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ== } + engines: { node: ">=0.4.7" } hasBin: true har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== } + engines: { node: ">=4" } har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== } + engines: { node: ">=6" } deprecated: this library is no longer supported hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== } + engines: { node: ">=6" } hard-source-webpack-plugin@0.13.1: - resolution: {integrity: sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== } + engines: { node: ">=8.0.0" } peerDependencies: - webpack: '*' + webpack: "*" harmony-reflect@1.6.2: - resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + resolution: + { integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== } has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== } + engines: { node: ">=0.10.0" } has-ansi@3.0.0: - resolution: {integrity: sha512-5JRDTvNq6mVkaMHQVXrGnaCXHD6JfqxwCy8LA/DQSqLLqePR9uaJVm2u3Ek/UziJFQz+d1ul99RtfIhE2aorkQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-5JRDTvNq6mVkaMHQVXrGnaCXHD6JfqxwCy8LA/DQSqLLqePR9uaJVm2u3Ek/UziJFQz+d1ul99RtfIhE2aorkQ== } + engines: { node: ">=4" } has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== } + engines: { node: ">= 0.4" } has-binary2@1.0.3: - resolution: {integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==} + resolution: + { integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== } has-cors@1.1.0: - resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==} - - has-flag@1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } + engines: { node: ">=4" } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } + engines: { node: ">=8" } has-flag@5.0.1: - resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA== } + engines: { node: ">=12" } has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: + { integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== } has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== } + engines: { node: ">= 0.4" } has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== } + engines: { node: ">= 0.4" } has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== } + engines: { node: ">= 0.4" } has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + resolution: + { integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== } has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== } + engines: { node: ">=0.10.0" } has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== } + engines: { node: ">=0.10.0" } has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== } + engines: { node: ">=0.10.0" } has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== } + engines: { node: ">=0.10.0" } has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== } + engines: { node: ">=8" } has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} + resolution: + { integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== } + engines: { node: ">= 0.4.0" } hash-base@3.0.5: - resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg== } + engines: { node: ">= 0.10" } hash-base@3.1.2: - resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== } + engines: { node: ">= 0.8" } hash-for-dep@1.5.2: - resolution: {integrity: sha512-+kJRJpgO+V8x6c3UQuzO+gzHu5euS8HDOIaIUsOPdQrVu7ajNKkMykbSC8O0VX3LuRnUNf4hHE0o/rJ+nB8czw==} + resolution: + { integrity: sha512-+kJRJpgO+V8x6c3UQuzO+gzHu5euS8HDOIaIUsOPdQrVu7ajNKkMykbSC8O0VX3LuRnUNf4hHE0o/rJ+nB8czw== } hash-sum@1.0.2: - resolution: {integrity: sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==} + resolution: + { integrity: sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== } hash-sum@2.0.0: - resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + resolution: + { integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== } hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + resolution: + { integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== } hasha@5.2.2: - resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== } + engines: { node: ">=8" } hashery@1.5.1: - resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ== } + engines: { node: ">=20" } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } + engines: { node: ">= 0.4" } - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} + hasown@2.0.4: + resolution: + { integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== } + engines: { node: ">= 0.4" } hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + resolution: + { integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw== } hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + resolution: + { integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== } hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + resolution: + { integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g== } hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + resolution: + { integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== } hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + resolution: + { integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw== } hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + resolution: + { integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== } hast-util-to-parse5@8.0.1: - resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + resolution: + { integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA== } hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + resolution: + { integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A== } hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + resolution: + { integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== } hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + resolution: + { integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== } he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + resolution: + { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } hasBin: true header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + resolution: + { integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== } heimdalljs-fs-monitor@1.1.2: - resolution: {integrity: sha512-M7OPf3Tu+ybhAXdiC07O1vUYFyhCgfew4L3vaG2nn4Be05xzNvtBcU6IKMTfHJ9AxWFa3w9rrmiJovkxHhpopw==} + resolution: + { integrity: sha512-M7OPf3Tu+ybhAXdiC07O1vUYFyhCgfew4L3vaG2nn4Be05xzNvtBcU6IKMTfHJ9AxWFa3w9rrmiJovkxHhpopw== } heimdalljs-graph@1.0.0: - resolution: {integrity: sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA== } + engines: { node: 8.* || >= 10.* } heimdalljs-logger@0.1.10: - resolution: {integrity: sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==} + resolution: + { integrity: sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g== } heimdalljs@0.2.6: - resolution: {integrity: sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==} + resolution: + { integrity: sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA== } helmet@8.2.0: - resolution: {integrity: sha512-DRgTIUgnWcJ62KyarxxziuqYxKGnR6Rgg19BlbucN/dpmJbl1XOit6qvoOX0ZT+HhWe5OUVhU/a1zpGyc1xA0Q==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-DRgTIUgnWcJ62KyarxxziuqYxKGnR6Rgg19BlbucN/dpmJbl1XOit6qvoOX0ZT+HhWe5OUVhU/a1zpGyc1xA0Q== } + engines: { node: ">=18.0.0" } hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + resolution: + { integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw== } hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + resolution: + { integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA== } hex-color-regex@1.1.0: - resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} + resolution: + { integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== } highlight-words-core@1.2.3: - resolution: {integrity: sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==} + resolution: + { integrity: sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ== } highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + resolution: + { integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== } hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + resolution: + { integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== } hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + resolution: + { integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== } homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== } + engines: { node: ">=0.10.0" } - hono@4.12.22: - resolution: {integrity: sha512-7fvVPbB92zNRsQke+uiRGwtTuef0tB2Dg4hWxYfFNvkQhIltWoyi0ONReM5LWA+jJWS3nfT5lTq+qbsIpX0IQw==} - engines: {node: '>=16.9.0'} + hono@4.12.25: + resolution: + { integrity: sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ== } + engines: { node: ">=16.9.0" } hookable@4.4.1: - resolution: {integrity: sha512-KWjZM8C7IVT2qne5HTXjM6R6VnRfjfRlf/oCnHd+yFxoHO1DzOl6B9LzV/VqGQK/IrFewq+EG+ePVrE9Tpc3fg==} + resolution: + { integrity: sha512-KWjZM8C7IVT2qne5HTXjM6R6VnRfjfRlf/oCnHd+yFxoHO1DzOl6B9LzV/VqGQK/IrFewq+EG+ePVrE9Tpc3fg== } hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + resolution: + { integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== } hookable@6.1.1: - resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + resolution: + { integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ== } hookified@1.15.1: - resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + resolution: + { integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg== } hookified@2.2.0: - resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} + resolution: + { integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA== } hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== } hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== } + engines: { node: ">=10" } hosted-git-info@6.1.3: - resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hosted-git-info@8.1.0: - resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw== } + engines: { node: ^18.17.0 || >=20.5.0 } hosted-git-info@9.0.3: - resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg== } + engines: { node: ^20.17.0 || >=22.9.0 } hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + resolution: + { integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== } hpq@1.4.0: - resolution: {integrity: sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==} + resolution: + { integrity: sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg== } hsl-regex@1.0.0: - resolution: {integrity: sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==} + resolution: + { integrity: sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== } hsla-regex@1.0.0: - resolution: {integrity: sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==} + resolution: + { integrity: sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== } html-element-map@1.4.0: - resolution: {integrity: sha512-jiTQtpaVnCcT1KDghMcmvbB5Q1AAWyBsGNuJZiHOWwN5GIVZGKqCWj9ddOFxLLz8ELYL2dwv2TaeS4dMdc/Pkw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-jiTQtpaVnCcT1KDghMcmvbB5Q1AAWyBsGNuJZiHOWwN5GIVZGKqCWj9ddOFxLLz8ELYL2dwv2TaeS4dMdc/Pkw== } + engines: { node: ">= 0.4" } html-encoding-sniffer@1.0.2: - resolution: {integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==} + resolution: + { integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== } html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== } + engines: { node: ">=18" } html-encoding-sniffer@6.0.0: - resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + resolution: + { integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + resolution: + { integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== } html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + resolution: + { integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== } html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: + { integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== } html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + resolution: + { integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ== } - html-minifier-next@6.2.7: - resolution: {integrity: sha512-DKvbAkZTNbaQf3OoYA65jgqiy+Yim8tKbBCt3ma1RvpjNUQJS1yeZKRs5epRmF0I+oGukBVSd/tc8vZ1UT4KaA==} + html-minifier-next@6.2.11: + resolution: + { integrity: sha512-UvwXZq/9wJkfgHySATC8oEAHftjURGKJ00xAzTW2s6bITnEyjhiWWP+XNXwoJkloWYB/L3Ao0xC67/8Zuvc0qA== } hasBin: true peerDependencies: - '@swc/core': ^1.15.7 + "@swc/core": ^1.15.7 peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true html-minifier-terser@5.1.1: - resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== } + engines: { node: ">=6" } hasBin: true html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== } + engines: { node: ">=12" } hasBin: true html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== } + engines: { node: ^14.13.1 || >=16.0.0 } hasBin: true html-minifier@3.5.21: - resolution: {integrity: sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== } + engines: { node: ">=4" } hasBin: true html-tags@2.0.0: - resolution: {integrity: sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g== } + engines: { node: ">=4" } html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== } + engines: { node: ">=8" } html-tags@5.1.0: - resolution: {integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==} - engines: {node: '>=20.10'} + resolution: + { integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ== } + engines: { node: ">=20.10" } html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + resolution: + { integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== } html-webpack-exclude-assets-plugin@0.0.7: - resolution: {integrity: sha512-gaYKMGBPDts3Fb1WXyDEEcS/0TSRg2IDl3EsbQL2AkKWTqdjSKwfQ8Iz0RhPiWErJfqhq5/wkhoYyjQoG55pug==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-gaYKMGBPDts3Fb1WXyDEEcS/0TSRg2IDl3EsbQL2AkKWTqdjSKwfQ8Iz0RhPiWErJfqhq5/wkhoYyjQoG55pug== } + engines: { node: ">=4.0.0" } html-webpack-plugin@3.2.0: - resolution: {integrity: sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg==} - engines: {node: '>=6.9'} + resolution: + { integrity: sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg== } + engines: { node: ">=6.9" } deprecated: 3.x is no longer supported peerDependencies: webpack: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 html-webpack-plugin@4.5.2: - resolution: {integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==} - engines: {node: '>=6.9'} + resolution: + { integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== } + engines: { node: ">=6.9" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 html-webpack-plugin@5.6.7: - resolution: {integrity: sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw== } + engines: { node: ">=10.13.0" } peerDependencies: - '@rspack/core': 0.x || 1.x + "@rspack/core": 0.x || 1.x webpack: ^5.20.0 peerDependenciesMeta: - '@rspack/core': + "@rspack/core": optional: true webpack: optional: true htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + resolution: + { integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ== } htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + resolution: + { integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== } htmlparser2@7.2.0: - resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} + resolution: + { integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== } http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== } + engines: { node: ">= 0.8" } http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + resolution: + { integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== } http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + resolution: + { integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== } - http-equiv-refresh@1.0.0: - resolution: {integrity: sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==} - engines: {node: '>= 0.10'} + http-equiv-refresh@2.0.1: + resolution: + { integrity: sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw== } + engines: { node: ">= 6" } http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== } + engines: { node: ">= 0.6" } http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== } + engines: { node: ">= 0.6" } http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== } + engines: { node: ">= 0.8" } http-link-header@1.1.3: - resolution: {integrity: sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ== } + engines: { node: ">=6.0.0" } http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + resolution: + { integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== } http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== } + engines: { node: ">= 6" } http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== } + engines: { node: ">= 14" } http-proxy-middleware@2.0.9: - resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== } + engines: { node: ">=12.0.0" } peerDependencies: - '@types/express': ^4.17.13 + "@types/express": ^4.17.13 peerDependenciesMeta: - '@types/express': + "@types/express": optional: true - http-proxy-middleware@3.0.5: - resolution: {integrity: sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== } + engines: { node: ">=8.0.0" } http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + resolution: + { integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== } + engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} + resolution: + { integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== } + engines: { node: ">=0.8", npm: ">=1.3.7" } https-browserify@1.0.0: - resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - - https-proxy-agent@2.2.4: - resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==} - engines: {node: '>= 4.5.0'} + resolution: + { integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== } https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } + engines: { node: ">= 6" } https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== } + engines: { node: ">= 14" } + + https-proxy-agent@9.0.0: + resolution: + { integrity: sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g== } + engines: { node: ">= 20" } httpxy@0.5.3: - resolution: {integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==} + resolution: + { integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw== } human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} + resolution: + { integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== } + engines: { node: ">=8.12.0" } human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + resolution: + { integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== } + engines: { node: ">=10.17.0" } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== } + engines: { node: ">=16.17.0" } human-signals@8.0.1: - resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} - engines: {node: '>=18.18.0'} + resolution: + { integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== } + engines: { node: ">=18.18.0" } humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + resolution: + { integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== } husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== } + engines: { node: ">=18" } hasBin: true hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} + resolution: + { integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== } + engines: { node: ">=10.18" } iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== } + engines: { node: ">=0.10.0" } iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== } + engines: { node: ">=0.10.0" } iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} - - icss-replace-symbols@1.1.0: - resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + resolution: + { integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw== } + engines: { node: ">=0.10.0" } icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + resolution: + { integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== } identity-obj-proxy@3.0.0: - resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== } + engines: { node: ">=4" } ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== } iferr@0.1.5: - resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} + resolution: + { integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== } ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + resolution: + { integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== } ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== } + engines: { node: ">=10" } ignore-walk@6.0.5: - resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } ignore-walk@8.0.0: - resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A== } + engines: { node: ^20.17.0 || >=22.9.0 } ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== } + engines: { node: ">= 4" } ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } + engines: { node: ">= 4" } ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== } + engines: { node: ">= 4" } image-meta@0.2.2: - resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + resolution: + { integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA== } image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== } + engines: { node: ">=0.10.0" } hasBin: true image-ssim@0.2.0: - resolution: {integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==} - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + resolution: + { integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg== } - immutable@5.1.5: - resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} + immutable@5.1.6: + resolution: + { integrity: sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ== } import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== } + engines: { node: ">=4" } import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== } + engines: { node: ">=6" } import-in-the-middle@1.15.0: - resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} + resolution: + { integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA== } import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== } + engines: { node: ">=4" } import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== } + engines: { node: ">=8" } hasBin: true import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== } + engines: { node: ">=8" } hasBin: true import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + resolution: + { integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== } import-without-cache@0.4.0: - resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==} - engines: {node: ^22.18.0 || >=24.0.0} + resolution: + { integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ== } + engines: { node: ^22.18.0 || >=24.0.0 } impound@1.1.5: - resolution: {integrity: sha512-5AUn+QE0UofqNHu5f2Skf6Svukdg4ehOIq8O0EtqIx4jta0CDZYBPqpIHt0zrlUTiFVYlLpeH39DoikXBjPKpA==} + resolution: + { integrity: sha512-5AUn+QE0UofqNHu5f2Skf6Svukdg4ehOIq8O0EtqIx4jta0CDZYBPqpIHt0zrlUTiFVYlLpeH39DoikXBjPKpA== } imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } + engines: { node: ">=0.8.19" } indent-string@3.2.0: - resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== } + engines: { node: ">=4" } indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== } + engines: { node: ">=8" } index-to-position@1.2.0: - resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw== } + engines: { node: ">=18" } indexes-of@1.0.1: - resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} + resolution: + { integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== } indexof@0.0.1: - resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} + resolution: + { integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== } infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + resolution: + { integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== } inferno-vnode-flags@9.1.0: - resolution: {integrity: sha512-pyM4YQbYGiKS/YHgXUBsrrG6VHDZCqtas4Ba3OQqxZE6UMNWDO9Sz9q3y2hLHO7Ue1e4gcBV9S1BCr5gnUuQ8A==} + resolution: + { integrity: sha512-pyM4YQbYGiKS/YHgXUBsrrG6VHDZCqtas4Ba3OQqxZE6UMNWDO9Sz9q3y2hLHO7Ue1e4gcBV9S1BCr5gnUuQ8A== } inferno@9.1.0: - resolution: {integrity: sha512-Cw7iu5Yn//PDZKZPZGy2+7b7hCaVhbKuPP1ikyyOvXILZno1faIfcQOyfQkNKh4h6LSQ6VhImaG7sxvS0IrhuA==} + resolution: + { integrity: sha512-Cw7iu5Yn//PDZKZPZGy2+7b7hCaVhbKuPP1ikyyOvXILZno1faIfcQOyfQkNKh4h6LSQ6VhImaG7sxvS0IrhuA== } inflation@2.1.0: - resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ== } + engines: { node: ">= 0.8.0" } inflection@2.0.1: - resolution: {integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ== } + engines: { node: ">=14.0.0" } inflection@3.0.2: - resolution: {integrity: sha512-+Bg3+kg+J6JUWn8J6bzFmOWkTQ6L/NHfDRSYU+EVvuKHDxUDHAXgqixHfVlzuBQaPOTac8hn43aPhMNk6rMe3g==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-+Bg3+kg+J6JUWn8J6bzFmOWkTQ6L/NHfDRSYU+EVvuKHDxUDHAXgqixHfVlzuBQaPOTac8hn43aPhMNk6rMe3g== } + engines: { node: ">=18.0.0" } inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + resolution: + { integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== } inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: + { integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== } ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== } + engines: { node: ">=10" } ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } ini@5.0.0: - resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw== } + engines: { node: ^18.17.0 || >=20.5.0 } ini@6.0.0: - resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ== } + engines: { node: ^20.17.0 || >=22.9.0 } init-package-json@8.2.2: - resolution: {integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA== } + engines: { node: ^20.17.0 || >=22.9.0 } injection-js@2.6.1: - resolution: {integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==} + resolution: + { integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A== } inquirer-autosubmit-prompt@0.2.0: - resolution: {integrity: sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==} + resolution: + { integrity: sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q== } inquirer@12.9.6: - resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw== } + engines: { node: ">=18" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true inquirer@13.4.3: - resolution: {integrity: sha512-EPd3IqieHSavSOXh+LZhrIkdQcOELWeRblLT6kslQr+cF9XTh/HxZdSt1YkHH1iq4dvqBnV42uwg2YlorgOy6g==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + resolution: + { integrity: sha512-EPd3IqieHSavSOXh+LZhrIkdQcOELWeRblLT6kslQr+cF9XTh/HxZdSt1YkHH1iq4dvqBnV42uwg2YlorgOy6g== } + engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: - '@types/node': '>=18' + "@types/node": ">=18" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true inquirer@6.5.2: - resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== } + engines: { node: ">=6.0.0" } inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== } + engines: { node: ">=8.0.0" } internal-ip@6.2.0: - resolution: {integrity: sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== } + engines: { node: ">=10" } internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== } + engines: { node: ">= 0.4" } interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== } + engines: { node: ">=10.13.0" } intersection-observer@0.7.0: - resolution: {integrity: sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==} + resolution: + { integrity: sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg== } deprecated: The Intersection Observer polyfill is no longer needed and can safely be removed. Intersection Observer has been Baseline since 2019. intl-messageformat@10.7.18: - resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} + resolution: + { integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g== } invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + resolution: + { integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== } invert-kv@3.0.1: - resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== } + engines: { node: ">=8" } ionicons@8.0.13: - resolution: {integrity: sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==} + resolution: + { integrity: sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ== } - ioredis@5.10.1: - resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} - engines: {node: '>=12.22.0'} + ioredis@5.11.1: + resolution: + { integrity: sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A== } + engines: { node: ">=12.22.0" } ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} - engines: {node: '>= 12'} + resolution: + { integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA== } + engines: { node: ">= 12" } ip-regex@4.3.0: - resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== } + engines: { node: ">=8" } ip@1.1.9: - resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} + resolution: + { integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== } ip@2.0.1: - resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + resolution: + { integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ== } ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== } + engines: { node: ">= 0.10" } ipaddr.js@2.4.0: - resolution: {integrity: sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ== } + engines: { node: ">= 10" } iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + resolution: + { integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== } irregular-plurals@3.5.0: - resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ== } + engines: { node: ">=8" } is-absolute-url@2.1.0: - resolution: {integrity: sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== } + engines: { node: ">=0.10.0" } is-absolute@1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== } + engines: { node: ">=0.10.0" } is-accessor-descriptor@1.0.2: - resolution: {integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g== } + engines: { node: ">= 0.4" } is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + resolution: + { integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== } + + is-alphabetical@2.0.1: + resolution: + { integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== } is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + resolution: + { integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== } + + is-alphanumerical@2.0.1: + resolution: + { integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== } is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== } + engines: { node: ">= 0.4" } is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + resolution: + { integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== } is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== } + engines: { node: ">= 0.4" } is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== } + engines: { node: ">= 0.4" } is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== } + engines: { node: ">=0.10.0" } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } + engines: { node: ">=8" } is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== } + engines: { node: ">= 0.4" } is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + resolution: + { integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== } is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== } + engines: { node: ">=4" } is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== } + engines: { node: ">=6" } is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + resolution: + { integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ== } is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== } + engines: { node: ">= 0.4" } is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + resolution: + { integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== } hasBin: true is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + resolution: + { integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== } hasBin: true is-color-stop@1.1.0: - resolution: {integrity: sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==} + resolution: + { integrity: sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== } is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== } + engines: { node: ">= 0.4" } is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== } + engines: { node: ">= 0.4" } is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== } + engines: { node: ">= 0.4" } is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== } + engines: { node: ">= 0.4" } is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + resolution: + { integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== } + + is-decimal@2.0.1: + resolution: + { integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== } is-descriptor@0.1.8: - resolution: {integrity: sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ== } + engines: { node: ">= 0.4" } is-descriptor@1.0.4: - resolution: {integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww== } + engines: { node: ">= 0.4" } is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== } + engines: { node: ">=0.10.0" } is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== } + engines: { node: ">=8" } hasBin: true is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true is-docker@4.0.0: - resolution: {integrity: sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA== } + engines: { node: ">=20" } hasBin: true + is-document.all@1.0.0: + resolution: + { integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g== } + engines: { node: ">= 0.4" } + is-expression@4.0.0: - resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + resolution: + { integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== } is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== } + engines: { node: ">=0.10.0" } is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== } + engines: { node: ">=0.10.0" } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: ">=0.10.0" } is-file-esm@1.0.0: - resolution: {integrity: sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==} + resolution: + { integrity: sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA== } is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== } + engines: { node: ">= 0.4" } is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== } + engines: { node: ">=0.10.0" } is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== } + engines: { node: ">=4" } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } + engines: { node: ">=8" } is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== } + engines: { node: ">=18" } is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== } + engines: { node: ">=6" } is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== } + engines: { node: ">= 0.4" } is-git-url@1.0.0: - resolution: {integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ== } + engines: { node: ">=0.8" } is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== } + engines: { node: ">=0.10.0" } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: ">=0.10.0" } is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + resolution: + { integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== } is-in-ci@1.0.0: - resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg== } + engines: { node: ">=18" } hasBin: true is-in-ssh@1.0.0: - resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw== } + engines: { node: ">=20" } is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== } + engines: { node: ">=14.16" } hasBin: true is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== } + engines: { node: ">=10" } is-installed-globally@1.0.0: - resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ== } + engines: { node: ">=18" } is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== } + engines: { node: ">=8" } is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== } + engines: { node: ">=12" } is-ip@3.1.0: - resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== } + engines: { node: ">=8" } is-json@2.0.1: - resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==} + resolution: + { integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA== } is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + resolution: + { integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== } is-language-code@5.1.3: - resolution: {integrity: sha512-LI43ua9ZYquG9kxzUl3laVQ2Ly8VGGr8vOfYv64DaK3uOGejz6ANDzteOvZlgPT40runzARzRMQZnRZg99ZW4g==} - engines: {node: '>=14.18.0'} + resolution: + { integrity: sha512-LI43ua9ZYquG9kxzUl3laVQ2Ly8VGGr8vOfYv64DaK3uOGejz6ANDzteOvZlgPT40runzARzRMQZnRZg99ZW4g== } + engines: { node: ">=14.18.0" } is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== } + engines: { node: ">= 0.4" } is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + resolution: + { integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== } is-negated-glob@1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== } + engines: { node: ">=0.10.0" } is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== } + engines: { node: ">= 0.4" } is-network-error@1.3.2: - resolution: {integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA== } + engines: { node: ">=16" } is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== } + engines: { node: ">=10" } is-npm@6.1.0: - resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== } + engines: { node: ">= 0.4" } is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== } + engines: { node: ">=0.10.0" } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: ">=0.12.0" } is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== } + engines: { node: ">=0.10.0" } is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== } + engines: { node: ">=8" } is-observable@1.1.0: - resolution: {integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==} - engines: {node: '>=4'} - - is-path-cwd@1.0.0: - resolution: {integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== } + engines: { node: ">=4" } is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== } + engines: { node: ">=6" } is-path-cwd@3.0.0: - resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-path-in-cwd@1.0.1: - resolution: {integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-path-in-cwd@2.1.0: - resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} - engines: {node: '>=6'} - - is-path-inside@1.0.1: - resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== } + engines: { node: ">=6" } is-path-inside@2.1.0: - resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== } + engines: { node: ">=6" } is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } + engines: { node: ">=8" } is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== } + engines: { node: ">=12" } is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== } + engines: { node: ">=0.10.0" } is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== } + engines: { node: ">=8" } is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== } + engines: { node: ">=10" } is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== } + engines: { node: ">=12" } is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== } + engines: { node: ">=0.10.0" } is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== } + engines: { node: ">=0.10.0" } is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + resolution: + { integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== } is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + resolution: + { integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== } is-promise@4.0.0: - resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + resolution: + { integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== } is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + resolution: + { integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== } is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + resolution: + { integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== } is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== } + engines: { node: ">= 0.4" } is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== } + engines: { node: ">=0.10.0" } is-relative@1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== } + engines: { node: ">=0.10.0" } is-resolvable@1.1.0: - resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} + resolution: + { integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== } is-safe-filename@0.1.1: - resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g== } + engines: { node: ">=20" } is-scoped@3.0.0: - resolution: {integrity: sha512-ezxLUq30kiTvP0w/5n9tj4qTOKlrA07Oty1hwTQ+lcqw11x6uc8sp7VRb2OVGRzKfCHZ2A22T5Zsau/Q2Akb0g==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-ezxLUq30kiTvP0w/5n9tj4qTOKlrA07Oty1hwTQ+lcqw11x6uc8sp7VRb2OVGRzKfCHZ2A22T5Zsau/Q2Akb0g== } + engines: { node: ">=12" } is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== } + engines: { node: ">= 0.4" } is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== } + engines: { node: ">= 0.4" } is-ssh@1.4.1: - resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + resolution: + { integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg== } is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== } + engines: { node: ">=0.10.0" } is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== } + engines: { node: ">=8" } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-stream@4.0.1: - resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== } + engines: { node: ">=18" } is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== } + engines: { node: ">= 0.4" } is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== } + engines: { node: ">=4" } is-subset@0.1.1: - resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==} + resolution: + { integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== } is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== } + engines: { node: ">= 0.4" } is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== } + engines: { node: ">=0.10.0" } is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== } + engines: { node: ">= 0.4" } is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + resolution: + { integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== } is-unc-path@1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== } + engines: { node: ">=0.10.0" } is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } + engines: { node: ">=10" } is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== } + engines: { node: ">=12" } is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== } + engines: { node: ">=18" } is-url-superb@6.1.0: - resolution: {integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ== } + engines: { node: ">=12" } is-valid-glob@1.0.0: - resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== } + engines: { node: ">=0.10.0" } is-wayland@0.1.0: - resolution: {integrity: sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA== } + engines: { node: ">=20" } is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== } + engines: { node: ">= 0.4" } is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== } + engines: { node: ">= 0.4" } is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + resolution: + { integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== } + engines: { node: ">= 0.4" } is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} + resolution: + { integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== } + engines: { node: ">=12.13" } is-what@5.5.0: - resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw== } + engines: { node: ">=18" } is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} + resolution: + { integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== } is-windows@0.2.0: - resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q== } + engines: { node: ">=0.10.0" } is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } + engines: { node: ">=0.10.0" } is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + resolution: + { integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== } is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== } + engines: { node: ">=4" } is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== } + engines: { node: ">=8" } is-wsl@3.1.1: - resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw== } + engines: { node: ">=16" } is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + resolution: + { integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== } is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== } + engines: { node: ">=18" } isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + resolution: + { integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== } isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== } isarray@2.0.1: - resolution: {integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==} + resolution: + { integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== } isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== } isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} + resolution: + { integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== } + engines: { node: ">= 8.0.0" } isbinaryfile@5.0.7: - resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} - engines: {node: '>= 18.0.0'} + resolution: + { integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ== } + engines: { node: ">= 18.0.0" } isbinaryfile@6.0.0: - resolution: {integrity: sha512-2FN2B8MAqKv6d5TaKsLvMrwMcghxwHTpcKy0L5mhNbRqjNqo2++SpCqN6eG1lCC1GmTQgvrYJYXv2+Chvyevag==} - engines: {node: '>= 24.0.0'} + resolution: + { integrity: sha512-2FN2B8MAqKv6d5TaKsLvMrwMcghxwHTpcKy0L5mhNbRqjNqo2++SpCqN6eG1lCC1GmTQgvrYJYXv2+Chvyevag== } + engines: { node: ">= 24.0.0" } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } isexe@3.1.5: - resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w== } + engines: { node: ">=18" } isexe@4.0.0: - resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw== } + engines: { node: ">=20" } - iso-639-1@2.1.15: - resolution: {integrity: sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==} - engines: {node: '>=6.0'} + iso-639-1@3.1.5: + resolution: + { integrity: sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA== } + engines: { node: ">=6.0" } isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== } + engines: { node: ">=0.10.0" } isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } + engines: { node: ">=0.10.0" } isomorphic-unfetch@3.1.0: - resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + resolution: + { integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== } isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + resolution: + { integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== } issue-regex@4.3.0: - resolution: {integrity: sha512-7731a/t2llyrk8Hdwl1x3LkhIFGzxHQGpJA7Ur9cIRViakQF2y25Lwhx8Ziy1B068+kBYUmYPBzw5uo3DdWrdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-7731a/t2llyrk8Hdwl1x3LkhIFGzxHQGpJA7Ur9cIRViakQF2y25Lwhx8Ziy1B068+kBYUmYPBzw5uo3DdWrdQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } istanbul-lib-coverage@2.0.5: - resolution: {integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== } + engines: { node: ">=6" } istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== } + engines: { node: ">=8" } istanbul-lib-hook@3.0.0: - resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== } + engines: { node: ">=8" } istanbul-lib-instrument@3.3.0: - resolution: {integrity: sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==} - engines: {node: '>=6'} - - istanbul-lib-instrument@4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== } + engines: { node: ">=6" } istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== } + engines: { node: ">=8" } istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== } + engines: { node: ">=10" } - istanbul-lib-processinfo@2.0.3: - resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} - engines: {node: '>=8'} - - istanbul-lib-processinfo@3.0.0: - resolution: {integrity: sha512-P7nLXRRlo7Sqinty6lNa7+4o9jBUYGpqtejqCOZKfgXlRoxY/QArflcB86YO500Ahj4pDJEG34JjMRbQgePLnQ==} - engines: {node: 20 || >=22} + istanbul-lib-processinfo@3.0.1: + resolution: + { integrity: sha512-s3mX05h5wGZeScG6XnOanygPh4SJu5ujMc9YbvpnLGXWy1cRiGbp0NdVcjHxgoZt3WfQppfBsa0y+gWdYJ2pGQ== } + engines: { node: 20 || >=22 } istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== } + engines: { node: ">=10" } istanbul-lib-source-maps@3.0.6: - resolution: {integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== } + engines: { node: ">=6" } istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== } + engines: { node: ">=10" } istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== } + engines: { node: ">=8" } istextorbinary@2.1.0: - resolution: {integrity: sha512-kT1g2zxZ5Tdabtpp9VSdOzW9lb6LXImyWbzbQeTxoRtHhurC9Ej9Wckngr2+uepPL09ky/mJHmN9jeJPML5t6A==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-kT1g2zxZ5Tdabtpp9VSdOzW9lb6LXImyWbzbQeTxoRtHhurC9Ej9Wckngr2+uepPL09ky/mJHmN9jeJPML5t6A== } + engines: { node: ">=0.12" } istextorbinary@2.6.0: - resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA== } + engines: { node: ">=0.12" } iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== } + engines: { node: ">= 0.4" } jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: + { integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== } jackspeak@4.2.3: - resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg== } + engines: { node: 20 || >=22 } jake@10.9.4: - resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA== } + engines: { node: ">=10" } hasBin: true - jasmine-core@2.8.0: - resolution: {integrity: sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==} - jasmine-core@4.6.1: - resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} + resolution: + { integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ== } - jasmine-core@6.2.0: - resolution: {integrity: sha512-b16WZG/pFEFj8qRW1ss7nDuNGYz9ji8BDGj7fJNrROauk5rj/diO3KPOuyIpcgUChdC+c0PfQ8iUk4nHE+EN4w==} + jasmine-core@6.3.0: + resolution: + { integrity: sha512-eMm5qBovNjNoGOcgE/W207+wrcK5zrQv0Rg/rWGboUJUmZp0dFCpHTyjpuDAfCwRCqg7f9U2q2jtv/aUuzdCQg== } jasmine-spec-reporter@7.0.0: - resolution: {integrity: sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==} - - jasmine@2.8.0: - resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} - hasBin: true - - jasminewd2@2.2.0: - resolution: {integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==} - engines: {node: '>= 6.9.x'} + resolution: + { integrity: sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg== } javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + resolution: + { integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== } javascript-stringify@2.1.0: - resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + resolution: + { integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== } jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -31758,40 +36201,47 @@ packages: optional: true jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' + "@types/node": "*" + ts-node: ">=9.0.0" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true ts-node: optional: true jest-dev-server@10.1.4: - resolution: {integrity: sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w== } + engines: { node: ">=16" } jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-diff@30.4.1: - resolution: {integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-environment-jsdom@30.4.1: - resolution: {integrity: sha512-o3nfaN4zej7qgk2X0j8Jhq/S9nAVKs2xK3QeQxeHVvpkEPxaA1yxDGydR+iVI7zPy7Cp62Aq2h3Ja46QvfWHGA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-o3nfaN4zej7qgk2X0j8Jhq/S9nAVKs2xK3QeQxeHVvpkEPxaA1yxDGydR+iVI7zPy7Cp62Aq2h3Ja46QvfWHGA== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -31799,113 +36249,139 @@ packages: optional: true jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-matcher-utils@30.4.1: - resolution: {integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-message-util@30.4.1: - resolution: {integrity: sha512-kwCKIvq0MCW1HzLoGola9Te6JUdzgV0loyKJ3Qghrkz9i5/RRIHsL95BMQc2HBBhlBKC4j22K9p11TGHH8RBpQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-kwCKIvq0MCW1HzLoGola9Te6JUdzgV0loyKJ3Qghrkz9i5/RRIHsL95BMQc2HBBhlBKC4j22K9p11TGHH8RBpQ== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-mock@30.4.1: - resolution: {integrity: sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== } + engines: { node: ">=6" } peerDependencies: - jest-resolve: '*' + jest-resolve: "*" peerDependenciesMeta: jest-resolve: optional: true jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-regex-util@30.4.0: - resolution: {integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-util@30.4.1: - resolution: {integrity: sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== } + engines: { node: ">= 10.13.0" } jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== } + engines: { node: ">= 10.13.0" } jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -31914,130 +36390,149 @@ packages: optional: true jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + resolution: + { integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== } hasBin: true jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + resolution: + { integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== } hasBin: true jiti@2.7.0: - resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + resolution: + { integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ== } hasBin: true jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + resolution: + { integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== } jmespath@0.16.0: - resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} - engines: {node: '>= 0.6.0'} + resolution: + { integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== } + engines: { node: ">= 0.6.0" } - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joi@17.13.4: + resolution: + { integrity: sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ== } joi@18.2.1: - resolution: {integrity: sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ==} - engines: {node: '>= 20'} + resolution: + { integrity: sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ== } + engines: { node: ">= 20" } jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + resolution: + { integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw== } joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== } + engines: { node: ">=10" } jpeg-js@0.4.4: - resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - - jquery@3.7.1: - resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + resolution: + { integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== } jquery@4.0.0: - resolution: {integrity: sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==} - - js-base64@2.6.4: - resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + resolution: + { integrity: sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg== } js-beautify@1.15.4: - resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA== } + engines: { node: ">=14" } hasBin: true - js-cookie@3.0.7: - resolution: {integrity: sha512-z/wZZgDrkNV1eA0ULjM/F9/50Ya8fbzgKneSpoPsXSGd0KnpdtHfOZWK+GcwLk+EZbS4F9RBhU+K2RgzuDaItw==} - engines: {node: '>=20'} + js-cookie@3.0.8: + resolution: + { integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw== } js-library-detector@6.7.0: - resolution: {integrity: sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA== } + engines: { node: ">=12" } js-message@1.0.7: - resolution: {integrity: sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==} - engines: {node: '>=0.6.0'} + resolution: + { integrity: sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== } + engines: { node: ">=0.6.0" } js-string-escape@1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== } + engines: { node: ">= 0.8" } js-stringify@1.0.2: - resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} + resolution: + { integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== } js-tokens@10.0.0: - resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + resolution: + { integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q== } js-tokens@3.0.2: - resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + resolution: + { integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== } js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + resolution: + { integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== } js-yaml@3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} + resolution: + { integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== } hasBin: true js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + resolution: + { integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== } hasBin: true js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + resolution: + { integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== } + hasBin: true + + js-yaml@4.2.0: + resolution: + { integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== } hasBin: true jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + resolution: + { integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== } jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg== } + engines: { node: ">=12.0.0" } jsdoc-type-pratt-parser@7.2.0: - resolution: {integrity: sha512-dh140MMgjyg3JhJZY/+iEzW+NO5xR2gpbDFKHqotCmexElVntw7GjWjt511+C/Ef02RU5TKYrJo/Xlzk+OLaTw==} - engines: {node: '>=20.0.0'} + resolution: + { integrity: sha512-dh140MMgjyg3JhJZY/+iEzW+NO5xR2gpbDFKHqotCmexElVntw7GjWjt511+C/Ef02RU5TKYrJo/Xlzk+OLaTw== } + engines: { node: ">=20.0.0" } jsdom-global@3.0.2: - resolution: {integrity: sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==} + resolution: + { integrity: sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg== } peerDependencies: - jsdom: '>=10.0.0' + jsdom: ">=10.0.0" jsdom@12.2.0: - resolution: {integrity: sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig==} - engines: {node: '>=8'} - - jsdom@24.1.3: - resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true + resolution: + { integrity: sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig== } + engines: { node: ">=8" } jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg== } + engines: { node: ">=18" } peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -32045,8 +36540,9 @@ packages: optional: true jsdom@29.1.1: - resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} + resolution: + { integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24.0.0 } peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -32054,1813 +36550,2184 @@ packages: optional: true jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + resolution: + { integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== } hasBin: true jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== } + engines: { node: ">=6" } hasBin: true json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + resolution: + { integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== } json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + resolution: + { integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== } json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } json-parse-even-better-errors@4.0.0: - resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA== } + engines: { node: ^18.17.0 || >=20.5.0 } json-parse-even-better-errors@5.0.0: - resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ== } + engines: { node: ^20.17.0 || >=22.9.0 } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } json-schema-typed@8.0.2: - resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + resolution: + { integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA== } json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + resolution: + { integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== } json-source-map@0.6.1: - resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + resolution: + { integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg== } json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } json-stable-stringify@1.3.0: - resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg== } + engines: { node: ">= 0.4" } json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + resolution: + { integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== } json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json2php@0.0.7: - resolution: {integrity: sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==} + resolution: + { integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== } json2php@0.0.9: - resolution: {integrity: sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==} + resolution: + { integrity: sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw== } json5@0.5.1: - resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} + resolution: + { integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== } hasBin: true json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + resolution: + { integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== } hasBin: true json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } + engines: { node: ">=6" } hasBin: true jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + resolution: + { integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== } jsonc-parser@3.0.0: - resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + resolution: + { integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== } jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + resolution: + { integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== } jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + resolution: + { integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== } jsoneditor@10.4.3: - resolution: {integrity: sha512-XBVYLkhgiHySC0PkGlac/Mbk738EpNnqBnxCJD4ttKKJ1JRIRngV8bf2zgw/J025jp4AqxOf2G3uDs/27cWHTQ==} + resolution: + { integrity: sha512-XBVYLkhgiHySC0PkGlac/Mbk738EpNnqBnxCJD4ttKKJ1JRIRngV8bf2zgw/J025jp4AqxOf2G3uDs/27cWHTQ== } jsonfile@2.4.0: - resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} + resolution: + { integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== } jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: + { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } jsonfile@6.2.1: - resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + resolution: + { integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q== } jsonify@0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + resolution: + { integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== } jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + resolution: + { integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== } + engines: { "0": node >= 0.2.0 } jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== } + engines: { node: ">=0.10.0" } jsonrepair@3.14.0: - resolution: {integrity: sha512-tWPGKMZf/8UPim+fcW2EfcQ/d/7aKUrP6IECz9G3Tu6Q5dX0orSleqJ9z6sSw7qrQkjF8/Edo4DvsWBZ8H+HNg==} + resolution: + { integrity: sha512-tWPGKMZf/8UPim+fcW2EfcQ/d/7aKUrP6IECz9G3Tu6Q5dX0orSleqJ9z6sSw7qrQkjF8/Edo4DvsWBZ8H+HNg== } hasBin: true jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} + resolution: + { integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== } + engines: { node: ">=0.6.0" } jstransformer@1.0.0: - resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + resolution: + { integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== } jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + resolution: + { integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== } + engines: { node: ">=4.0" } - junk@1.0.3: - resolution: {integrity: sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==} - engines: {node: '>=0.10.0'} + junk@3.1.0: + resolution: + { integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== } + engines: { node: ">=8" } junk@4.0.1: - resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== } + engines: { node: ">=12.20" } just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + resolution: + { integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== } just-diff@6.0.2: - resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + resolution: + { integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== } karma-chai@0.1.0: - resolution: {integrity: sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg==} + resolution: + { integrity: sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== } peerDependencies: - chai: '*' - karma: '>=0.10.9' + chai: "*" + karma: ">=0.10.9" karma-chrome-launcher@3.2.0: - resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} + resolution: + { integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== } karma-coverage-istanbul-reporter@3.0.3: - resolution: {integrity: sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==} + resolution: + { integrity: sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw== } karma-coverage@2.2.1: - resolution: {integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A== } + engines: { node: ">=10.0.0" } karma-jasmine-html-reporter@2.2.0: - resolution: {integrity: sha512-J0laEC43Oy2RdR5V5R3bqmdo7yRIYySq6XHKbA+e5iSAgLjhR1oICLGeSREPlJXpeyNcdJf3J17YcdhD0mRssQ==} + resolution: + { integrity: sha512-J0laEC43Oy2RdR5V5R3bqmdo7yRIYySq6XHKbA+e5iSAgLjhR1oICLGeSREPlJXpeyNcdJf3J17YcdhD0mRssQ== } peerDependencies: jasmine-core: ^4.0.0 || ^5.0.0 || ^6.0.0 karma: ^6.0.0 karma-jasmine: ^5.0.0 karma-jasmine@5.1.0: - resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ== } + engines: { node: ">=12" } peerDependencies: karma: ^6.0.0 karma-mocha-reporter@2.2.5: - resolution: {integrity: sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w==} + resolution: + { integrity: sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w== } peerDependencies: - karma: '>=0.13' + karma: ">=0.13" karma-mocha-snapshot@0.2.1: - resolution: {integrity: sha512-uXm9Kg6HlP05jbKvQNoZMNq8d6hEhzr6Cdxl4LhklX/0CSbsE/5hCRiDPLVNa6+7NIioWu2HTcgshtWmXe+eVA==} + resolution: + { integrity: sha512-uXm9Kg6HlP05jbKvQNoZMNq8d6hEhzr6Cdxl4LhklX/0CSbsE/5hCRiDPLVNa6+7NIioWu2HTcgshtWmXe+eVA== } karma-mocha@1.3.0: - resolution: {integrity: sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw==} + resolution: + { integrity: sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== } karma-mocha@2.0.1: - resolution: {integrity: sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==} + resolution: + { integrity: sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ== } karma-snapshot@0.6.0: - resolution: {integrity: sha512-S34sM1jNPD2KFPWfiucsWjrSnl3Ox8aoKlwEnmV2advFkBsl4zpOZ1LKySQbzFsLasEotPvr4RhFeN7CLatozg==} + resolution: + { integrity: sha512-S34sM1jNPD2KFPWfiucsWjrSnl3Ox8aoKlwEnmV2advFkBsl4zpOZ1LKySQbzFsLasEotPvr4RhFeN7CLatozg== } karma-source-map-support@1.4.0: - resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} + resolution: + { integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== } karma@5.2.3: - resolution: {integrity: sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ== } + engines: { node: ">= 10" } hasBin: true karma@6.4.4: - resolution: {integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== } + engines: { node: ">= 10" } hasBin: true keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== } + engines: { node: ">= 0.6" } keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + resolution: + { integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== } keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } keyv@5.6.0: - resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} + resolution: + { integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw== } kind-of@2.0.1: - resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg== } + engines: { node: ">=0.10.0" } kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== } + engines: { node: ">=0.10.0" } kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== } + engines: { node: ">=0.10.0" } kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } + engines: { node: ">=0.10.0" } klaw@4.1.0: - resolution: {integrity: sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==} - engines: {node: '>=14.14.0'} + resolution: + { integrity: sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw== } + engines: { node: ">=14.14.0" } kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== } + engines: { node: ">=6" } kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== } + engines: { node: ">=6" } klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== } + engines: { node: ">= 8" } knitwork@1.3.0: - resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} - - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + resolution: + { integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== } known-css-properties@0.37.0: - resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + resolution: + { integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ== } koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + resolution: + { integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== } koa-compress@3.1.0: - resolution: {integrity: sha512-0m24/yS/GbhWI+g9FqtvStY+yJwTObwoxOvPok6itVjRen7PBWkjsJ8pre76m+99YybXLKhOJ62mJ268qyBFMQ==} - engines: {node: '>= 8.0.0'} + resolution: + { integrity: sha512-0m24/yS/GbhWI+g9FqtvStY+yJwTObwoxOvPok6itVjRen7PBWkjsJ8pre76m+99YybXLKhOJ62mJ268qyBFMQ== } + engines: { node: ">= 8.0.0" } koa-convert@2.0.0: - resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== } + engines: { node: ">= 10" } koa-etag@3.0.0: - resolution: {integrity: sha512-HYU1zIsH4S9xOlUZGuZIP1PIiJ0EkBXgwL8PjFECb/pUYmAee8gfcvIovregBMYxECDhLulEWT2+ZRsA/lczCQ==} + resolution: + { integrity: sha512-HYU1zIsH4S9xOlUZGuZIP1PIiJ0EkBXgwL8PjFECb/pUYmAee8gfcvIovregBMYxECDhLulEWT2+ZRsA/lczCQ== } koa-etag@4.0.0: - resolution: {integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==} + resolution: + { integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg== } koa-is-json@1.0.0: - resolution: {integrity: sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw==} + resolution: + { integrity: sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw== } koa-send@5.0.1: - resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== } + engines: { node: ">= 8" } koa-static@5.0.0: - resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} - engines: {node: '>= 7.6.0'} + resolution: + { integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== } + engines: { node: ">= 7.6.0" } koa@2.16.4: - resolution: {integrity: sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw==} - engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + resolution: + { integrity: sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw== } + engines: { node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4 } kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + resolution: + { integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== } kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + resolution: + { integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== } ky@1.14.3: - resolution: {integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw== } + engines: { node: ">=18" } language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + resolution: + { integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== } language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== } + engines: { node: ">=0.10" } last-call-webpack-plugin@3.0.0: - resolution: {integrity: sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==} + resolution: + { integrity: sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== } last-run@2.0.0: - resolution: {integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ== } + engines: { node: ">= 10.13.0" } latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== } + engines: { node: ">=8" } latest-version@9.0.0: - resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA== } + engines: { node: ">=18" } - launch-editor-middleware@2.13.2: - resolution: {integrity: sha512-kI7VqA9g6mhoeQ6YdNgd+gKLaeuWHAUR8oDM8vFtt924wG8HbI2XO0n/hSX2ML4hcJbTgUihuPHfpnPjIKMdJg==} + launch-editor-middleware@2.14.1: + resolution: + { integrity: sha512-Y8rM8ujxag67bXKCML5RLK5neOwj9rcgYlhgPAG0roa3sM6gjBjq7Bl/mE63XcdAmjMMsPtJhd1ry8+wstwQew== } - launch-editor@2.13.2: - resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} + launch-editor@2.14.1: + resolution: + { integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA== } lazy-cache@0.2.7: - resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ== } + engines: { node: ">=0.10.0" } lazy-cache@1.0.4: - resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== } + engines: { node: ">=0.10.0" } lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + resolution: + { integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== } + engines: { node: ">= 0.6.3" } lcid@3.1.1: - resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== } + engines: { node: ">=8" } lead@4.0.0: - resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg== } + engines: { node: ">=10.13.0" } legacy-javascript@0.0.1: - resolution: {integrity: sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==} + resolution: + { integrity: sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg== } lerna@9.0.7: - resolution: {integrity: sha512-PMjbSWYfwL1yZ5c1D2PZuFyzmtYhLdn0f76uG8L25g6eYy34j+2jPb4Q6USx1UJvxVtxkdVEeAAWS/WxgJ8VZA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - hasBin: true - - less-loader@12.3.1: - resolution: {integrity: sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 - less: ^3.5.0 || ^4.0.0 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - less@3.13.1: - resolution: {integrity: sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==} - engines: {node: '>=6'} - hasBin: true - - less@4.4.2: - resolution: {integrity: sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-PMjbSWYfwL1yZ5c1D2PZuFyzmtYhLdn0f76uG8L25g6eYy34j+2jPb4Q6USx1UJvxVtxkdVEeAAWS/WxgJ8VZA== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } hasBin: true - less@4.6.4: - resolution: {integrity: sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==} - engines: {node: '>=18'} + less@4.6.6: + resolution: + { integrity: sha512-ooPSwQGQ2sVe8Dh1jVsbKKsRR2gd8lFK72BDkeSzjnD1T5aIHL65hCMfO0GVmtriKgDKrQv6xp9UrihUsWuAzA== } + engines: { node: ">=18" } hasBin: true leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== } + engines: { node: ">=6" } levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== } + engines: { node: ">= 0.8.0" } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } + engines: { node: ">= 0.8.0" } libnpmaccess@10.0.3: - resolution: {integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ== } + engines: { node: ^20.17.0 || >=22.9.0 } libnpmpublish@11.1.2: - resolution: {integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==} - engines: {node: ^20.17.0 || >=22.9.0} - - license-webpack-plugin@4.0.2: - resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} - peerDependencies: - webpack: '*' - peerDependenciesMeta: - webpack: - optional: true - - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + resolution: + { integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA== } + engines: { node: ^20.17.0 || >=22.9.0 } liftoff@5.0.1: - resolution: {integrity: sha512-wwLXMbuxSF8gMvubFcFRp56lkFV69twvbU5vDPbaw+Q+/rF8j0HKjGbIdlSi+LuJm9jf7k9PB+nTxnsLMPcv2Q==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-wwLXMbuxSF8gMvubFcFRp56lkFV69twvbU5vDPbaw+Q+/rF8j0HKjGbIdlSi+LuJm9jf7k9PB+nTxnsLMPcv2Q== } + engines: { node: ">=10.13.0" } lighthouse-logger@2.0.2: - resolution: {integrity: sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==} + resolution: + { integrity: sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg== } lighthouse-stack-packs@1.12.2: - resolution: {integrity: sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==} + resolution: + { integrity: sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw== } lighthouse@12.8.2: - resolution: {integrity: sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==} - engines: {node: '>=18.16'} + resolution: + { integrity: sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA== } + engines: { node: ">=18.16" } hasBin: true lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg== } + engines: { node: ">= 12.0.0" } cpu: [arm64] os: [android] lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ== } + engines: { node: ">= 12.0.0" } cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w== } + engines: { node: ">= 12.0.0" } cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig== } + engines: { node: ">= 12.0.0" } cpu: [x64] os: [freebsd] lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw== } + engines: { node: ">= 12.0.0" } cpu: [arm] os: [linux] lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ== } + engines: { node: ">= 12.0.0" } cpu: [arm64] os: [linux] libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg== } + engines: { node: ">= 12.0.0" } cpu: [arm64] os: [linux] libc: [musl] lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA== } + engines: { node: ">= 12.0.0" } cpu: [x64] os: [linux] libc: [glibc] lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg== } + engines: { node: ">= 12.0.0" } cpu: [x64] os: [linux] libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw== } + engines: { node: ">= 12.0.0" } cpu: [arm64] os: [win32] lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q== } + engines: { node: ">= 12.0.0" } cpu: [x64] os: [win32] lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ== } + engines: { node: ">= 12.0.0" } lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== } + engines: { node: ">=10" } lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== } + engines: { node: ">=14" } line-column@1.0.2: - resolution: {integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==} + resolution: + { integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww== } line-height@0.3.1: - resolution: {integrity: sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w== } + engines: { node: ">= 4.0.0" } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } linkify-it@3.0.3: - resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} - - linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + resolution: + { integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== } linkify-it@5.0.1: - resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==} + resolution: + { integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg== } - lint-staged@16.4.0: - resolution: {integrity: sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==} - engines: {node: '>=20.17'} + lint-staged@17.0.7: + resolution: + { integrity: sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA== } + engines: { node: ">=22.22.1" } hasBin: true liquidjs@10.27.0: - resolution: {integrity: sha512-tw/OA59K7aIBlMKIrKlumr37fiZUheShVHXY8cVctWisgY1p9mc5hreOvlreoS0wTiwlWk14Ya7305c2a/Cg5w==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-tw/OA59K7aIBlMKIrKlumr37fiZUheShVHXY8cVctWisgY1p9mc5hreOvlreoS0wTiwlWk14Ya7305c2a/Cg5w== } + engines: { node: ">=16" } hasBin: true list-to-array@1.1.0: - resolution: {integrity: sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==} + resolution: + { integrity: sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g== } listhen@1.10.0: - resolution: {integrity: sha512-kfz4C0OrC6IpaVMtYDJtf6PFjurxe9NBBoDAh/o2p587INryFOO4DQ9OetbCdDrWFt1m1CJKvYrzkGsuPHw8nQ==} + resolution: + { integrity: sha512-kfz4C0OrC6IpaVMtYDJtf6PFjurxe9NBBoDAh/o2p587INryFOO4DQ9OetbCdDrWFt1m1CJKvYrzkGsuPHw8nQ== } hasBin: true listr-input@0.2.1: - resolution: {integrity: sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg== } + engines: { node: ">=6" } listr-silent-renderer@1.1.1: - resolution: {integrity: sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== } + engines: { node: ">=4" } listr-update-renderer@0.5.0: - resolution: {integrity: sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== } + engines: { node: ">=6" } peerDependencies: listr: ^0.14.2 listr-verbose-renderer@0.5.0: - resolution: {integrity: sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== } + engines: { node: ">=4" } - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} + listr2@10.2.1: + resolution: + { integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q== } + engines: { node: ">=22.13.0" } listr@0.14.3: - resolution: {integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== } + engines: { node: ">=6" } - lit-analyzer@1.2.1: - resolution: {integrity: sha512-OEARBhDidyaQENavLbzpTKbEmu5rnAI+SdYsH4ia1BlGlLiqQXoym7uH1MaRPtwtUPbkhUfT4OBDZ+74VHc3Cg==} + lit-analyzer@2.0.3: + resolution: + { integrity: sha512-XiAjnwVipNrKav7r3CSEZpWt+mwYxrhPRVC7h8knDmn/HWTzzWJvPe+mwBcL2brn4xhItAMzZhFC8tzzqHKmiQ== } hasBin: true lit-element@4.2.2: - resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} + resolution: + { integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w== } lit-html@3.3.3: - resolution: {integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==} + resolution: + { integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA== } lit@3.3.3: - resolution: {integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==} + resolution: + { integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw== } livereload-js@3.4.1: - resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==} + resolution: + { integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g== } livereload-js@4.0.2: - resolution: {integrity: sha512-Fy7VwgQNiOkynYyNBTo3v9hQUhcW5pFAheJN148+DTgpShjsy/22pLHKKwDK5v0kOsZsJBK+6q1PMgLvRmrwFQ==} + resolution: + { integrity: sha512-Fy7VwgQNiOkynYyNBTo3v9hQUhcW5pFAheJN148+DTgpShjsy/22pLHKKwDK5v0kOsZsJBK+6q1PMgLvRmrwFQ== } livereload@0.10.3: - resolution: {integrity: sha512-llSb8HrtSH7ByPFMc8WTTeW3oy++smwgSA8JVGzEn8KiDPESq6jt1M4ZKKkhKTrhn2wvUOadQq4ip10E5daZ3w==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-llSb8HrtSH7ByPFMc8WTTeW3oy++smwgSA8JVGzEn8KiDPESq6jt1M4ZKKkhKTrhn2wvUOadQq4ip10E5daZ3w== } + engines: { node: ">=8.0.0" } hasBin: true livereload@0.9.3: - resolution: {integrity: sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw== } + engines: { node: ">=8.0.0" } hasBin: true - lmdb@3.5.1: - resolution: {integrity: sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==} + lmdb@3.5.4: + resolution: + { integrity: sha512-9FKQA6G1MMtqNxfxvSBNXD/axeG2QRjYbNh0/ykRL5xYcRbCm2vXq7B9bhc7nSuKdHzr8/BHIwfPuYYH1UsXXw== } hasBin: true load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== } + engines: { node: ">=4" } load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== } + engines: { node: ">=8" } load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } loader-runner@2.4.0: - resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + resolution: + { integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== } + engines: { node: ">=4.3.0 <5.0.0 || >=5.10" } loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} - engines: {node: '>=6.11.5'} + resolution: + { integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w== } + engines: { node: ">=6.11.5" } loader-utils@0.2.17: - resolution: {integrity: sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==} + resolution: + { integrity: sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== } loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== } + engines: { node: ">=4.0.0" } loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + resolution: + { integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== } + engines: { node: ">=8.9.0" } loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== } + engines: { node: ">= 12.13.0" } loader.js@4.7.0: - resolution: {integrity: sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA==} + resolution: + { integrity: sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA== } local-access@1.1.0: - resolution: {integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw== } + engines: { node: ">=6" } local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== } + engines: { node: ">=14" } local-pkg@1.2.1: - resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q== } + engines: { node: ">=14" } locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + resolution: + { integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== } locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== } + engines: { node: ">=4" } locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== } + engines: { node: ">=6" } locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } + engines: { node: ">=8" } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } + engines: { node: ">=10" } locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } locate-path@8.0.0: - resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg== } + engines: { node: ">=20" } lodash-es@4.18.1: - resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + resolution: + { integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== } lodash._reinterpolate@3.0.0: - resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + resolution: + { integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== } lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: + { integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== } lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + resolution: + { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } lodash.deburr@4.1.0: - resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==} - - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + resolution: + { integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ== } lodash.defaultsdeep@4.6.1: - resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} + resolution: + { integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== } lodash.escape@4.0.1: - resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} + resolution: + { integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw== } lodash.flattendeep@4.4.0: - resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + resolution: + { integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== } lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + resolution: + { integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== } deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + resolution: + { integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== } lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + resolution: + { integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== } lodash.mapvalues@4.6.0: - resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} + resolution: + { integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ== } lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + resolution: + { integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + resolution: + { integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== } lodash.template@4.18.1: - resolution: {integrity: sha512-5urZrLnV/VD6zHK5KsVtZgt7H19v51mIzoS0aBNH8yp3I8tbswrEjOABOPY8m8uB7NuibubLrMX+Y0PXsU9X+w==} + resolution: + { integrity: sha512-5urZrLnV/VD6zHK5KsVtZgt7H19v51mIzoS0aBNH8yp3I8tbswrEjOABOPY8m8uB7NuibubLrMX+Y0PXsU9X+w== } deprecated: This package is deprecated. Use https://socket.dev/npm/package/eta instead. lodash.templatesettings@4.2.0: - resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + resolution: + { integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== } lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + resolution: + { integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== } lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + resolution: + { integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== } lodash.zip@4.2.0: - resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} + resolution: + { integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== } lodash@4.18.1: - resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + resolution: + { integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== } log-symbols@1.0.2: - resolution: {integrity: sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== } + engines: { node: ">=0.10.0" } log-symbols@2.2.0: - resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== } + engines: { node: ">=4" } log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== } + engines: { node: ">=10" } log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw== } + engines: { node: ">=18" } log-symbols@7.0.1: - resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg== } + engines: { node: ">=18" } log-update@2.3.0: - resolution: {integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== } + engines: { node: ">=4" } log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== } + engines: { node: ">=10" } log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== } + engines: { node: ">=18" } log4js@4.5.1: - resolution: {integrity: sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== } + engines: { node: ">=6.0" } deprecated: 4.x is no longer supported. Please upgrade to 6.x or higher. log4js@6.9.1: - resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== } + engines: { node: ">=8.0" } logform@2.7.0: - resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ== } + engines: { node: ">= 12.0.0" } loglevel@1.9.2: - resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} - engines: {node: '>= 0.6.0'} + resolution: + { integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== } + engines: { node: ">= 0.6.0" } longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + resolution: + { integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== } lookpath@1.2.3: - resolution: {integrity: sha512-kthRVhf4kH4+HW3anM4UBHxsw/XFESf13euCEldhXr6GpBdmBoa7rDd7WO5G0Mhd4G5XtKTcEy8OR0iRZXpS3Q==} - engines: {npm: '>=6.13.4'} + resolution: + { integrity: sha512-kthRVhf4kH4+HW3anM4UBHxsw/XFESf13euCEldhXr6GpBdmBoa7rDd7WO5G0Mhd4G5XtKTcEy8OR0iRZXpS3Q== } + engines: { npm: ">=6.13.4" } hasBin: true lookup-closest-locale@6.2.0: - resolution: {integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==} + resolution: + { integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ== } loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== } hasBin: true loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + resolution: + { integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== } lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} + resolution: + { integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== } lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + resolution: + { integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== } lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== } + engines: { node: ">=0.10.0" } lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== } + engines: { node: ">=8" } lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@11.5.0: - resolution: {integrity: sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== } lru-cache@11.5.1: - resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A== } + engines: { node: 20 || >=22 } lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + resolution: + { integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== } lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== } + engines: { node: ">=10" } lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== } + engines: { node: ">=12" } lru-cache@8.0.5: - resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} - engines: {node: '>=16.14'} + resolution: + { integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA== } + engines: { node: ">=16.14" } lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + resolution: + { integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== } luxon@3.7.2: - resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew== } + engines: { node: ">=12" } lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + resolution: + { integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== } hasBin: true macos-version@6.0.0: - resolution: {integrity: sha512-O2S8voA+pMfCHhBn/TIYDXzJ1qNHpPDU32oFxglKnVdJABiYYITt45oLkV9yhwA3E2FDwn3tQqUFrTsr1p3sBQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-O2S8voA+pMfCHhBn/TIYDXzJ1qNHpPDU32oFxglKnVdJABiYYITt45oLkV9yhwA3E2FDwn3tQqUFrTsr1p3sBQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } magic-regexp@0.11.0: - resolution: {integrity: sha512-LG77Z/gVnwz7oaDpD4heX6ryl+lcr4l1B2gnP4MMvt2pGhGC1Dfj7dl1pXpP4ih+VQFLuAadeKVa+lARAzfW+Q==} + resolution: + { integrity: sha512-LG77Z/gVnwz7oaDpD4heX6ryl+lcr4l1B2gnP4MMvt2pGhGC1Dfj7dl1pXpP4ih+VQFLuAadeKVa+lARAzfW+Q== } magic-string-ast@1.0.3: - resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA== } + engines: { node: ">=20.19.0" } magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + resolution: + { integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== } magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + resolution: + { integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== } magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + resolution: + { integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== } magicast@0.5.3: - resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + resolution: + { integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw== } make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== } + engines: { node: ">=4" } make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== } + engines: { node: ">=6" } make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== } + engines: { node: ">=8" } make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== } + engines: { node: ">=10" } + + make-dir@5.1.0: + resolution: + { integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw== } + engines: { node: ">=18" } make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== } make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } make-fetch-happen@15.0.2: - resolution: {integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ== } + engines: { node: ^20.17.0 || >=22.9.0 } - make-fetch-happen@15.0.5: - resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} - engines: {node: ^20.17.0 || >=22.9.0} + make-fetch-happen@15.0.6: + resolution: + { integrity: sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw== } + engines: { node: ^20.17.0 || >=22.9.0 } makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + resolution: + { integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== } map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== } + engines: { node: ">=6" } map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== } + engines: { node: ">=0.10.0" } map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== } + engines: { node: ">=0.10.0" } map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== } + engines: { node: ">=8" } map-values@1.0.1: - resolution: {integrity: sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==} + resolution: + { integrity: sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ== } map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== } + engines: { node: ">=0.10.0" } mark.js@8.11.1: - resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + resolution: + { integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== } markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + resolution: + { integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== } markdown-it-terminal@0.4.0: - resolution: {integrity: sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w==} + resolution: + { integrity: sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w== } peerDependencies: - markdown-it: '>= 13.0.0' + markdown-it: ">= 13.0.0" markdown-it@12.3.2: - resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} - hasBin: true - - markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} + resolution: + { integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== } hasBin: true markdown-it@14.2.0: - resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} + resolution: + { integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ== } hasBin: true markdown-table@2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + resolution: + { integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== } markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + resolution: + { integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== } markdownlint-cli@0.31.1: - resolution: {integrity: sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g== } + engines: { node: ">=12" } hasBin: true markdownlint-rule-helpers@0.16.0: - resolution: {integrity: sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==} + resolution: + { integrity: sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w== } markdownlint@0.25.1: - resolution: {integrity: sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g== } + engines: { node: ">=12" } marky@1.3.0: - resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + resolution: + { integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ== } matcher-collection@1.1.2: - resolution: {integrity: sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==} + resolution: + { integrity: sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g== } matcher-collection@2.0.1: - resolution: {integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==} - engines: {node: 6.* || 8.* || >= 10.*} - - matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ== } + engines: { node: 6.* || 8.* || >= 10.* } math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== } + engines: { node: ">= 0.4" } mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + resolution: + { integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== } mathml-tag-names@4.0.0: - resolution: {integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==} - - maximatch@0.1.0: - resolution: {integrity: sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ== } md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + resolution: + { integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== } mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + resolution: + { integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ== } mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + resolution: + { integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== } mdast-util-from-markdown@2.0.3: - resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + resolution: + { integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q== } mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + resolution: + { integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== } mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + resolution: + { integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== } mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + resolution: + { integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== } mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + resolution: + { integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== } mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + resolution: + { integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== } mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + resolution: + { integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== } mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + resolution: + { integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== } mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + resolution: + { integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== } mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + resolution: + { integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== } mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + resolution: + { integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== } mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + resolution: + { integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== } mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + resolution: + { integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== } mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + resolution: + { integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== } mdn-data@2.0.4: - resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} + resolution: + { integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== } mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + resolution: + { integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ== } mdn-data@2.28.1: - resolution: {integrity: sha512-U9w+PzSZ00Z5m9rZ5ARVFL5xOfuCHdKYi/1RRwDCJsboFgJDNT3zT6PIPD7mZQYaQLhsZM3GfDRgSMRHhSmVng==} + resolution: + { integrity: sha512-U9w+PzSZ00Z5m9rZ5ARVFL5xOfuCHdKYi/1RRwDCJsboFgJDNT3zT6PIPD7mZQYaQLhsZM3GfDRgSMRHhSmVng== } mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + resolution: + { integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== } mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + resolution: + { integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== } media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== } + engines: { node: ">= 0.6" } media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== } + engines: { node: ">= 0.8" } mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== } + engines: { node: ">=10" } memfs@3.6.0: - resolution: {integrity: sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== } + engines: { node: ">= 4.0.0" } deprecated: this will be v4 - memfs@4.57.2: - resolution: {integrity: sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==} + memfs@4.57.7: + resolution: + { integrity: sha512-YZPphUQZSRGk6ddPlsNuMbztrLwsbUATFNZcqKscSbSJZ4g0+Y3vSZLJ/rfnGZaB1FFhC7SrywZXev6i8lnHgg== } peerDependencies: - tslib: '2' + tslib: "2" memize@2.1.1: - resolution: {integrity: sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==} + resolution: + { integrity: sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w== } memory-fs@0.4.1: - resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} + resolution: + { integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== } memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + resolution: + { integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== } + engines: { node: ">=4.3.0 <5.0.0 || >=5.10" } memory-streams@0.1.3: - resolution: {integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==} + resolution: + { integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA== } memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== } + engines: { node: ">= 0.10.0" } meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== } + engines: { node: ">=18" } meow@14.1.0: - resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw== } + engines: { node: ">=20" } meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== } + engines: { node: ">=10" } meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== } + engines: { node: ">=10" } merge-anything@5.1.7: - resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} - engines: {node: '>=12.13'} + resolution: + { integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ== } + engines: { node: ">=12.13" } merge-deep@3.0.3: - resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA== } + engines: { node: ">=0.10.0" } merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + resolution: + { integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== } merge-descriptors@2.0.0: - resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== } + engines: { node: ">=18" } merge-source-map@1.1.0: - resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} + resolution: + { integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } merge-trees@2.0.0: - resolution: {integrity: sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw==} + resolution: + { integrity: sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw== } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } + engines: { node: ">= 8" } metaviewport-parser@0.3.0: - resolution: {integrity: sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==} + resolution: + { integrity: sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ== } methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== } + engines: { node: ">= 0.6" } micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + resolution: + { integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== } micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + resolution: + { integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== } micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + resolution: + { integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== } micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + resolution: + { integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== } micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + resolution: + { integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== } micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + resolution: + { integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== } micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + resolution: + { integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== } micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + resolution: + { integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== } micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + resolution: + { integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== } micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + resolution: + { integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== } micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + resolution: + { integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== } micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + resolution: + { integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== } micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + resolution: + { integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== } micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + resolution: + { integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== } micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + resolution: + { integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== } micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + resolution: + { integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== } micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + resolution: + { integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== } micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + resolution: + { integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== } micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + resolution: + { integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== } micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + resolution: + { integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== } micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + resolution: + { integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== } micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + resolution: + { integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== } micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + resolution: + { integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== } micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + resolution: + { integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== } micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + resolution: + { integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== } micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + resolution: + { integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== } micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + resolution: + { integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== } micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + resolution: + { integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== } micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== } + engines: { node: ">=0.10.0" } micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } + engines: { node: ">=8.6" } miller-rabin@4.0.1: - resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + resolution: + { integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== } hasBin: true mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } + engines: { node: ">= 0.6" } mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== } + engines: { node: ">= 0.6" } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } + engines: { node: ">= 0.6" } mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== } + engines: { node: ">=18" } mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== } + engines: { node: ">=4" } hasBin: true mime@2.5.2: - resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== } + engines: { node: ">=4.0.0" } hasBin: true mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== } + engines: { node: ">=4.0.0" } hasBin: true mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== } + engines: { node: ">=10.0.0" } hasBin: true mime@4.1.0: - resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw== } + engines: { node: ">=16" } hasBin: true mimic-fn@1.2.0: - resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== } + engines: { node: ">=4" } mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } + engines: { node: ">=6" } mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== } + engines: { node: ">=8" } mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== } + engines: { node: ">=12" } mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== } + engines: { node: ">=18" } mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== } + engines: { node: ">=4" } mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== } + engines: { node: ">=10" } min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== } + engines: { node: ">=4" } mini-css-extract-plugin@1.6.2: - resolution: {integrity: sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.4.0 || ^5.0.0 - mini-css-extract-plugin@2.10.0: - resolution: {integrity: sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - mini-css-extract-plugin@2.10.2: - resolution: {integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg== } + engines: { node: ">= 12.13.0" } peerDependencies: webpack: ^5.0.0 minify@15.3.1: - resolution: {integrity: sha512-2Y8GurrLPo0OKwbA+O7oAsolVsxPDxMLd3VNzp9anVGr8tkQq03pwWOCNeXf6SircWrX54jWa+nrBG66AwBDxQ==} - engines: {node: '>=22'} + resolution: + { integrity: sha512-2Y8GurrLPo0OKwbA+O7oAsolVsxPDxMLd3VNzp9anVGr8tkQq03pwWOCNeXf6SircWrX54jWa+nrBG66AwBDxQ== } + engines: { node: ">=22" } hasBin: true minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + resolution: + { integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== } minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + resolution: + { integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== } minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} - engines: {node: 18 || 20 || >=22} + resolution: + { integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== } + engines: { node: 18 || 20 || >=22 } minimatch@3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + resolution: + { integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== } minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + resolution: + { integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== } minimatch@3.1.4: - resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} + resolution: + { integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw== } minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + resolution: + { integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== } minimatch@5.1.9: - resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw== } + engines: { node: ">=10" } minimatch@7.4.9: - resolution: {integrity: sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw== } + engines: { node: ">=10" } minimatch@8.0.7: - resolution: {integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg== } + engines: { node: ">=16 || 14 >=14.17" } minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== } + engines: { node: ">=16 || 14 >=14.17" } minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== } + engines: { node: ">=16 || 14 >=14.17" } minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== } + engines: { node: ">= 6" } minimist@1.2.0: - resolution: {integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==} + resolution: + { integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== } minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== } minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== } + engines: { node: ">= 8" } minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== } + engines: { node: ">=16 || 14 >=14.17" } minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } minipass-fetch@3.0.5: - resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } minipass-fetch@4.0.1: - resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ== } + engines: { node: ^18.17.0 || >=20.5.0 } minipass-fetch@5.0.2: - resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ== } + engines: { node: ^20.17.0 || >=22.9.0 } minipass-flush@1.0.7: - resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA== } + engines: { node: ">= 8" } minipass-json-stream@1.0.2: - resolution: {integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==} + resolution: + { integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg== } minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== } + engines: { node: ">=8" } minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== } + engines: { node: ">=8" } minipass-sized@2.0.0: - resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA== } + engines: { node: ">=8" } minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + resolution: + { integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== } minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== } + engines: { node: ">=8" } minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== } + engines: { node: ">=8" } minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== } + engines: { node: ">=8" } minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== } + engines: { node: ">=16 || 14 >=14.17" } minisearch@7.2.0: - resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + resolution: + { integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg== } minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} + resolution: + { integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== } minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== } + engines: { node: ">= 8" } minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== } + engines: { node: ">= 18" } mississippi@3.0.0: - resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== } + engines: { node: ">=4.0.0" } mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + resolution: + { integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== } mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== } + engines: { node: ">=0.10.0" } mixin-object@2.0.1: - resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA== } + engines: { node: ">=0.10.0" } mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + resolution: + { integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== } mkdirp@0.5.4: - resolution: {integrity: sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==} + resolution: + { integrity: sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== } deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) hasBin: true mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: + { integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== } hasBin: true mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== } + engines: { node: ">=10" } hasBin: true mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== } + engines: { node: ">=10" } hasBin: true mktemp@2.0.3: - resolution: {integrity: sha512-Bq72L2oi/isYSy0guN9ihNhAMQOyZEwts+Bezm/1U+wh8bQ+fVQ2ZiUoJJjceOMiiKv/BUrA0NF98jFc81CB6w==} - engines: {node: 20 || 22 || 24} + resolution: + { integrity: sha512-Bq72L2oi/isYSy0guN9ihNhAMQOyZEwts+Bezm/1U+wh8bQ+fVQ2ZiUoJJjceOMiiKv/BUrA0NF98jFc81CB6w== } + engines: { node: 20 || 22 || 24 } mlly@1.8.2: - resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} - - mocha@10.8.2: - resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} - engines: {node: '>= 14.0.0'} - hasBin: true + resolution: + { integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA== } mocha@11.7.6: - resolution: {integrity: sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true mocha@6.2.3: - resolution: {integrity: sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==} - engines: {node: '>= 6.0.0'} + resolution: + { integrity: sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== } + engines: { node: ">= 6.0.0" } hasBin: true mocked-exports@0.1.1: - resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} + resolution: + { integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA== } modern-tar@0.7.6: - resolution: {integrity: sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg== } + engines: { node: ">=18.0.0" } modify-values@1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== } + engines: { node: ">=0.10.0" } module-alias@2.3.4: - resolution: {integrity: sha512-bOclZt8hkpuGgSSoG07PKmvzTizROilUTvLNyrMqvlC9snhs7y7GzjNWAVbISIOlhCP1T14rH1PDAV9iNyBq/w==} + resolution: + { integrity: sha512-bOclZt8hkpuGgSSoG07PKmvzTizROilUTvLNyrMqvlC9snhs7y7GzjNWAVbISIOlhCP1T14rH1PDAV9iNyBq/w== } module-details-from-path@1.0.4: - resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + resolution: + { integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w== } moment-timezone@0.5.48: - resolution: {integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==} + resolution: + { integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw== } moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + resolution: + { integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== } montag@1.2.1: - resolution: {integrity: sha512-YFuR6t5KhDlmAnUmVSxGzNcpWqSDqxbd95tvnEnn7X9yFv7g3kDFoRjwyGayVdF/NNoWk7YW7IxUjilnGnoC5Q==} + resolution: + { integrity: sha512-YFuR6t5KhDlmAnUmVSxGzNcpWqSDqxbd95tvnEnn7X9yFv7g3kDFoRjwyGayVdF/NNoWk7YW7IxUjilnGnoC5Q== } + + moo@0.5.2: + resolution: + { integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== } moo@0.5.3: - resolution: {integrity: sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==} + resolution: + { integrity: sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA== } - morgan@1.10.1: - resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} - engines: {node: '>= 0.8.0'} + morgan@1.11.0: + resolution: + { integrity: sha512-zSkVu3t18r39pw4ixfBKvfZi3y2UOqr7d4WYwcj3m8nXpEQK4rPO6GLzs/CExoRgmX3y9EjmmcXqv6jq0SK46g== } + engines: { node: ">= 0.8.0" } morphdom@2.7.8: - resolution: {integrity: sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==} + resolution: + { integrity: sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg== } motion-dom@11.18.1: - resolution: {integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==} + resolution: + { integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw== } motion-utils@11.18.1: - resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} + resolution: + { integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA== } mousetrap@1.6.5: - resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} + resolution: + { integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== } move-concurrently@1.0.1: - resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} + resolution: + { integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== } deprecated: This package is no longer supported. mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== } + engines: { node: ">=4" } mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== } + engines: { node: ">=10" } ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== } ms@2.1.1: - resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} + resolution: + { integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== } ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } - msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} + msgpackr-extract@3.0.4: + resolution: + { integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw== } hasBin: true - msgpackr@1.11.12: - resolution: {integrity: sha512-RBdJ1Un7yGlXWajrkxcSa93nvQ0w4zBf60c0yYv7YtBelP8H2FA7XsfBbMHtXKXUMUxH7zV3Zuozh+kUQWhHvg==} + msgpackr@1.12.1: + resolution: + { integrity: sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ== } muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + resolution: + { integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== } multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + resolution: + { integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== } hasBin: true - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - mustache@2.3.2: - resolution: {integrity: sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==} - engines: {npm: '>=1.4.0'} + resolution: + { integrity: sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ== } + engines: { npm: ">=1.4.0" } hasBin: true mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + resolution: + { integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== } hasBin: true mute-stdout@2.0.0: - resolution: {integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ== } + engines: { node: ">= 10.13.0" } mute-stream@0.0.7: - resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + resolution: + { integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== } mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + resolution: + { integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== } mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== } + engines: { node: ^18.17.0 || >=20.5.0 } mute-stream@3.0.0: - resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw== } + engines: { node: ^20.17.0 || >=22.9.0 } mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== } nan@2.27.0: - resolution: {integrity: sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ==} + resolution: + { integrity: sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ== } nanocolors@0.2.13: - resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} + resolution: + { integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA== } nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== } + engines: { node: ">=0.10.0" } nanotar@0.3.0: - resolution: {integrity: sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg==} + resolution: + { integrity: sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg== } napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + resolution: + { integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== } napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + resolution: + { integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } hasBin: true - native-request@1.1.2: - resolution: {integrity: sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ==} - native-run@2.0.3: - resolution: {integrity: sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==} - engines: {node: '>=16.0.0'} + resolution: + { integrity: sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q== } + engines: { node: ">=16.0.0" } hasBin: true native-url@0.3.4: - resolution: {integrity: sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==} + resolution: + { integrity: sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== } natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + resolution: + { integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== } hasBin: true needle@3.5.0: - resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==} - engines: {node: '>= 4.4.x'} + resolution: + { integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w== } + engines: { node: ">= 4.4.x" } hasBin: true negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== } + engines: { node: ">= 0.6" } negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== } + engines: { node: ">= 0.6" } negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== } + engines: { node: ">= 0.6" } neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== } neotraverse@0.6.18: - resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA== } + engines: { node: ">= 10" } netmask@2.1.1: - resolution: {integrity: sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==} - engines: {node: '>= 0.4.0'} + resolution: + { integrity: sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA== } + engines: { node: ">= 0.4.0" } new-github-release-url@2.0.0: - resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - next@16.2.6: - resolution: {integrity: sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==} - engines: {node: '>=20.9.0'} + resolution: + { integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + next@16.2.9: + resolution: + { integrity: sha512-MEOJiq/UvuezAdqVSceHbqDgZt1kDw2tpGVOlsdIoJsQdbN2JY2hpVG4xnXGkbdJUOEWhnRfiu/O4Hpc9Juwww== } + engines: { node: ">=20.9.0" } hasBin: true peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.51.1 - babel-plugin-react-compiler: '*' + "@opentelemetry/api": ^1.1.0 + "@playwright/test": ^1.51.1 + babel-plugin-react-compiler: "*" react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 sass: ^1.3.0 peerDependenciesMeta: - '@opentelemetry/api': + "@opentelemetry/api": optional: true - '@playwright/test': + "@playwright/test": optional: true babel-plugin-react-compiler: optional: true sass: optional: true - ng-packagr@21.2.3: - resolution: {integrity: sha512-jGq6yu0G6KReVK0i5RYVoV9HDL0mU626HrLBu5xvc8ZJ92n/+rLrFJuXdCnkroB9um+FBTQe/or6/A/2GAKhLw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + ng-packagr@22.0.0: + resolution: + { integrity: sha512-2mXzUdprkDHk4j0NVDcpkVztVwdb1b3o63vLK8YQVCJqCMvCv8BBkFjBo9f1KJmuPf+CE/xuvylhyqfzXoTTqw== } + engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 } hasBin: true 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" peerDependenciesMeta: tailwindcss: optional: true nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + resolution: + { integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== } nitropack@2.13.4: - resolution: {integrity: sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: xml2js: ^0.6.2 @@ -33869,40 +38736,51 @@ packages: optional: true nlcst-to-string@4.0.0: - resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + resolution: + { integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA== } no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + resolution: + { integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== } no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + resolution: + { integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== } node-abi@3.92.0: - resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ== } + engines: { node: ">=10" } node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + resolution: + { integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== } node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + resolution: + { integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== } node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + resolution: + { integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== } node-environment-flags@1.0.5: - resolution: {integrity: sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==} + resolution: + { integrity: sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== } node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw== } + engines: { node: ">= 0.4" } node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + resolution: + { integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== } node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} + resolution: + { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -33910,302 +38788,377 @@ packages: optional: true node-forge@1.4.0: - resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} - engines: {node: '>= 6.13.0'} + resolution: + { integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ== } + engines: { node: ">= 6.13.0" } node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + resolution: + { integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== } hasBin: true node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + resolution: + { integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== } hasBin: true - node-gyp@12.3.0: - resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} - engines: {node: ^20.17.0 || >=22.9.0} + node-gyp@12.4.0: + resolution: + { integrity: sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} + resolution: + { integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== } + engines: { node: ^12.13 || ^14.13 || >=16 } hasBin: true node-html-parser@6.1.13: - resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + resolution: + { integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== } node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + resolution: + { integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== } node-libs-browser@2.2.1: - resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} + resolution: + { integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== } node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + resolution: + { integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== } node-mock-http@1.0.4: - resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - - node-notifier@10.0.1: - resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} + resolution: + { integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ== } node-object-hash@1.4.2: - resolution: {integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== } + engines: { node: ">=0.10.0" } node-preload@0.2.1: - resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== } + engines: { node: ">=8" } - node-releases@2.0.46: - resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} - engines: {node: '>=18'} + node-releases@2.0.47: + resolution: + { integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og== } + engines: { node: ">=18" } node-res@5.0.1: - resolution: {integrity: sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg==} + resolution: + { integrity: sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg== } node-resolve@1.3.4: - resolution: {integrity: sha512-yQ8Qn3GGR4cyunvggEHg7fb37V/6atft1K/xU6b2OEfJDbi8zbRSNIKxClzJszAV6tjtYyZt1vHlBgdORMcPXg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-yQ8Qn3GGR4cyunvggEHg7fb37V/6atft1K/xU6b2OEfJDbi8zbRSNIKxClzJszAV6tjtYyZt1vHlBgdORMcPXg== } + engines: { node: ">=0.10.0" } + + node-retrieve-globals@6.0.1: + resolution: + { integrity: sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg== } node-watch@0.7.3: - resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ== } + engines: { node: ">=6" } nodemon@3.1.14: - resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw== } + engines: { node: ">=10" } hasBin: true noms@0.0.0: - resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} + resolution: + { integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== } nopt@3.0.6: - resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + resolution: + { integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== } hasBin: true nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } hasBin: true nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hasBin: true nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A== } + engines: { node: ^18.17.0 || >=20.5.0 } hasBin: true nopt@9.0.0: - resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== } + engines: { node: ">=10" } normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } normalize-package-data@8.0.0: - resolution: {integrity: sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ== } + engines: { node: ^20.17.0 || >=22.9.0 } normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== } + engines: { node: ">=0.10.0" } normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + engines: { node: ">=0.10.0" } normalize-url@1.9.1: - resolution: {integrity: sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== } + engines: { node: ">=4" } normalize-url@3.3.0: - resolution: {integrity: sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== } + engines: { node: ">=6" } normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== } + engines: { node: ">=8" } normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== } + engines: { node: ">=10" } normalize-wheel@1.0.1: - resolution: {integrity: sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==} + resolution: + { integrity: sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA== } now-and-later@3.0.0: - resolution: {integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==} - engines: {node: '>= 10.13.0'} - - np@11.0.3: - resolution: {integrity: sha512-a1Yp3AR/l5OH9cTxjdPuunRQYHU8M/K2YSuzaG4HBaFEkYzLWFl7OhB9ayWACc1Uo1Xdho0MsB+HaBjvPgyU5g==} - engines: {bun: '>=1', git: '>=2.11.0', node: '>=20', npm: '>=9', pnpm: '>=8', yarn: '>=1.7.0'} + resolution: + { integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg== } + engines: { node: ">= 10.13.0" } + + np@11.2.1: + resolution: + { integrity: sha512-OBvNC8ipTHzRNY44opIUxptDaI1NukIBxVvof2vvLe8XLfw87TyfOdR6/QYSQEMqtRSL0XkNj0N/6Bsn//S6Qg== } + engines: { bun: ">=1", git: ">=2.11.0", node: ">=20", npm: ">=9", pnpm: ">=8", yarn: ">=1.7.0" } hasBin: true npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + resolution: + { integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== } npm-bundled@3.0.1: - resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-bundled@4.0.0: - resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA== } + engines: { node: ^18.17.0 || >=20.5.0 } npm-bundled@5.0.0: - resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-install-checks@7.1.2: - resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ== } + engines: { node: ^18.17.0 || >=20.5.0 } npm-install-checks@8.0.0: - resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-name@8.1.0: - resolution: {integrity: sha512-0Fji7beCAW3yHaqfVPLlT8GOSt7IIWZGQshZqosjbUOhMvs7P4r7g0raOSQIUjKBJO7brLBdXsnX2/l/l5vmUw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-0Fji7beCAW3yHaqfVPLlT8GOSt7IIWZGQshZqosjbUOhMvs7P4r7g0raOSQIUjKBJO7brLBdXsnX2/l/l5vmUw== } + engines: { node: ">=18" } npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + resolution: + { integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== } npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-normalize-package-bin@4.0.0: - resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w== } + engines: { node: ^18.17.0 || >=20.5.0 } npm-normalize-package-bin@5.0.0: - resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-package-arg@12.0.2: - resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA== } + engines: { node: ^18.17.0 || >=20.5.0 } npm-package-arg@13.0.1: - resolution: {integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-package-arg@13.0.2: - resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-package-json-lint@6.4.0: - resolution: {integrity: sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==} - engines: {node: '>=14.0.0', npm: '>=6.0.0'} + resolution: + { integrity: sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA== } + engines: { node: ">=14.0.0", npm: ">=6.0.0" } hasBin: true npm-packlist@10.0.3: - resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-packlist@10.0.4: - resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== } + engines: { node: ">=10" } hasBin: true npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-pick-manifest@10.0.0: - resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ== } + engines: { node: ^18.17.0 || >=20.5.0 } npm-pick-manifest@11.0.3: - resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } npm-registry-fetch@19.1.0: - resolution: {integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-registry-fetch@19.1.1: - resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw== } + engines: { node: ^20.17.0 || >=22.9.0 } npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== } + engines: { node: ">= 4" } hasBin: true npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== } + engines: { node: ">=4" } npm-run-path@3.1.0: - resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== } + engines: { node: ">=8" } npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== } + engines: { node: ">=8" } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } npm-run-path@6.0.0: - resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA== } + engines: { node: ">=18" } npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } deprecated: This package is no longer supported. nth-check@1.0.2: - resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} + resolution: + { integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== } nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + resolution: + { integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== } number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== } + engines: { node: ">=0.10.0" } nunjucks@3.2.4: - resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==} - engines: {node: '>= 6.9.0'} + resolution: + { integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== } + engines: { node: ">= 6.9.0" } hasBin: true peerDependencies: chokidar: ^3.3.0 @@ -34214,338 +39167,421 @@ packages: optional: true nuxt@2.18.1: - resolution: {integrity: sha512-SZFOLDKgCfLu23BrQE0YYNWeoi/h+fw07TNDNDzRfbmMvQlStgTBG7lqeELytXdQnaPKWjWAYo12K7pPPRZb9Q==} + resolution: + { integrity: sha512-SZFOLDKgCfLu23BrQE0YYNWeoi/h+fw07TNDNDzRfbmMvQlStgTBG7lqeELytXdQnaPKWjWAYo12K7pPPRZb9Q== } deprecated: Nuxt 2 has reached EOL and is no longer actively maintained. See https://nuxt.com/blog/nuxt2-eol for more details. hasBin: true - nuxt@3.21.6: - resolution: {integrity: sha512-jIs488icdWIzzwTQYa4J2WmbhDlBcVDPGc7LBTxezaHwf8C5LKnWZvBkFqREQ8UjMQe5KBnA98pFRUqT6ZDPYA==} - engines: {node: ^20.19.0 || >=22.12.0} + nuxt@3.21.8: + resolution: + { integrity: sha512-RRB/MpZhdEhb/A21qaUaSI1UYDOy9bgK0vZvRRjDsA8HGY+eFBr2EvUkdeYQHOT8WKuByxWlg5ckz3H4A+QQ1w== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: - '@parcel/watcher': ^2.1.0 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + "@parcel/watcher": ^2.1.0 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 peerDependenciesMeta: - '@parcel/watcher': + "@parcel/watcher": optional: true - '@types/node': + "@types/node": optional: true - nuxt@4.4.6: - resolution: {integrity: sha512-QAApJpAx3yGf3pYudALkInuBfv0WkHCiol6ntTvh/lwKwYrcU/MRI1nLNGt0QNyUCgBWdOQukd3z67VJ2xGd0Q==} - engines: {node: ^22.12.0 || ^24.11.0 || >=26.0.0} + nuxt@4.4.8: + resolution: + { integrity: sha512-r/DGE4cNkEDclOw9tbJ18zqu+ix3me+7QCfumPdl5lBXGWgCajskzuq/HzDkHKfIZsn7ACVEjMLRNA2teh++bQ== } + engines: { node: ^22.12.0 || ^24.11.0 || >=26.0.0 } hasBin: true peerDependencies: - '@parcel/watcher': ^2.1.0 - '@types/node': '>=18.12.0' + "@parcel/watcher": ^2.1.0 + "@types/node": ">=18.12.0" peerDependenciesMeta: - '@parcel/watcher': + "@parcel/watcher": optional: true - '@types/node': + "@types/node": optional: true - nwsapi@2.2.23: - resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + nwsapi@2.2.24: + resolution: + { integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A== } nx-cloud@19.1.3: - resolution: {integrity: sha512-fY0MnE4tJOERMq6HnAD/ILI2w1r1z3BNMXyEszr4kg+py2bFtpM211cP9WLhJKwTMg3Mv/ut89g37EZY9IOKgg==} + resolution: + { integrity: sha512-fY0MnE4tJOERMq6HnAD/ILI2w1r1z3BNMXyEszr4kg+py2bFtpM211cP9WLhJKwTMg3Mv/ut89g37EZY9IOKgg== } hasBin: true - nx@22.7.4: - resolution: {integrity: sha512-BgKh22x4esZg33DEpLlHaOo5uxYuLvbiICaniciRkW/e3YgFgAewipCB1nkrfDmEBdfm9irihr94gkPGWrobrA==} + nx@22.7.5: + resolution: + { integrity: sha512-zoxsJabb33jl1QYnalDn0bicryrEBgSzdKp90d7VGGv/jDgzKrcLg/hw2ZxeYiOjWPIT/o8QNT9G9vTs4dv3AQ== } hasBin: true peerDependencies: - '@swc-node/register': ^1.11.1 - '@swc/core': ^1.15.8 + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 peerDependenciesMeta: - '@swc-node/register': + "@swc-node/register": optional: true - '@swc/core': + "@swc/core": optional: true - nx@22.7.5: - resolution: {integrity: sha512-zoxsJabb33jl1QYnalDn0bicryrEBgSzdKp90d7VGGv/jDgzKrcLg/hw2ZxeYiOjWPIT/o8QNT9G9vTs4dv3AQ==} + nx@23.0.0: + resolution: + { integrity: sha512-60HZVOQErtSTnR+UVPBYI5sYe8R2nrHttI0tVHhEj91kJpbXvL15gSh+rv6lUcAJtDfPymoEn20jGzN4oOLKAg== } hasBin: true peerDependencies: - '@swc-node/register': ^1.11.1 - '@swc/core': ^1.15.8 + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 peerDependenciesMeta: - '@swc-node/register': + "@swc-node/register": optional: true - '@swc/core': + "@swc/core": optional: true - nyc@15.1.0: - resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} - engines: {node: '>=8.9'} - hasBin: true - nyc@18.0.0: - resolution: {integrity: sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ== } + engines: { node: 20 || >=22 } hasBin: true - nypm@0.6.6: - resolution: {integrity: sha512-vRyr0r4cbBapw07Xw8xrj9Teq3o7MUD35rSaTcanDbW+aK2XHDgJFiU6ZTj2GBw7Q12ysdsyFss+Vdz4hQ0Y6Q==} - engines: {node: '>=18'} + nypm@0.6.7: + resolution: + { integrity: sha512-s3ds97SD5pd1dULE+tHUk1DrV0cSHOnsfpcdGATJ8JpBo21DoKqN9exTH4/2nhPQNOLomBdTFMicN94S4DrZrQ== } + engines: { node: ">=18" } hasBin: true oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + resolution: + { integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== } object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } + engines: { node: ">=0.10.0" } object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== } + engines: { node: ">=0.10.0" } object-deep-merge@2.0.1: - resolution: {integrity: sha512-aKttDKcU3pyZqKcCkDhsMn70WmZFG2JGDQLP9EcLyTSIFQRCPWLAmBZRLJnrVUrhPG1jETEEbfdgbNtJf1LyMg==} + resolution: + { integrity: sha512-aKttDKcU3pyZqKcCkDhsMn70WmZFG2JGDQLP9EcLyTSIFQRCPWLAmBZRLJnrVUrhPG1jETEEbfdgbNtJf1LyMg== } object-filter@1.0.2: - resolution: {integrity: sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==} + resolution: + { integrity: sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA== } object-hash@1.3.1: - resolution: {integrity: sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==} - engines: {node: '>= 0.10.0'} + resolution: + { integrity: sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== } + engines: { node: ">= 0.10.0" } object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== } + engines: { node: ">= 0.4" } object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== } + engines: { node: ">= 0.4" } object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } + engines: { node: ">= 0.4" } object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== } + engines: { node: ">=0.10.0" } object.assign@4.1.0: - resolution: {integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== } + engines: { node: ">= 0.4" } object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== } + engines: { node: ">= 0.4" } object.defaults@1.1.0: - resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== } + engines: { node: ">=0.10.0" } object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== } + engines: { node: ">= 0.4" } object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== } + engines: { node: ">= 0.4" } object.getownpropertydescriptors@2.1.9: - resolution: {integrity: sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g== } + engines: { node: ">= 0.4" } object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== } + engines: { node: ">= 0.4" } object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== } + engines: { node: ">=0.10.0" } object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== } + engines: { node: ">= 0.4" } obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + resolution: + { integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== } - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + obug@2.1.3: + resolution: + { integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg== } + engines: { node: ">=12.20.0" } ofetch@1.5.1: - resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + resolution: + { integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA== } ofetch@2.0.0-alpha.3: - resolution: {integrity: sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==} + resolution: + { integrity: sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA== } ohash@2.0.11: - resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + resolution: + { integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== } on-change@6.0.2: - resolution: {integrity: sha512-08+12qcOVEA0fS9g/VxKS27HaT94nRutUT77J2dr8zv/unzXopvhBuF8tNLWsoLQ5IgrQ6eptGeGqUYat82U1w==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-08+12qcOVEA0fS9g/VxKS27HaT94nRutUT77J2dr8zv/unzXopvhBuF8tNLWsoLQ5IgrQ6eptGeGqUYat82U1w== } + engines: { node: ">=20" } on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== } + engines: { node: ">= 0.8" } on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== } + engines: { node: ">= 0.8" } on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== } + engines: { node: ">= 0.8" } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + resolution: + { integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== } onetime@2.0.1: - resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== } + engines: { node: ">=4" } onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } + engines: { node: ">=6" } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== } + engines: { node: ">=12" } onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== } + engines: { node: ">=18" } oniguruma-parser@0.12.2: - resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + resolution: + { integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw== } oniguruma-to-es@3.1.1: - resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + resolution: + { integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ== } oniguruma-to-es@4.3.6: - resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + resolution: + { integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA== } only@0.0.2: - resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + resolution: + { integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== } open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== } + engines: { node: ">=18" } open@11.0.0: - resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw== } + engines: { node: ">=20" } open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== } + engines: { node: ">=8" } open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== } + engines: { node: ">=12" } opencollective-postinstall@2.0.3: - resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} + resolution: + { integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== } hasBin: true opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + resolution: + { integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== } hasBin: true optimize-css-assets-webpack-plugin@6.0.1: - resolution: {integrity: sha512-BshV2UZPfggZLdUfN3zFBbG4sl/DynUI+YCB6fRRDWaqO2OiWN8GPcp4Y0/fEV6B3k9Hzyk3czve3V/8B/SzKQ==} + resolution: + { integrity: sha512-BshV2UZPfggZLdUfN3zFBbG4sl/DynUI+YCB6fRRDWaqO2OiWN8GPcp4Y0/fEV6B3k9Hzyk3czve3V/8B/SzKQ== } peerDependencies: webpack: ^4.0.0 optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== } + engines: { node: ">= 0.8.0" } optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } + engines: { node: ">= 0.8.0" } opts@2.0.2: - resolution: {integrity: sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==} + resolution: + { integrity: sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg== } ora@3.4.0: - resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== } + engines: { node: ">=6" } ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== } + engines: { node: ">=10" } ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== } + engines: { node: ">=10" } ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} - - ora@9.3.0: - resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw== } + engines: { node: ">=18" } ora@9.4.0: - resolution: {integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ== } + engines: { node: ">=20" } ordered-binary@1.6.1: - resolution: {integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==} + resolution: + { integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w== } org-regex@1.0.0: - resolution: {integrity: sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ== } + engines: { node: ">=8" } os-browserify@0.3.0: - resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + resolution: + { integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== } os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== } + engines: { node: ">=0.10.0" } os-locale@6.0.2: - resolution: {integrity: sha512-qIb8bzRqaN/vVqEYZ7lTAg6PonskO7xOmM7OClD28F6eFa4s5XGe4bGpHUHMoCHbNNuR0pDYFeSLiW5bnjWXIA==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-qIb8bzRqaN/vVqEYZ7lTAg6PonskO7xOmM7OClD28F6eFa4s5XGe4bGpHUHMoCHbNNuR0pDYFeSLiW5bnjWXIA== } + engines: { node: ">=12.20" } os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } + engines: { node: ">=0.10.0" } own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== } + engines: { node: ">= 0.4" } oxc-minify@0.125.0: - resolution: {integrity: sha512-xOmqaUG+zxCEq98fsEnLODO05HmnyQM4tkwKFKtELfHCZFOAoI9U4x8hdNeeWQvrVb/BXu6cr8zPbhixRYo3tA==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-minify@0.131.0: - resolution: {integrity: sha512-Ch0sBbrqZpeNZUMhVDbU2yrTWTVrUT/MkXb9E2DAc+hbhxbbO8D/XklUtfPP86/iqrkvl178+YQvh5u8Of1mUg==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-parser@0.130.0: - resolution: {integrity: sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-xOmqaUG+zxCEq98fsEnLODO05HmnyQM4tkwKFKtELfHCZFOAoI9U4x8hdNeeWQvrVb/BXu6cr8zPbhixRYo3tA== } + engines: { node: ^20.19.0 || >=22.12.0 } - oxc-parser@0.131.0: - resolution: {integrity: sha512-SJ3/7ZPbgie8dr5Z9BI/M51zZbpXba+hRSG0MDzVwMW5CRQg2fjYE0jHGlLX4eeiibGgC/mzoDFKSDHwVZEHRQ==} - engines: {node: ^20.19.0 || >=22.12.0} + oxc-minify@0.132.0: + resolution: + { integrity: sha512-7h3fOlgDwkIYxxKfGwCNejaLhH90Pvx+fttdPN7nRbWHxm6QSYcxW3IKjfxQVUeg+z1X2HZdOSY3rHkVqgxH1g== } + engines: { node: ^20.19.0 || >=22.12.0 } - oxc-resolver@11.19.1: - resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} + oxc-minify@0.133.0: + resolution: + { integrity: sha512-6bNsYU+5WNIaNHB16zHnL24cUaJuKiPzUvjENoMale3+U8ZBMbGYgdgt//frx0ge7UcgEGIpqtukGGNPT0kxfQ== } + engines: { node: ^20.19.0 || >=22.12.0 } - oxc-transform@0.131.0: - resolution: {integrity: sha512-ml0/elXPNnDnuHo3VHmEMN2fnybmKx7YL+0E+gMQ0fuHRZHXYJzF6YJ01KsCWg6FXY6pbZcjm7DC3xwGHnB/BA==} - engines: {node: ^20.19.0 || >=22.12.0} + oxc-parser@0.130.0: + resolution: + { integrity: sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw== } + engines: { node: ^20.19.0 || >=22.12.0 } + + oxc-parser@0.132.0: + resolution: + { integrity: sha512-+0LAPHaqtfQlvWdpaAa09SmOaZZgP8C552xosEkGJ4+ruEwP1Vgx+sqBgcBCNfR6KDCmagGOZTde8wmAvcI/Hg== } + engines: { node: ^20.19.0 || >=22.12.0 } + + oxc-parser@0.133.0: + resolution: + { integrity: sha512-661RSx+ZcjBmjBYid+Fpp/2F5EbtildpeoZh5HdgnGs+jZ03nqQEQW8yGkt4BGyOC3OMPDQQRl8M5kqD2/g6jw== } + engines: { node: ^20.19.0 || >=22.12.0 } + + oxc-resolver@11.20.0: + resolution: + { integrity: sha512-CblytBiV/a/ZXY34dsVU2NxhIOxMXst8CvDCtyBelVITgd7PLrKzbEbA6oKLdPjvDKDzCiW48qzmzZ+mYaqn+g== } + + oxc-transform@0.132.0: + resolution: + { integrity: sha512-DmP0+4kzpXoMvv08qPCD4aI6mAIzrEq15Yt9e6wXCNtOz6jEDHPpueusDa2/pvjRAqtNV37YxUUeX7cfCI4dpA== } + engines: { node: ^20.19.0 || >=22.12.0 } + + oxc-transform@0.133.0: + resolution: + { integrity: sha512-9lt2b+hkG6yqe0fUDMHhMk7rgI9uTjNxU9wauQiYnHzc4kZI8JP/OhBqXTIJQTrqRJ8CkSH3O5AhQ13ke28yNg== } + engines: { node: ^20.19.0 || >=22.12.0 } oxc-walker@1.0.0: - resolution: {integrity: sha512-eMsHflAGfOskpWxtp9xP/f5b96XLEU8ifTd2gOOCkdux9HMxKGy5S1ru0Gh1B3aPu+YbfmWUUVkcb7MrZz3XyQ==} + resolution: + { integrity: sha512-eMsHflAGfOskpWxtp9xP/f5b96XLEU8ifTd2gOOCkdux9HMxKGy5S1ru0Gh1B3aPu+YbfmWUUVkcb7MrZz3XyQ== } peerDependencies: - oxc-parser: '>=0.98.0' - rolldown: '>=1.0.0' + oxc-parser: ">=0.98.0" + rolldown: ">=1.0.0" peerDependenciesMeta: oxc-parser: optional: true @@ -34553,922 +39589,1138 @@ packages: optional: true p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== } + engines: { node: ">=6" } p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== } + engines: { node: ">=4" } p-defer@4.0.1: - resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A== } + engines: { node: ">=12" } p-event@4.2.0: - resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== } + engines: { node: ">=8" } p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== } + engines: { node: ">=4" } p-finally@2.0.1: - resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== } + engines: { node: ">=8" } p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== } + engines: { node: ">=4" } p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } + engines: { node: ">=6" } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } + engines: { node: ">=10" } p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-limit@7.3.0: - resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw== } + engines: { node: ">=20" } p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== } + engines: { node: ">=4" } p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== } + engines: { node: ">=6" } p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } + engines: { node: ">=8" } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } + engines: { node: ">=10" } p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-map-series@2.1.0: - resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== } + engines: { node: ">=8" } p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== } + engines: { node: ">=6" } p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== } + engines: { node: ">=8" } p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== } + engines: { node: ">=10" } p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ== } + engines: { node: ">=18" } p-memoize@8.0.0: - resolution: {integrity: sha512-jdZ10MCxavHoIHwJ5oweOtYy6ElPixEHaMkz0AuaEMovR1MRpVvYFzIEHRxgMEpXYzNpRVByFAniAzwmd1/uug==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-jdZ10MCxavHoIHwJ5oweOtYy6ElPixEHaMkz0AuaEMovR1MRpVvYFzIEHRxgMEpXYzNpRVByFAniAzwmd1/uug== } + engines: { node: ">=20" } p-pipe@3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== } + engines: { node: ">=8" } p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== } + engines: { node: ">=8" } p-queue@9.3.0: - resolution: {integrity: sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang== } + engines: { node: ">=20" } p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== } + engines: { node: ">=8" } p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== } + engines: { node: ">=8" } p-retry@6.2.1: - resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} - engines: {node: '>=16.17'} + resolution: + { integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== } + engines: { node: ">=16.17" } p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== } + engines: { node: ">=8" } p-timeout@7.0.1: - resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg== } + engines: { node: ">=20" } p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== } + engines: { node: ">=4" } p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } + engines: { node: ">=6" } p-waterfall@2.1.1: - resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== } + engines: { node: ">=8" } pac-proxy-agent@7.2.0: - resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== } + engines: { node: ">= 14" } pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== } + engines: { node: ">= 14" } package-directory@8.2.0: - resolution: {integrity: sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw== } + engines: { node: ">=18" } package-hash@4.0.0: - resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== } + engines: { node: ">=8" } package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + resolution: + { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== } package-json@10.0.1: - resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg== } + engines: { node: ">=18" } package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== } + engines: { node: ">=8" } package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + resolution: + { integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA== } pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hasBin: true pacote@21.0.1: - resolution: {integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true - pacote@21.3.1: - resolution: {integrity: sha512-O0EDXi85LF4AzdjG74GUwEArhdvawi/YOHcsW6IijKNj7wm8IvEWNF5GnfuxNpQ/ZpO3L37+v8hqdVh8GgWYhg==} - engines: {node: ^20.17.0 || >=22.9.0} + pacote@21.5.0: + resolution: + { integrity: sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true - pacote@21.5.0: - resolution: {integrity: sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==} - engines: {node: ^20.17.0 || >=22.9.0} + pacote@21.5.1: + resolution: + { integrity: sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + resolution: + { integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== } parallel-transform@1.2.0: - resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} + resolution: + { integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== } param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} + resolution: + { integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== } param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + resolution: + { integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } + engines: { node: ">=6" } parse-asn1@5.1.9: - resolution: {integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg== } + engines: { node: ">= 0.10" } parse-author@2.0.0: - resolution: {integrity: sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw== } + engines: { node: ">=0.10.0" } parse-cache-control@1.0.1: - resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + resolution: + { integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== } parse-conflict-json@4.0.0: - resolution: {integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ== } + engines: { node: ^18.17.0 || >=20.5.0 } parse-entities@1.2.2: - resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} + resolution: + { integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== } parse-filepath@1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== } + engines: { node: ">=0.8" } parse-git-config@3.0.0: - resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA== } + engines: { node: ">=8" } parse-imports-exports@0.2.4: - resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + resolution: + { integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ== } parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== } + engines: { node: ">=4" } parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } + engines: { node: ">=8" } parse-json@8.3.0: - resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ== } + engines: { node: ">=18" } parse-latin@7.0.0: - resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + resolution: + { integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ== } parse-ms@4.0.0: - resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== } + engines: { node: ">=18" } parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== } + engines: { node: ">= 0.10" } parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== } + engines: { node: ">=0.10.0" } parse-path@7.1.0: - resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} + resolution: + { integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw== } parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + resolution: + { integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== } parse-statements@1.0.11: - resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + resolution: + { integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA== } parse-static-imports@1.1.0: - resolution: {integrity: sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==} + resolution: + { integrity: sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA== } parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + resolution: + { integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== } - parse5-html-rewriting-stream@8.0.0: - resolution: {integrity: sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==} + parse5-html-rewriting-stream@8.0.1: + resolution: + { integrity: sha512-NaRku2aMpUN1Sh1Gyk1KWUh2A7EJx2c6qYzvwsPtqhoHoaURshdrceYK3LunVCm3WHhm6FS7Vcczbvdh3/UIVw== } parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + resolution: + { integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== } parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + resolution: + { integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== } parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + resolution: + { integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== } parse5-sax-parser@8.0.0: - resolution: {integrity: sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==} + resolution: + { integrity: sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw== } parse5@4.0.0: - resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} + resolution: + { integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== } parse5@5.1.0: - resolution: {integrity: sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==} + resolution: + { integrity: sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== } parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + resolution: + { integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== } parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + resolution: + { integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== } parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + resolution: + { integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== } parse5@8.0.1: - resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + resolution: + { integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw== } parsel-js@1.2.2: - resolution: {integrity: sha512-AVJMlwQ4bL2Y0VvYJGk+Fp7eX4SCH2uFoNApmn4yKWACUewZ+alwW3tyoe1r5Z3aLYQTuAuPZIyGghMfO/Tlxw==} + resolution: + { integrity: sha512-AVJMlwQ4bL2Y0VvYJGk+Fp7eX4SCH2uFoNApmn4yKWACUewZ+alwW3tyoe1r5Z3aLYQTuAuPZIyGghMfO/Tlxw== } parseqs@0.0.6: - resolution: {integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==} + resolution: + { integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== } parseuri@0.0.6: - resolution: {integrity: sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==} + resolution: + { integrity: sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== } parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== } + engines: { node: ">= 0.8" } pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + resolution: + { integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== } pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== } + engines: { node: ">=0.10.0" } path-browserify@0.0.1: - resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} + resolution: + { integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== } path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + resolution: + { integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== } path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + resolution: + { integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== } path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + resolution: + { integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== } path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== } + engines: { node: ">=4" } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } + engines: { node: ">=8" } path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } + engines: { node: ">=0.10.0" } path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + resolution: + { integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== } path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== } + engines: { node: ">=4" } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } + engines: { node: ">=8" } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== } + engines: { node: ">=12" } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } path-posix@1.0.0: - resolution: {integrity: sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==} + resolution: + { integrity: sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA== } path-root-regex@0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== } + engines: { node: ">=0.10.0" } path-root@0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== } + engines: { node: ">=0.10.0" } path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + resolution: + { integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== } + engines: { node: ">=16 || 14 >=14.18" } path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} - engines: {node: 18 || 20 || >=22} + resolution: + { integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== } + engines: { node: 18 || 20 || >=22 } path-to-regexp@0.1.13: - resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} + resolution: + { integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA== } path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + resolution: + { integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== } path-to-regexp@8.4.2: - resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + resolution: + { integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA== } path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== } + engines: { node: ">=4" } path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } + engines: { node: ">=8" } path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ== } + engines: { node: ">=18" } path@0.12.7: - resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} + resolution: + { integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== } pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + resolution: + { integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== } pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + resolution: + { integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== } pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + resolution: + { integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== } - pbkdf2@3.1.5: - resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} - engines: {node: '>= 0.10'} + pbkdf2@3.1.6: + resolution: + { integrity: sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g== } + engines: { node: ">= 0.10" } pe-library@1.0.1: - resolution: {integrity: sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==} - engines: {node: '>=14', npm: '>=7'} + resolution: + { integrity: sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg== } + engines: { node: ">=14", npm: ">=7" } pe-library@2.0.1: - resolution: {integrity: sha512-/qjYFqNSlq59B5DI36am++5/3gMgh02QnzpYigrwrW6s+QpU0mHf09/iA4wjTu21UUxodyV7ZCetV5MiDhaN/A==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-/qjYFqNSlq59B5DI36am++5/3gMgh02QnzpYigrwrW6s+QpU0mHf09/iA4wjTu21UUxodyV7ZCetV5MiDhaN/A== } + engines: { node: ">=20" } pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + resolution: + { integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== } perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + resolution: + { integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== } perfect-debounce@2.1.0: - resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} + resolution: + { integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g== } performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + resolution: + { integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== } pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== } + engines: { node: ">=4.0.0" } pg-protocol@1.14.0: - resolution: {integrity: sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA==} + resolution: + { integrity: sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA== } pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== } + engines: { node: ">=4" } piccolore@0.1.3: - resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} + resolution: + { integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw== } picocolors@0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + resolution: + { integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== } picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: + { integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== } picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== } + engines: { node: ">=8.6" } picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== } + engines: { node: ">=12" } picomodal@3.0.0: - resolution: {integrity: sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw==} + resolution: + { integrity: sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw== } pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== } + engines: { node: ">=0.10" } hasBin: true pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== } + engines: { node: ">=0.10.0" } pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== } + engines: { node: ">=4" } pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } + engines: { node: ">=6" } pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== } + engines: { node: ">=10" } pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== } + engines: { node: ">=0.10.0" } pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== } + engines: { node: ">=0.10.0" } pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== } + engines: { node: ">= 6" } piscina@5.1.4: - resolution: {integrity: sha512-7uU4ZnKeQq22t9AsmHGD2w4OYQGonwFnTypDypaWi7Qr2EvQIFVtG8J5D/3bE7W123Wdc9+v4CZDu5hJXVCtBg==} - engines: {node: '>=20.x'} + resolution: + { integrity: sha512-7uU4ZnKeQq22t9AsmHGD2w4OYQGonwFnTypDypaWi7Qr2EvQIFVtG8J5D/3bE7W123Wdc9+v4CZDu5hJXVCtBg== } + engines: { node: ">=20.x" } + + piscina@5.2.0: + resolution: + { integrity: sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA== } + engines: { node: ">=20.x" } pkce-challenge@5.0.1: - resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} - engines: {node: '>=16.20.0'} + resolution: + { integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ== } + engines: { node: ">=16.20.0" } pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== } + engines: { node: ">=6" } pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } + engines: { node: ">=8" } pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== } + engines: { node: ">=14.16" } pkg-dir@8.0.0: - resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ== } + engines: { node: ">=18" } - pkg-entry-points@1.1.1: - resolution: {integrity: sha512-BhZa7iaPmB4b3vKIACoppyUoYn8/sFs17VJJtzrzPZvEnN2nqrgg911tdL65lA2m1ml6UI3iPeYbZQ4VXpn1mA==} + pkg-entry-points@1.1.2: + resolution: + { integrity: sha512-bmmM+SdLXNNetFr4o53QiiZRZicls2apmzj8HRpo4bU+3nJHiPO/omv8TXHIOzTcirua3YBAwTlKE+7zkICh4g== } + engines: { node: ">=20.19.5" } pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + resolution: + { integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== } pkg-types@2.3.1: - resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + resolution: + { integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg== } pkg-up@2.0.0: - resolution: {integrity: sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg== } + engines: { node: ">=4" } pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== } + engines: { node: ">=8" } pkijs@3.4.0: - resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} - engines: {node: '>=16.0.0'} - - playwright-core@1.60.0: - resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw== } + engines: { node: ">=16.0.0" } + + playwright-core@1.61.0: + resolution: + { integrity: sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA== } + engines: { node: ">=18" } hasBin: true - playwright@1.60.0: - resolution: {integrity: sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==} - engines: {node: '>=18'} + playwright@1.61.0: + resolution: + { integrity: sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ== } + engines: { node: ">=18" } hasBin: true please-upgrade-node@3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + resolution: + { integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== } plist@3.1.1: - resolution: {integrity: sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==} - engines: {node: '>=10.4.0'} + resolution: + { integrity: sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA== } + engines: { node: ">=10.4.0" } plist@5.0.0: - resolution: {integrity: sha512-20N+g1DvMm/DFRbsvER7tT4wDryq0WunK7VMkDaiJcKNapAnUMkTsAnacFYf8n420F4Hf6/hefgmJRkMb1M0fg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-20N+g1DvMm/DFRbsvER7tT4wDryq0WunK7VMkDaiJcKNapAnUMkTsAnacFYf8n420F4Hf6/hefgmJRkMb1M0fg== } + engines: { node: ">=18" } plur@4.0.0: - resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg== } + engines: { node: ">=10" } pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== } + engines: { node: ">=4" } pn@1.1.0: - resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==} + resolution: + { integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== } pnp-webpack-plugin@1.7.0: - resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== } + engines: { node: ">=6" } polyfills-loader@1.7.6: - resolution: {integrity: sha512-AiLIgmGFmzcvsqewyKsqWb7H8CnWNTSQBoM0u+Mauzmp0DsjObXmnZdeqvTn0HNwc1wYHHTOta82WjSjG341eQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-AiLIgmGFmzcvsqewyKsqWb7H8CnWNTSQBoM0u+Mauzmp0DsjObXmnZdeqvTn0HNwc1wYHHTOta82WjSjG341eQ== } + engines: { node: ">=0.10.0" } portfinder@1.0.38: - resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} - engines: {node: '>= 10.12'} + resolution: + { integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg== } + engines: { node: ">= 10.12" } posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== } + engines: { node: ">=0.10.0" } possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== } + engines: { node: ">= 0.4" } postcss-attribute-case-insensitive@6.0.3: - resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-calc@10.1.1: - resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} - engines: {node: ^18.12 || ^20.9 || >=22.0} + resolution: + { integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw== } + engines: { node: ^18.12 || ^20.9 || >=22.0 } peerDependencies: postcss: ^8.4.38 postcss-calc@7.0.5: - resolution: {integrity: sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==} + resolution: + { integrity: sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== } postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + resolution: + { integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== } peerDependencies: postcss: ^8.2.2 postcss-calc@9.0.1: - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.2.2 postcss-clamp@4.1.0: - resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} - engines: {node: '>=7.6.0'} + resolution: + { integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== } + engines: { node: ">=7.6.0" } peerDependencies: postcss: ^8.4.6 postcss-color-functional-notation@6.0.14: - resolution: {integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-color-hex-alpha@9.0.4: - resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-color-rebeccapurple@9.0.3: - resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-colormin@4.0.3: - resolution: {integrity: sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== } + engines: { node: ">=6.9.0" } postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-colormin@6.1.0: - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-colormin@7.0.10: - resolution: {integrity: sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-colormin@8.0.0: - resolution: {integrity: sha512-KKwMmsSgsmdYXqrjQeqL3tnuIFtctiR1GEMHdjNpDpz/TCRkkkok2mMcreK2zVV3l7POWOmAkR2xYHUpRUK1DA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-colormin@8.0.1: + resolution: + { integrity: sha512-qBY4ABQ6d8/mk5RRZHwMllrZMxeMey3azVY2dZUEk+RgiUC4ARdPR3/AITzNqqKTbvW/3y/MJKinDrzwqn8RDQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-convert-values@4.0.1: - resolution: {integrity: sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== } + engines: { node: ">=6.9.0" } postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-convert-values@6.1.0: - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-convert-values@7.0.12: - resolution: {integrity: sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-convert-values@8.0.0: - resolution: {integrity: sha512-Ohtj3rNZWawTRePv5NCHTy8VJSdJ/G/uKuxcxJreOMichuqcT6uEl2TAnopVeJCJ/c13jaSqg7m63yFLM5zBsA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-convert-values@8.0.1: + resolution: + { integrity: sha512-IdOSIX3BzfMvCc1TAHIha2gfy17xnb5vfML8e2BIKARnFOghksESfaSAB/3CXgyLfMozZAbTRPVQF5dbuKOidw== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-custom-media@10.0.8: - resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-custom-properties@13.3.12: - resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-custom-selectors@7.1.12: - resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-dir-pseudo-class@8.0.1: - resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-discard-comments@4.0.2: - resolution: {integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== } + engines: { node: ">=6.9.0" } postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-discard-comments@6.0.2: - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-comments@7.0.8: - resolution: {integrity: sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-discard-comments@8.0.0: - resolution: {integrity: sha512-zGpvVLj2sbagEp+BTVETvAfkZdGVA6rALNujDK/WTIjdf1/rQOxOG8BBzkI8UQgnw8SkL6xffAfbtGMHFypadw==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-discard-comments@8.0.1: + resolution: + { integrity: sha512-FDvzm3tXlEsQBO2XQgnta5ugsAqwBrgWH+j5QgXpegEIDYA0VPnZg2aP7LtmWtC49POskeIhXesFiU/k3NyFHA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-discard-duplicates@4.0.2: - resolution: {integrity: sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== } + engines: { node: ">=6.9.0" } postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-discard-duplicates@6.0.3: - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-duplicates@7.0.4: - resolution: {integrity: sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-discard-duplicates@8.0.0: - resolution: {integrity: sha512-zjRyYmNGI3PTipKBBtCgExlmZXQn49KvKoaiNnR2g+iXxeNk7GY5Js2ULtZXPrCYeqjPagrzKIBNcBocvXCR7g==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-discard-duplicates@8.0.1: + resolution: + { integrity: sha512-stTDXkI8YkCUfADurQhp03oq5ynsgSx6Qrw5B1swds6oTHtAeOZ9I0SHGK8cY/VpWUsIYFDWMs3IWf9jIEfFvA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-discard-empty@4.0.1: - resolution: {integrity: sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== } + engines: { node: ">=6.9.0" } postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-discard-empty@6.0.3: - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-empty@7.0.3: - resolution: {integrity: sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-discard-empty@8.0.0: - resolution: {integrity: sha512-kxPJg6EqahbBvm+l7hpYYCtpsv8dlz7Tv6wJXUXZaeuY0WGS61DxfGdZR4uVB/Cx+yi3iOHQVSqpSHKMFaBg6Q==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-discard-empty@8.0.1: + resolution: + { integrity: sha512-Zv4fM1Yfhk71tbt6gfiptbL6jDHi+7apSnaMeaO9n1uET+1embrXQw5m93Zp5x28UyQSuv+AVkFY193jdwZ33w== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-discard-overridden@4.0.1: - resolution: {integrity: sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== } + engines: { node: ">=6.9.0" } postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-discard-overridden@6.0.2: - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-overridden@7.0.3: - resolution: {integrity: sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-discard-overridden@8.0.0: - resolution: {integrity: sha512-sW2OWH3l9p0FmBSVr228uztFseqroZxwgD7SGF0Ks0dRPDttSo3P8FK5ZBLtWBH2A5+chpB0J2fB/T8heKHLBw==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-discard-overridden@8.0.1: + resolution: + { integrity: sha512-ykt4fvrC7yYGzbxKyqBVjDCbsjF/11JgWK8enrdkobRyqqEtb/uDUCbKOGdvrK8X7BrShW8Lv5cCRNbdkNHGkQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-double-position-gradients@5.0.7: - resolution: {integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-focus-visible@9.0.1: - resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-focus-within@8.0.1: - resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-font-variant@5.0.0: - resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} + resolution: + { integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== } peerDependencies: postcss: ^8.1.0 postcss-gap-properties@5.0.1: - resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-image-set-function@6.0.3: - resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-import-resolver@2.0.0: - resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} + resolution: + { integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== } postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 postcss-import@16.1.1: - resolution: {integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ== } + engines: { node: ">=18.0.0" } peerDependencies: postcss: ^8.0.0 postcss-lab-function@6.0.19: - resolution: {integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== } + engines: { node: ">= 10" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -35476,11 +40728,12 @@ packages: optional: true postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g== } + engines: { node: ">= 18" } peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' + jiti: ">=1.21.0" + postcss: ">=8.0.9" tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: @@ -35494,818 +40747,923 @@ packages: optional: true postcss-loader@4.3.0: - resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== } + engines: { node: ">= 10.13.0" } peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^4.0.0 || ^5.0.0 postcss-loader@6.2.1: - resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== } + engines: { node: ">= 12.13.0" } peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - postcss-loader@8.2.0: - resolution: {integrity: sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - postcss-logical@7.0.1: - resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + resolution: + { integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== } postcss-merge-longhand@4.0.11: - resolution: {integrity: sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== } + engines: { node: ">=6.9.0" } postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-merge-longhand@6.0.5: - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-merge-longhand@7.0.7: - resolution: {integrity: sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-merge-longhand@8.0.0: - resolution: {integrity: sha512-YDmAmQ8H+ljfomVpSXvr9NA0GP01fraQJqjWBYoMVGg6rOT+PJLwPyeVo2ekn4WB4ZVSH5ddtK3DTRxbz6CFzg==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-merge-longhand@8.0.1: + resolution: + { integrity: sha512-huTfSYgQ13O81SFvAuOi7GWnO48vvybjj3xF+X3qUoPjzvvaLpJH5DcUqqXcwOEulZUcvaV4s0V9WtWs+IAQPA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-merge-rules@4.0.3: - resolution: {integrity: sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== } + engines: { node: ">=6.9.0" } postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-merge-rules@6.1.1: - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-merge-rules@7.0.11: - resolution: {integrity: sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-merge-rules@8.0.0: - resolution: {integrity: sha512-bgstL5mpi41dDpnYGDUcI3M814NWkCMcIWpwDqEHXkHg3BT7b4XRAfNEuwJncZOVn/67kVKvWzhfv/7xyrp2uQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-merge-rules@8.0.1: + resolution: + { integrity: sha512-o3rk4UpnPNg469tklYwbR/NtvKc/f/wJiVDTnNQ/EFPw/LeiPOHUCvV1GIBQIZHGrBAYdPjToK6a+ojYprsrxQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-minify-font-values@4.0.2: - resolution: {integrity: sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== } + engines: { node: ">=6.9.0" } postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-minify-font-values@6.1.0: - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-font-values@7.0.3: - resolution: {integrity: sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-minify-font-values@8.0.0: - resolution: {integrity: sha512-EnOHQEnSt6oH5NrL1DMFAQuwB2IOimFXTCzc9bKfUeH1jREbqIF5MAK4gQJQOC4mPUwJt4sWifAmNZ1qLu6j3Q==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-minify-font-values@8.0.1: + resolution: + { integrity: sha512-L8Nzs/PRlBSPrLdY/7rAiU5ZN5800+2J/4LRbfyG8SJnPljmgMaXVmQiCklvRS+yObfVRNtvmk/Ean/eoYcSeg== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-minify-gradients@4.0.2: - resolution: {integrity: sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== } + engines: { node: ">=6.9.0" } postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-minify-gradients@6.0.3: - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-gradients@7.0.5: - resolution: {integrity: sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-minify-gradients@8.0.0: - resolution: {integrity: sha512-43iAnYIGk0ZjNx5X/rkIcHi6dhmu/vEjY0kqfUfxPuJRO+V7jx8uKIdcnL0dpfNoC5J9TSh3EtzLWbq0gpqnWA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-minify-gradients@8.0.1: + resolution: + { integrity: sha512-qf+4s/hZMqTwpWN2teqf6+1yvR/SZK5HgHqXYuACeJXV7ABe7AXtBEomgxagUzcN4bSnmqBh5vnIml0dYqykYg== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-minify-params@4.0.2: - resolution: {integrity: sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== } + engines: { node: ">=6.9.0" } postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-minify-params@6.1.0: - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-params@7.0.9: - resolution: {integrity: sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-minify-params@8.0.0: - resolution: {integrity: sha512-z7w4QO7G55l4vMUK1Lmx03GW7iyRLgf2V5Dz/7ioSPLnXRjeD+b7m0XfAXUGrbBYYrJ6bXPk+3LoX5u4JfAcSg==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-minify-params@8.0.1: + resolution: + { integrity: sha512-L0h3H59deFfFg0wQN1NVaS/8E/LfGvaMuZKGO7siwlG995zo3OshtQyRkqKdVqcBwAORBvZ1nDZrKPLRapYkQw== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-minify-selectors@4.0.2: - resolution: {integrity: sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== } + engines: { node: ">=6.9.0" } postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-minify-selectors@6.0.4: - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-selectors@7.1.2: - resolution: {integrity: sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-minify-selectors@8.0.1: - resolution: {integrity: sha512-c31D46811kTkQDxV1KTTow79axX6gj/01AY5G7cGZg3s31KvAwP13jEFXGAzQbJ7NvOFV1pRqEia6nrAdHU7qg==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-minify-selectors@8.0.2: + resolution: + { integrity: sha512-3icdxc/zght5UAizdwqZBDE2KOWHf1jMQCxET6iLACeNlRxfTPyXS0/COpGk8CQ2cECyaEKTRUd/i/k8Gxmz4g== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@1.2.0: - resolution: {integrity: sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==} - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 - postcss-modules-scope@1.1.0: - resolution: {integrity: sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==} - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 - postcss-modules-sync@1.0.0: - resolution: {integrity: sha512-kIDk2NYmxHshqUbjtFf1WdBij08IsvRdgDT0nOGWhvwkr8/z1piLSzxVrPt56J4DU6ON986h2H+5xcBnFhT8UQ==} - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 postcss-nesting@12.1.5: - resolution: {integrity: sha512-N1NgI1PDCiAGWPTYrwqm8wpjv0bgDmkYHH72pNsqTCv9CObxjxftdYu6AKtGN+pnJa7FQjMm3v4sp8QJbFsYdQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-N1NgI1PDCiAGWPTYrwqm8wpjv0bgDmkYHH72pNsqTCv9CObxjxftdYu6AKtGN+pnJa7FQjMm3v4sp8QJbFsYdQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-normalize-charset@4.0.1: - resolution: {integrity: sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== } + engines: { node: ">=6.9.0" } postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-charset@6.0.2: - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-charset@7.0.3: - resolution: {integrity: sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-charset@8.0.0: - resolution: {integrity: sha512-s88FUNDSUD8m0wBYvTQQcubVts6zhXwBU8zCD4vkRKiecd0v8cOjHVIF9r/i+5xzS/WG3f98qq4XsOM0JqvfLA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-charset@8.0.1: + resolution: + { integrity: sha512-xzqr36F8UeIZOvOHsf3aul+RVJCADvSwuwpMLgizqKjisHZpBfztgW0XFLBfJvz9pJgaStaOXAtGb0zLqT6B0w== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-display-values@4.0.2: - resolution: {integrity: sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== } + engines: { node: ">=6.9.0" } postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-display-values@6.0.2: - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-display-values@7.0.3: - resolution: {integrity: sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-display-values@8.0.0: - resolution: {integrity: sha512-gG2nBxD27fiw6Luinb1QYKdM/Co5GornRJgSD+JTwNH4PGKxImP0qyruDDav49aHUPLY3qrL3qN3LvybO7IzxQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-display-values@8.0.1: + resolution: + { integrity: sha512-ZDWOijOK1FFMlpgiQCUO9fCNKd7HJ9L7z9HWEq4iyubnUFWzdTSwm/LcrMbNW6iZ1oAtqeLYA0WA3xHszOI08g== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-positions@4.0.2: - resolution: {integrity: sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== } + engines: { node: ">=6.9.0" } postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-positions@6.0.2: - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-positions@7.0.4: - resolution: {integrity: sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-positions@8.0.0: - resolution: {integrity: sha512-t/wGqpehS20Ke7kc4QAsWpH+AJjUdMK/V5qV2RhrXkj8hO/fT1t1MJ8NL7sedWYk7ZqC7eISEJQonW5j0tU1MQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-positions@8.0.1: + resolution: + { integrity: sha512-uuivan2poSqbE48ST4do20dGaFUeXey9/H8rhHzoyVHB2I6BmkoVLZ/C9+BRjUlpaAFYVOoDY7epkiidzaYbvA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-repeat-style@4.0.2: - resolution: {integrity: sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== } + engines: { node: ">=6.9.0" } postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-repeat-style@6.0.2: - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-repeat-style@7.0.4: - resolution: {integrity: sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-repeat-style@8.0.0: - resolution: {integrity: sha512-3ebOmGdCYKrBYyGKc1xhj0unEnW7beZpVU7JohVeGl7mTxR+7T6egpaawTWAVsB0pEIhcsbJVOjPKCJSoRO6Zg==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-repeat-style@8.0.1: + resolution: + { integrity: sha512-q2hq5fmKxk29K6DjKA3nZ17Q2dtjhLYFNmFweKALmooUqx6UWAHF1bBoWTu/EqlJ88josb82A/J0Atj9LJUmpQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-string@4.0.2: - resolution: {integrity: sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== } + engines: { node: ">=6.9.0" } postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-string@6.0.2: - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-string@7.0.3: - resolution: {integrity: sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-string@8.0.0: - resolution: {integrity: sha512-TvWCGZ/e04Tv31uJvOUtbexkfgUnqmQ3M2P5DkAaVzvOj+BvTkG2QjpA5Y71SL1SPxJcj4M23fNh+RDVCmG8kA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-string@8.0.1: + resolution: + { integrity: sha512-+Wf+kQJhm1WgSGEAuUaswE9rdpR9QbrKRVemcVHs6rhOoOTVIdAbgaicftfYA6vLM346P8onRzkEVbFN29ktKQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-timing-functions@4.0.2: - resolution: {integrity: sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== } + engines: { node: ">=6.9.0" } postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-timing-functions@6.0.2: - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-timing-functions@7.0.3: - resolution: {integrity: sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-timing-functions@8.0.0: - resolution: {integrity: sha512-uEfaXst5Xgqxv7geYUuz6vs9mn88K2NPY2RoIzM3BMmSjsdTSeppV9x2qIgrxsisdbSqF6IVhzI2occcte3hTA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-timing-functions@8.0.1: + resolution: + { integrity: sha512-W8/tvwRlm3T+yjGkg0IRTF4bvHj0vILYr/LOogCrJKHz2ey2HFRwfsAA8Bk9N4BGR7z7WmmDu/KzzwhJ6FoGPQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-unicode@4.0.1: - resolution: {integrity: sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== } + engines: { node: ">=6.9.0" } postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-unicode@6.1.0: - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-unicode@7.0.9: - resolution: {integrity: sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-unicode@8.0.0: - resolution: {integrity: sha512-+WYngZaChEeTHZmWhmKtnJ4gTzWdINEaFcgWBnu6WdVu8Ftim8OBTcw768DuCC/3Aax9bZ9WkwrLGHym2Lzf+A==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-unicode@8.0.1: + resolution: + { integrity: sha512-Ad0YHNRBp4WHEOYUM/4wL/8MoL2fimEF8se/0q+Rt/owMzYpbxsypC1P8fN/oluwoRmRKdNVX7X2oycEobPWcQ== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-url@4.0.1: - resolution: {integrity: sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== } + engines: { node: ">=6.9.0" } postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-url@6.0.2: - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-url@7.0.3: - resolution: {integrity: sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-url@8.0.0: - resolution: {integrity: sha512-4Mz9hZHn/QIB+YtFqTXrDmE2193GYxGb3F8uMfLvMicaEXCCUlDIJ658gFFJbqEGl9FYzwPtRiuNgbwlO9kkBg==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-url@8.0.1: + resolution: + { integrity: sha512-tkYcip6pCDY806xuxpJYqMW2M3/623jzGFJmz3m5Us47q8P28+gbRZxaea3Rr/CmwwLUiVlh+BTGYwQ6gvaP8A== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-normalize-whitespace@4.0.2: - resolution: {integrity: sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== } + engines: { node: ">=6.9.0" } postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-normalize-whitespace@6.0.2: - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-whitespace@7.0.3: - resolution: {integrity: sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-normalize-whitespace@8.0.0: - resolution: {integrity: sha512-V1f8tYnwIP5tscOXQFTKK8Y5EJ+R2GMpFJ6FjzwoKoQnhbqQy3IeSrDjJJb8JjVos8ut6Osi80Zybpayv/XjIQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-normalize-whitespace@8.0.1: + resolution: + { integrity: sha512-XzORadNfSrKWDZZpgAEHPKINKx8r9r9RIfE9c70g/HThdpbmPHhDYCodHSVESDxmKeySAYw1p4liuBCf7j6LyA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-opacity-percentage@2.0.0: - resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.2 postcss-ordered-values@4.1.2: - resolution: {integrity: sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== } + engines: { node: ">=6.9.0" } postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-ordered-values@6.0.2: - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-ordered-values@7.0.4: - resolution: {integrity: sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-ordered-values@8.0.0: - resolution: {integrity: sha512-Dg9+itb6lmD0bxqhQyHCtXAwYRh0wUrx6Mp4/BNXgkLoJmdYMmWi+V+Pypw79Q6iQhxA8KFMHqLBITQJV2gKMA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-ordered-values@8.0.1: + resolution: + { integrity: sha512-OLXq5lR1yk3KWQ1FPK6aWjFFdktHE9f9kb8cnt4LmIw7w30DnzgD9+sOVYJc5HenkWCX8i1MJhhFwmqc/GYqLg== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-overflow-shorthand@5.0.1: - resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-page-break@3.0.4: - resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + resolution: + { integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== } peerDependencies: postcss: ^8 postcss-place@9.0.1: - resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-prefix-selector@1.16.1: - resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==} + resolution: + { integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ== } peerDependencies: - postcss: '>4 <9' + postcss: ">4 <9" postcss-preset-env@9.6.0: - resolution: {integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-pseudo-class-any-link@9.0.2: - resolution: {integrity: sha512-HFSsxIqQ9nA27ahyfH37cRWGk3SYyQLpk0LiWw/UGMV4VKT5YG2ONee4Pz/oFesnK0dn2AjcyequDbIjKJgB0g==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-HFSsxIqQ9nA27ahyfH37cRWGk3SYyQLpk0LiWw/UGMV4VKT5YG2ONee4Pz/oFesnK0dn2AjcyequDbIjKJgB0g== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-reduce-initial@4.0.3: - resolution: {integrity: sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== } + engines: { node: ">=6.9.0" } postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-reduce-initial@6.1.0: - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-reduce-initial@7.0.9: - resolution: {integrity: sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-reduce-initial@8.0.0: - resolution: {integrity: sha512-DChcE9d528AKrlpCTHjhsAiOsWCk4H9ApHPS1QqRT3praObWTiWyn6W1UddGpc46K9LQnHwUu4YwaPUukGtXVA==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-reduce-initial@8.0.1: + resolution: + { integrity: sha512-+aQsR6+61KRoIfcFNLP3v9RM7+0iYOTtPnjl1wr6JqMW1zx6S+t2ktHRefXwacFdHIDj5+ETG0KY7K3+SGQ4Nw== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-reduce-transforms@4.0.2: - resolution: {integrity: sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== } + engines: { node: ">=6.9.0" } postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-reduce-transforms@6.0.2: - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-reduce-transforms@7.0.3: - resolution: {integrity: sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-reduce-transforms@8.0.0: - resolution: {integrity: sha512-cLZT0som7vvumQT9XQCnSKOSnRinNQZd1Hm+J723Ney13E8CIydDhw6JwzsjPtgnYThTqn9Q45906gz6wxaAsw==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-reduce-transforms@8.0.1: + resolution: + { integrity: sha512-x71slHVykiFi5RuKEXM0wgYpY2PngC78x6R8TnZhHF3lhqt+u/w3MGwYLX+2t5O87ssRiMfEAhQH+3J4QwVzCw== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-replace-overflow-wrap@4.0.0: - resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} + resolution: + { integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== } peerDependencies: postcss: ^8.0.3 postcss-resolve-nested-selector@0.1.6: - resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} - - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 + resolution: + { integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== } postcss-safe-parser@7.0.1: - resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} - engines: {node: '>=18.0'} + resolution: + { integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== } + engines: { node: ">=18.0" } peerDependencies: postcss: ^8.4.31 postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} + resolution: + { integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== } + engines: { node: ">=12.0" } peerDependencies: postcss: ^8.4.29 postcss-selector-not@7.0.2: - resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA== } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.4 postcss-selector-parser@3.1.2: - resolution: {integrity: sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== } + engines: { node: ">=8" } - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} + postcss-selector-parser@6.1.4: + resolution: + { integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ== } + engines: { node: ">=4" } - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} + postcss-selector-parser@7.1.4: + resolution: + { integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg== } + engines: { node: ">=4" } postcss-svgo@4.0.3: - resolution: {integrity: sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== } + engines: { node: ">=6.9.0" } postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-svgo@6.0.3: - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} - engines: {node: ^14 || ^16 || >= 18} + resolution: + { integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== } + engines: { node: ^14 || ^16 || >= 18 } peerDependencies: postcss: ^8.4.31 postcss-svgo@7.1.3: - resolution: {integrity: sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + resolution: + { integrity: sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw== } + engines: { node: ^18.12.0 || ^20.9.0 || >= 18 } peerDependencies: postcss: ^8.5.13 - postcss-svgo@8.0.0: - resolution: {integrity: sha512-Q2fMSYEiNE1ioDc/3sxvI24NdgA/MJno2XLNpOxgv8aCcJbym8mZY10/lDY5+AWCIc3Aiqzy2Wcp9/zaIXBZgQ==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-svgo@8.0.1: + resolution: + { integrity: sha512-HpnvWii7W0/FPrsejJa6ZTi0kNtTJP/Iba7CUMPX0xPV6QpnndOp+SDP74tFtgjA2cYKYNWJPOlmLXMsvi/9yA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-unique-selectors@4.0.1: - resolution: {integrity: sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== } + engines: { node: ">=6.9.0" } postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 postcss-unique-selectors@6.0.4: - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-unique-selectors@7.0.7: - resolution: {integrity: sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - postcss-unique-selectors@8.0.0: - resolution: {integrity: sha512-iObuolUX+ITJfMU2QQFQdh31JgSjNLPNjVs6YGAqBHvOvAWXMMNget6donQl83aQaeS32i5XeKZURUW/WBxIUw==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + postcss-unique-selectors@8.0.1: + resolution: + { integrity: sha512-+xvKI5+/Cl8yYQwxDV39Uhuc4WV951xngFvPPjiPj2NIbIfm6vbbRTXblyw0FioLkIoGlw+7qUcY1h2YhaZYgw== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 postcss-url@10.1.4: - resolution: {integrity: sha512-/oBzyLOHQvXvVr/7bzZOFD5lYTy1nomVE4aMA9eY5KQsHfWLDIzb86q8XoUsmrj2xKoGYMAvd884EzJEQzuXIw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-/oBzyLOHQvXvVr/7bzZOFD5lYTy1nomVE4aMA9eY5KQsHfWLDIzb86q8XoUsmrj2xKoGYMAvd884EzJEQzuXIw== } + engines: { node: ">=10" } peerDependencies: postcss: ^8.0.0 postcss-urlrebase@1.4.0: - resolution: {integrity: sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA==} + resolution: + { integrity: sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA== } peerDependencies: postcss: ^8.3.0 postcss-value-parser@3.3.1: - resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} + resolution: + { integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== } postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@5.2.18: - resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} - engines: {node: '>=0.12'} - - postcss@6.0.23: - resolution: {integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== } postcss@7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== } + engines: { node: ">=6.0.0" } postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.12: - resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== } + engines: { node: ^10 || ^12 || >=14 } postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== } + engines: { node: ^10 || ^12 || >=14 } postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== } + engines: { node: ">=4" } postgres-bytea@1.0.1: - resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ== } + engines: { node: ">=0.10.0" } postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== } + engines: { node: ">=0.10.0" } postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== } + engines: { node: ">=0.10.0" } + + posthtml-match-helper@2.0.3: + resolution: + { integrity: sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw== } + engines: { node: ">=18" } + peerDependencies: + posthtml: ^0.16.6 posthtml-parser@0.11.0: - resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== } + engines: { node: ">=12" } posthtml-render@3.0.0: - resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==} - engines: {node: '>=12'} - - posthtml-urls@1.0.0: - resolution: {integrity: sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== } + engines: { node: ">=12" } posthtml@0.16.7: - resolution: {integrity: sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw== } + engines: { node: ">=12.0.0" } postject@1.0.0-alpha.6: - resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A== } + engines: { node: ">=14.0.0" } hasBin: true powershell-utils@0.1.0: - resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A== } + engines: { node: ">=20" } powershell-utils@0.2.0: - resolution: {integrity: sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw== } + engines: { node: ">=20" } preact-cli@3.5.1: - resolution: {integrity: sha512-6sRewJOtPAWkIVc+cycU4cjk9294stdh4hyw2ENpJ5N5lWJ8Y3r9r5Ly6Hmo5rzvcUq4cnlshMwTTwGq7ip/1w==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-6sRewJOtPAWkIVc+cycU4cjk9294stdh4hyw2ENpJ5N5lWJ8Y3r9r5Ly6Hmo5rzvcUq4cnlshMwTTwGq7ip/1w== } + engines: { node: ">=12" } hasBin: true peerDependencies: less-loader: ^7.3.0 - preact: '*' - preact-render-to-string: '*' + preact: "*" + preact-render-to-string: "*" sass-loader: ^10.2.0 stylus-loader: ^4.3.3 typescript: ^4.6.4 @@ -36320,1231 +41678,1490 @@ packages: optional: true preact-render-to-string@6.7.0: - resolution: {integrity: sha512-Z4WR8fmLMRpdYqJ9i7vrlXSsSrxVJydwrkEXHapexfARbWfGb7vGcnvNQnIzN0cXciMVOlz/XLoiMCi9gUsy9Q==} + resolution: + { integrity: sha512-Z4WR8fmLMRpdYqJ9i7vrlXSsSrxVJydwrkEXHapexfARbWfGb7vGcnvNQnIzN0cXciMVOlz/XLoiMCi9gUsy9Q== } peerDependencies: - preact: '>=10 || >= 11.0.0-0' + preact: ">=10 || >= 11.0.0-0" preact-router@4.1.2: - resolution: {integrity: sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg==} + resolution: + { integrity: sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg== } peerDependencies: - preact: '>=10' + preact: ">=10" preact@10.29.2: - resolution: {integrity: sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==} + resolution: + { integrity: sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ== } prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== } + engines: { node: ">=10" } deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== } + engines: { node: ">= 0.8.0" } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } + engines: { node: ">= 0.8.0" } prepend-http@1.0.4: - resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== } + engines: { node: ">=0.10.0" } prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== } + engines: { node: ">=4" } presentable-error@0.0.1: - resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg== } + engines: { node: ">=16" } prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg== } + engines: { node: ">=6.0.0" } prettier-plugin-astro@0.14.1: - resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} - engines: {node: ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw== } + engines: { node: ^14.15.0 || >=16.0.0 } - prettier-plugin-multiline-arrays@4.1.8: - resolution: {integrity: sha512-crMXJTtHLQMLKax6T4YFUU6ho4IiLBNaUM79PwN8jdwxaXzMEZS6LJxqTjxXMoCsLaCyEa+M8SCv2+JGCH5X7Q==} - engines: {node: '>=20'} + prettier-plugin-multiline-arrays@4.1.9: + resolution: + { integrity: sha512-rI4HdfJAFkXkvmh0LSE0ItPrRwJrR6TBaNWamrwOOnHzRLGoVuuuBhljU1pnsf9K/oU/ZsZpjQcuAle471yZ8A== } + engines: { node: ">=20" } peerDependencies: - prettier: '>=3.0.0 <4.0.0' + prettier: ">=3.0.0 <4.0.0" - prettier-plugin-svelte@4.0.1: - resolution: {integrity: sha512-oDVmtKi+M8bJeUoMfPvulUqZYcuXrs5AmhhLYPKtBeg6hcpMdx7UYYisVCqEaLQuKtiPSYFpotfwp4cZK3D4xw==} - engines: {node: '>=20'} + prettier-plugin-svelte@4.1.1: + resolution: + { integrity: sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA== } + engines: { node: ">=20" } peerDependencies: prettier: ^3.0.0 svelte: ^5.0.0 prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } + engines: { node: ">=10.13.0" } hasBin: true prettier@3.8.2: - resolution: {integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q== } + engines: { node: ">=14" } hasBin: true - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} - engines: {node: '>=14'} + prettier@3.8.4: + resolution: + { integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q== } + engines: { node: ">=14" } hasBin: true pretty-bytes@4.0.2: - resolution: {integrity: sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw== } + engines: { node: ">=4" } pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== } + engines: { node: ">=6" } pretty-bytes@7.1.0: - resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw== } + engines: { node: ">=20" } pretty-error@2.1.2: - resolution: {integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==} + resolution: + { integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== } pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + resolution: + { integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== } pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + resolution: + { integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== } + engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } pretty-format@30.4.1: - resolution: {integrity: sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + resolution: + { integrity: sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw== } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } pretty-ms@9.3.0: - resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ== } + engines: { node: ">=18" } pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== } + engines: { node: ">=4" } printf@0.6.1: - resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==} - engines: {node: '>= 0.9.0'} + resolution: + { integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw== } + engines: { node: ">= 0.9.0" } prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== } + engines: { node: ">=6" } private@0.1.8: - resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== } + engines: { node: ">= 0.6" } proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } proc-log@5.0.0: - resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== } + engines: { node: ^18.17.0 || >=20.5.0 } proc-log@6.1.0: - resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ== } + engines: { node: ^20.17.0 || >=22.9.0 } process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== } process-on-spawn@1.1.0: - resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q== } + engines: { node: ">=8" } process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + resolution: + { integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== } + engines: { node: ">= 0.6.0" } proggy@3.0.0: - resolution: {integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q== } + engines: { node: ^18.17.0 || >=20.5.0 } progress-bar-webpack-plugin@2.1.0: - resolution: {integrity: sha512-UtlZbnxpYk1wufEWfhIjRn2U52zlY38uvnzFhs8rRxJxC1hSqw88JNR2Mbpqq9Kix8L1nGb3uQ+/1BiUWbigAg==} + resolution: + { integrity: sha512-UtlZbnxpYk1wufEWfhIjRn2U52zlY38uvnzFhs8rRxJxC1hSqw88JNR2Mbpqq9Kix8L1nGb3uQ+/1BiUWbigAg== } peerDependencies: webpack: ^1.3.0 || ^2 || ^3 || ^4 || ^5 progress-webpack-plugin@1.0.16: - resolution: {integrity: sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } + engines: { node: ">=0.4.0" } promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + resolution: + { integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== } promise-call-limit@3.0.2: - resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} - - promise-each@2.2.0: - resolution: {integrity: sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==} + resolution: + { integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw== } promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + resolution: + { integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== } peerDependencies: - bluebird: '*' + bluebird: "*" peerDependenciesMeta: bluebird: optional: true promise-map-series@0.2.3: - resolution: {integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==} + resolution: + { integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw== } promise-map-series@0.3.0: - resolution: {integrity: sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA== } + engines: { node: 10.* || >= 12.* } promise-polyfill@8.3.0: - resolution: {integrity: sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==} + resolution: + { integrity: sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg== } promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== } + engines: { node: ">=10" } promise.hash.helper@1.0.8: - resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg== } + engines: { node: 10.* || >= 12.* } promise@7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + resolution: + { integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== } prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== } + engines: { node: ">= 6" } promzard@2.0.0: - resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg== } + engines: { node: ^18.17.0 || >=20.5.0 } prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + resolution: + { integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== } proper-lockfile@4.1.2: - resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + resolution: + { integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== } - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + property-information@7.2.0: + resolution: + { integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg== } proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + resolution: + { integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== } protocols@2.0.2: - resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} - - protractor@7.0.0: - resolution: {integrity: sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==} - engines: {node: '>=10.13.x'} - deprecated: We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular - hasBin: true + resolution: + { integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ== } proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== } + engines: { node: ">= 0.10" } proxy-agent@6.5.0: - resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== } + engines: { node: ">= 14" } proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } proxy-from-env@2.1.0: - resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== } + engines: { node: ">=10" } - proxy-vir@2.0.2: - resolution: {integrity: sha512-YgV6c/9aJ7RyNZDTPqLQ6SdqBocWHGUa5rU3hyEsHj2kg4/b0y0EMWp3dNNUEJQrw6BoywonNINEVyFvj97YXQ==} - engines: {node: '>=22'} + proxy-vir@2.0.3: + resolution: + { integrity: sha512-T5u7sc6QcCUSdpUeh6BeW8QkjQ9XqNWwCCID76ry9A1OzsXVnEA4FEVr1q638KDoGSBj3veML9avb/7Qer2RkQ== } + engines: { node: ">=22" } prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + resolution: + { integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== } pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + resolution: + { integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== } psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + resolution: + { integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== } pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + resolution: + { integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== } public-encrypt@4.0.3: - resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + resolution: + { integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== } publint@0.3.21: - resolution: {integrity: sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ== } + engines: { node: ">=18" } hasBin: true pug-attrs@3.0.0: - resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} + resolution: + { integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== } pug-code-gen@3.0.4: - resolution: {integrity: sha512-6okWYIKdasTyXICyEtvobmTZAVX57JkzgzIi4iRJlin8kmhG+Xry2dsus+Mun/nGCn6F2U49haHI5mkELXB14g==} + resolution: + { integrity: sha512-6okWYIKdasTyXICyEtvobmTZAVX57JkzgzIi4iRJlin8kmhG+Xry2dsus+Mun/nGCn6F2U49haHI5mkELXB14g== } pug-error@2.1.0: - resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} + resolution: + { integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg== } pug-filters@4.0.0: - resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} + resolution: + { integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== } pug-lexer@5.0.1: - resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + resolution: + { integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== } pug-linker@4.0.0: - resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} + resolution: + { integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== } pug-load@3.0.0: - resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} + resolution: + { integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== } pug-parser@6.0.0: - resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + resolution: + { integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== } pug-runtime@3.0.1: - resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} + resolution: + { integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== } pug-strip-comments@2.0.0: - resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} + resolution: + { integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== } pug-walk@2.0.0: - resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} + resolution: + { integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== } pug@3.0.4: - resolution: {integrity: sha512-kFfq5mMzrS7+wrl5pLJzZEzemx34OQ0w4SARfhy/3yxTlhbstsudDwJzhf1hP02yHzbjoVMSXUj/Sz6RNfMyXg==} + resolution: + { integrity: sha512-kFfq5mMzrS7+wrl5pLJzZEzemx34OQ0w4SARfhy/3yxTlhbstsudDwJzhf1hP02yHzbjoVMSXUj/Sz6RNfMyXg== } pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + resolution: + { integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== } pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + resolution: + { integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA== } pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + resolution: + { integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== } punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== } + engines: { node: ">=6" } punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + resolution: + { integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } + engines: { node: ">=6" } pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== } + engines: { node: ">=8" } pupa@3.3.0: - resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA== } + engines: { node: ">=12.20" } puppeteer-core@23.11.1: - resolution: {integrity: sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg== } + engines: { node: ">=18" } puppeteer-core@24.43.1: - resolution: {integrity: sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw== } + engines: { node: ">=18" } puppeteer-core@25.1.0: - resolution: {integrity: sha512-jKzy5y4WG6uNuFbTWgW1D7mqoT9o0nllc/6a1DGF775T1mPmgw3scdFEtEq67yVFikavQmbYq6NLfbTfxHSlqQ==} - engines: {node: '>=22.12.0'} + resolution: + { integrity: sha512-jKzy5y4WG6uNuFbTWgW1D7mqoT9o0nllc/6a1DGF775T1mPmgw3scdFEtEq67yVFikavQmbYq6NLfbTfxHSlqQ== } + engines: { node: ">=22.12.0" } puppeteer@25.1.0: - resolution: {integrity: sha512-7L6/0JM7XStK99lIL4xQySyNEXNfII6pk0BxkI5kKBTOhR7AsoQiv067YTsE/rIXxQiq9ajlO4WcqBjS/FWK1A==} - engines: {node: '>=22.12.0'} + resolution: + { integrity: sha512-7L6/0JM7XStK99lIL4xQySyNEXNfII6pk0BxkI5kKBTOhR7AsoQiv067YTsE/rIXxQiq9ajlO4WcqBjS/FWK1A== } + engines: { node: ">=22.12.0" } hasBin: true pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + resolution: + { integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== } pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + resolution: + { integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== } pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} - engines: {node: '>=16.0.0'} - - q@1.4.1: - resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - deprecated: |- - You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + resolution: + { integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== } + engines: { node: ">=16.0.0" } q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + resolution: + { integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== } + engines: { node: ">=0.6.0", teleport: ">=0.2.0" } deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qified@0.10.1: - resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA== } + engines: { node: ">=20" } qjobs@1.2.0: - resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} - engines: {node: '>=0.9'} + resolution: + { integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== } + engines: { node: ">=0.9" } qs@6.15.2: - resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} - engines: {node: '>=0.6'} + resolution: + { integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw== } + engines: { node: ">=0.6" } qs@6.5.5: - resolution: {integrity: sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==} - engines: {node: '>=0.6'} + resolution: + { integrity: sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ== } + engines: { node: ">=0.6" } quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + resolution: + { integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== } quansync@1.0.0: - resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + resolution: + { integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA== } query-string@4.3.4: - resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== } + engines: { node: ">=0.10.0" } querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} - engines: {node: '>=0.4.x'} + resolution: + { integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== } + engines: { node: ">=0.4.x" } querystring@0.2.1: - resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} - engines: {node: '>=0.4.x'} + resolution: + { integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== } + engines: { node: ">=0.4.x" } deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== } + engines: { node: ">=8" } quick-temp@0.1.9: - resolution: {integrity: sha512-yI0h7tIhKVObn03kD+Ln9JFi4OljD28lfaOsTdfpTR0xzrhGOod+q66CjGafUqYX2juUfT9oHIGrTBBo22mkRA==} + resolution: + { integrity: sha512-yI0h7tIhKVObn03kD+Ln9JFi4OljD28lfaOsTdfpTR0xzrhGOod+q66CjGafUqYX2juUfT9oHIGrTBBo22mkRA== } qunit-dom@3.5.1: - resolution: {integrity: sha512-ZnvTADVXASdjLxrUDuS/8NaOzadhxN+fZgafjuQV1EOMFd3dJqLkP0RqsGdAxQBxZ7KzKg57AAJO20dM6/PxkA==} + resolution: + { integrity: sha512-ZnvTADVXASdjLxrUDuS/8NaOzadhxN+fZgafjuQV1EOMFd3dJqLkP0RqsGdAxQBxZ7KzKg57AAJO20dM6/PxkA== } qunit-theme-ember@1.0.0: - resolution: {integrity: sha512-vdMVVo6ecdCkWttMTKeyq1ZTLGHcA6zdze2zhguNuc3ritlJMhOXY5RDseqazOwqZVfCg3rtlmL3fMUyIzUyFQ==} + resolution: + { integrity: sha512-vdMVVo6ecdCkWttMTKeyq1ZTLGHcA6zdze2zhguNuc3ritlJMhOXY5RDseqazOwqZVfCg3rtlmL3fMUyIzUyFQ== } - qunit@2.25.0: - resolution: {integrity: sha512-MONPKgjavgTqArCwZOEz8nEMbA19zNXIp5ZOW9rPYj5cbgQp0fiI36c9dPTSzTRRzx+KcfB5eggYB/ENqxi0+w==} - engines: {node: '>=10'} + qunit@2.26.0: + resolution: + { integrity: sha512-KSv16YomcYmiK90qTOJl3Bm5IvTf2upqQDdBQWCvSQWe94FWobnUgKOpvpvZdG7VkDt3TJSI8k8g9+GGGEd7Fw== } + engines: { node: ">=10" } hasBin: true radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + resolution: + { integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== } raf@3.4.1: - resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + resolution: + { integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== } railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + resolution: + { integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== } randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== } + engines: { node: ">=0.12" } randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } randomfill@1.0.4: - resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + resolution: + { integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== } range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== } + engines: { node: ">= 0.6" } raw-body@1.1.7: - resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg== } + engines: { node: ">= 0.8.0" } deprecated: No longer maintained. Please upgrade to a stable version. raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== } + engines: { node: ">= 0.8" } raw-body@3.0.2: - resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== } + engines: { node: ">= 0.10" } raw-loader@4.0.2: - resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 rawth@3.0.0: - resolution: {integrity: sha512-712WxtKAVEhtFm/4keDUefyjxAZR/jKrFR8ownCdjnFUxJstyigv3LBo3Shtd5VPC/p6r5gd6jY0bnAfPSol9Q==} + resolution: + { integrity: sha512-712WxtKAVEhtFm/4keDUefyjxAZR/jKrFR8ownCdjnFUxJstyigv3LBo3Shtd5VPC/p6r5gd6jY0bnAfPSol9Q== } rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + resolution: + { integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== } rc9@3.0.1: - resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + resolution: + { integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ== } rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + resolution: + { integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== } hasBin: true re-resizable@6.11.2: - resolution: {integrity: sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==} + resolution: + { integrity: sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A== } peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-autosize-textarea@7.1.0: - resolution: {integrity: sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==} + resolution: + { integrity: sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g== } peerDependencies: react: ^0.14.0 || ^15.0.0 || ^16.0.0 react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 react-colorful@5.7.0: - resolution: {integrity: sha512-fuesYIemttah97XmsIHmz4OORDHiSFzyc9HMAIrCHJou2jaRQmL8cFJ76K4zQhhj8jzwOBlOi4BaGTjjOZCfTg==} + resolution: + { integrity: sha512-fuesYIemttah97XmsIHmz4OORDHiSFzyc9HMAIrCHJou2jaRQmL8cFJ76K4zQhhj8jzwOBlOi4BaGTjjOZCfTg== } peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: ">=16.8.0" + react-dom: ">=16.8.0" react-day-picker@9.14.0: - resolution: {integrity: sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA== } + engines: { node: ">=18" } peerDependencies: - react: '>=16.8.0' + react: ">=16.8.0" react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + resolution: + { integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== } peerDependencies: react: ^18.3.1 - react-dom@19.2.6: - resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} + react-dom@19.2.7: + resolution: + { integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ== } peerDependencies: - react: ^19.2.6 + react: ^19.2.7 react-easy-crop@5.5.7: - resolution: {integrity: sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==} + resolution: + { integrity: sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA== } peerDependencies: - react: '>=16.4.0' - react-dom: '>=16.4.0' + react: ">=16.4.0" + react-dom: ">=16.4.0" react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + resolution: + { integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== } react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + resolution: + { integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== } react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + resolution: + { integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== } - react-is@19.2.6: - resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} + react-is@19.2.7: + resolution: + { integrity: sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A== } react-refresh@0.10.0: - resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== } + engines: { node: ">=0.10.0" } react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== } + engines: { node: ">=0.10.0" } react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q== } + engines: { node: ">=10" } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q== } + engines: { node: ">=10" } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ== } + engines: { node: ">=10" } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== } + engines: { node: ">=0.10.0" } - react@19.2.6: - resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} - engines: {node: '>=0.10.0'} + react@19.2.7: + resolution: + { integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ== } + engines: { node: ">=0.10.0" } read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== } read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } read-cmd-shim@5.0.0: - resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw== } + engines: { node: ^18.17.0 || >=20.5.0 } read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } deprecated: This package is no longer supported. Please use @npmcli/package-json instead. read-package-up@12.0.0: - resolution: {integrity: sha512-Q5hMVBYur/eQNWDdbF4/Wqqr9Bjvtrw2kjGxxBbKLbx8bVCL8gcArjTy8zDUuLGQicftpMuU0riQNcAsbtOVsw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-Q5hMVBYur/eQNWDdbF4/Wqqr9Bjvtrw2kjGxxBbKLbx8bVCL8gcArjTy8zDUuLGQicftpMuU0riQNcAsbtOVsw== } + engines: { node: ">=20" } read-pkg-up@3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== } + engines: { node: ">=4" } read-pkg-up@4.0.0: - resolution: {integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== } + engines: { node: ">=6" } read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== } + engines: { node: ">=8" } read-pkg@10.1.0: - resolution: {integrity: sha512-I8g2lArQiP78ll51UeMZojewtYgIRCKCWqZEgOO8c/uefTI+XDXvCSXu3+YNUaTNvZzobrL5+SqHjBrByRRTdg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-I8g2lArQiP78ll51UeMZojewtYgIRCKCWqZEgOO8c/uefTI+XDXvCSXu3+YNUaTNvZzobrL5+SqHjBrByRRTdg== } + engines: { node: ">=20" } read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== } + engines: { node: ">=4" } read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== } + engines: { node: ">=8" } read@4.1.0: - resolution: {integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA== } + engines: { node: ^18.17.0 || >=20.5.0 } readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + resolution: + { integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== } readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== } readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== } + engines: { node: ">= 6" } readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolution: + { integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== } readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== } + engines: { node: ">=0.10" } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } + engines: { node: ">=8.10.0" } readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + resolution: + { integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== } + engines: { node: ">= 14.18.0" } readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} - engines: {node: '>= 20.19.0'} + resolution: + { integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== } + engines: { node: ">= 20.19.0" } readjson@2.2.2: - resolution: {integrity: sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw== } + engines: { node: ">=10" } recast@0.18.10: - resolution: {integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ== } + engines: { node: ">= 4" } recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA== } + engines: { node: ">= 4" } rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - - recursive-copy@2.0.14: - resolution: {integrity: sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==} + resolution: + { integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== } + engines: { node: ">= 10.13.0" } redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== } + engines: { node: ">=8" } redeyed@1.0.1: - resolution: {integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==} + resolution: + { integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ== } redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== } + engines: { node: ">=4" } redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== } + engines: { node: ">=4" } redstd@1.0.2: - resolution: {integrity: sha512-s5Fh78Jh+g+UARkb972bsJzuYjgBUoEs/51ebXV8eensXzsF8kDzBdCDBX8psGBuC5+BNcqQtxXFJMbqc8zZgg==} - engines: {node: '>=22'} + resolution: + { integrity: sha512-s5Fh78Jh+g+UARkb972bsJzuYjgBUoEs/51ebXV8eensXzsF8kDzBdCDBX8psGBuC5+BNcqQtxXFJMbqc8zZgg== } + engines: { node: ">=22" } reduce-flatten@2.0.0: - resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== } + engines: { node: ">=6" } redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + resolution: + { integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w== } reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + resolution: + { integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== } reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== } + engines: { node: ">= 0.4" } regenerate-unicode-properties@10.2.2: - resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== } + engines: { node: ">=4" } regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + resolution: + { integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== } regenerator-runtime@0.11.1: - resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + resolution: + { integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== } regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + resolution: + { integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== } regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolution: + { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } regenerator-transform@0.10.1: - resolution: {integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==} + resolution: + { integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== } regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - - regex-parser@2.3.1: - resolution: {integrity: sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==} + resolution: + { integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== } + engines: { node: ">=0.10.0" } regex-recursion@6.0.2: - resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + resolution: + { integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== } regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + resolution: + { integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== } regex@6.1.0: - resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + resolution: + { integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg== } regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + resolution: + { integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== } hasBin: true regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== } + engines: { node: ">= 0.4" } regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== } + engines: { node: ">=8" } regexpu-core@2.0.0: - resolution: {integrity: sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==} + resolution: + { integrity: sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== } regexpu-core@6.4.0: - resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== } + engines: { node: ">=4" } registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== } + engines: { node: ">=6.0.0" } registry-auth-token@5.1.1: - resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q== } + engines: { node: ">=14" } registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== } + engines: { node: ">=8" } registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== } + engines: { node: ">=12" } regjsgen@0.2.0: - resolution: {integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==} + resolution: + { integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== } regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + resolution: + { integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== } regjsparser@0.1.5: - resolution: {integrity: sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==} + resolution: + { integrity: sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== } hasBin: true - regjsparser@0.13.1: - resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + regjsparser@0.13.2: + resolution: + { integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ== } hasBin: true rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + resolution: + { integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag== } rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + resolution: + { integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== } rehype-stringify@10.0.1: - resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + resolution: + { integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA== } rehype@13.0.2: - resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + resolution: + { integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A== } relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== } + engines: { node: ">= 0.10" } release-zalgo@1.0.0: - resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== } + engines: { node: ">=4" } remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + resolution: + { integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== } remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + resolution: + { integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== } remark-parse@4.0.0: - resolution: {integrity: sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==} + resolution: + { integrity: sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw== } remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + resolution: + { integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== } remark-smartypants@3.0.2: - resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} - engines: {node: '>=16.0.0'} + resolution: + { integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA== } + engines: { node: ">=16.0.0" } remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolution: + { integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== } rememo@4.0.2: - resolution: {integrity: sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ==} + resolution: + { integrity: sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ== } remote-git-tags@3.0.0: - resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w== } + engines: { node: ">=8" } remove-accents@0.5.0: - resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} + resolution: + { integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A== } remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + resolution: + { integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== } remove-types@1.0.0: - resolution: {integrity: sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w==} + resolution: + { integrity: sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w== } renderkid@2.0.7: - resolution: {integrity: sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==} + resolution: + { integrity: sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== } renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + resolution: + { integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== } repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== } + engines: { node: ">=0.10.0" } repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== } + engines: { node: ">=0.10" } replace-ext@1.0.0: - resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA== } + engines: { node: ">= 0.10" } replace-ext@2.0.0: - resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== } + engines: { node: ">= 10" } replace-homedir@2.0.0: - resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw== } + engines: { node: ">= 10.13.0" } request-light@0.5.8: - resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + resolution: + { integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg== } request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + resolution: + { integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q== } request-promise-core@1.1.4: - resolution: {integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== } + engines: { node: ">=0.10.0" } peerDependencies: request: ^2.34 request-promise-native@1.0.9: - resolution: {integrity: sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==} - engines: {node: '>=0.12.0'} + resolution: + { integrity: sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== } + engines: { node: ">=0.12.0" } deprecated: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 peerDependencies: request: ^2.34 request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== } + engines: { node: ">= 6" } deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 requestidlecallback@0.3.0: - resolution: {integrity: sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ==} + resolution: + { integrity: sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ== } require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } + engines: { node: ">=0.10.0" } require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } + engines: { node: ">=0.10.0" } require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} + resolution: + { integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ== } + engines: { node: ">=8.6.0" } require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resolution: + { integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== } requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} + resolution: + { integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== } + engines: { node: ">=0.10.5" } requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: + { integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== } resedit@2.0.3: - resolution: {integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==} - engines: {node: '>=14', npm: '>=7'} + resolution: + { integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA== } + engines: { node: ">=14", npm: ">=7" } resedit@3.0.2: - resolution: {integrity: sha512-FnqVDJYX4etlEnz2AaJYE1c1FTcgrsHiI2U4DXRxO4CIzbGP7r0jml9uZIMlvzCom2pbBLZjIhF26wj92y1cVQ==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-FnqVDJYX4etlEnz2AaJYE1c1FTcgrsHiI2U4DXRxO4CIzbGP7r0jml9uZIMlvzCom2pbBLZjIhF26wj92y1cVQ== } + engines: { node: ">=20" } reselect@3.0.1: - resolution: {integrity: sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA==} + resolution: + { integrity: sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA== } reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + resolution: + { integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== } reselect@5.2.0: - resolution: {integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==} + resolution: + { integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw== } reserved-identifiers@1.2.0: - resolution: {integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw== } + engines: { node: ">=18" } resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolution: + { integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== } resolve-bin@0.4.3: - resolution: {integrity: sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==} + resolution: + { integrity: sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw== } resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== } + engines: { node: ">=8" } resolve-dir@0.1.1: - resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA== } + engines: { node: ">=0.10.0" } resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== } + engines: { node: ">=0.10.0" } resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== } + engines: { node: ">=4" } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } + engines: { node: ">=4" } resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } + engines: { node: ">=8" } resolve-options@2.0.0: - resolution: {integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A== } + engines: { node: ">= 10.13.0" } resolve-package-path@1.2.7: - resolution: {integrity: sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q==} + resolution: + { integrity: sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q== } resolve-package-path@2.0.0: - resolution: {integrity: sha512-/CLuzodHO2wyyHTzls5Qr+EFeG6RcW4u6//gjYvUfcfyuplIX1SSccU+A5A9A78Gmezkl3NBkFAMxLbzTY9TJA==} - engines: {node: 8.* || 10.* || >= 12} + resolution: + { integrity: sha512-/CLuzodHO2wyyHTzls5Qr+EFeG6RcW4u6//gjYvUfcfyuplIX1SSccU+A5A9A78Gmezkl3NBkFAMxLbzTY9TJA== } + engines: { node: 8.* || 10.* || >= 12 } resolve-package-path@3.1.0: - resolution: {integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==} - engines: {node: 10.* || >= 12} + resolution: + { integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA== } + engines: { node: 10.* || >= 12 } resolve-package-path@4.0.3: - resolution: {integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==} - engines: {node: '>= 12'} + resolution: + { integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA== } + engines: { node: ">= 12" } resolve-path@1.4.0: - resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w== } + engines: { node: ">= 0.8" } resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve-url-loader@5.0.0: - resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== } resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + resolution: + { integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== } deprecated: https://github.com/lydell/resolve-url#deprecated resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== } + engines: { node: ">=10" } resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== } + engines: { node: ">= 0.4" } hasBin: true resolve@2.0.0-next.7: - resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ== } + engines: { node: ">= 0.4" } hasBin: true responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + resolution: + { integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== } restore-cursor@2.0.0: - resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== } + engines: { node: ">=4" } restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== } + engines: { node: ">=8" } restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== } + engines: { node: ">=18" } ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} + resolution: + { integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== } + engines: { node: ">=0.12" } retext-latin@4.0.0: - resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + resolution: + { integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA== } retext-smartypants@6.2.0: - resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + resolution: + { integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ== } retext-stringify@4.0.0: - resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + resolution: + { integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA== } retext@9.0.0: - resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + resolution: + { integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA== } retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== } + engines: { node: ">= 4" } retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== } + engines: { node: ">= 4" } reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + resolution: + { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== } rgb-regex@1.0.1: - resolution: {integrity: sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==} + resolution: + { integrity: sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== } rgba-regex@1.0.0: - resolution: {integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==} + resolution: + { integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== } rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + resolution: + { integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + resolution: + { integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== } hasBin: true rimraf@6.1.3: - resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA== } + engines: { node: 20 || >=22 } hasBin: true riot@10.1.4: - resolution: {integrity: sha512-3QnYjyNbC85jlE5IBNmCZVPtQmnidgtpod9nZObVzmp2jk88x2anhfqlJDqLa1xZ8W8mUaH/7LilizdhODpIAg==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-3QnYjyNbC85jlE5IBNmCZVPtQmnidgtpod9nZObVzmp2jk88x2anhfqlJDqLa1xZ8W8mUaH/7LilizdhODpIAg== } + engines: { node: ">=18.0.0" } ripemd160@2.0.3: - resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==} - engines: {node: '>= 0.8'} - - roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== } + engines: { node: ">= 0.8" } robots-parser@3.0.1: - resolution: {integrity: sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ== } + engines: { node: ">=10.0.0" } - rolldown-plugin-dts@0.25.1: - resolution: {integrity: sha512-zK82aC/8z1iVW+g0bCnlQZq04Y5bNeL/RcRwTYBwsnU6wH0N+6vpIFkN7JC0kYRS5qKA+pxQyfIPvXJ6Q5xSpQ==} - engines: {node: ^22.18.0 || >=24.0.0} + rolldown-plugin-dts@0.26.0: + resolution: + { integrity: sha512-e+kEPtUiDES0htk5iqkSeF4EzAV7R+vugGB44iPDuw1Kw9E+WyL1VG7PaV0IIjGHLiacztMBcMTyrr8ON9CT1Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@ts-macro/tsc': ^0.3.6 - '@typescript/native-preview': '>=7.0.0-dev.20260325.1' + "@ts-macro/tsc": ^0.3.6 + "@typescript/native-preview": ">=7.0.0-dev.20260325.1" rolldown: ^1.0.0 typescript: ^5.0.0 || ^6.0.0 - vue-tsc: ~3.2.0 + vue-tsc: ~3.2.0 || ~3.3.0 peerDependenciesMeta: - '@ts-macro/tsc': + "@ts-macro/tsc": optional: true - '@typescript/native-preview': + "@typescript/native-preview": optional: true typescript: optional: true vue-tsc: optional: true - rolldown@1.0.0-rc.15: - resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} - engines: {node: ^20.19.0 || >=22.12.0} + rolldown@1.0.0-rc.12: + resolution: + { integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A== } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true + + rolldown@1.0.2: + resolution: + { integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true - rolldown@1.0.0-rc.4: - resolution: {integrity: sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==} - engines: {node: ^20.19.0 || >=22.12.0} + rolldown@1.0.3: + resolution: + { integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true - rolldown@1.0.2: - resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} - engines: {node: ^20.19.0 || >=22.12.0} + rolldown@1.1.1: + resolution: + { integrity: sha512-IN750c0p+s3jqJIsFLRZrQazmbAB1kkQDTtQjSt/gbS2ywLhlv4R5Shazer0FZKmuo/BsO3/w2UoYnUjuOZqHg== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true rollup-plugin-css-only@4.5.5: - resolution: {integrity: sha512-O2m2Sj8qsAtjUVqZyGTDXJypaOFFNV4knz8OlS6wJBws6XEICIiLsXmI56SbQEmWDqYU5TgRgWmslGj4THofJQ==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-O2m2Sj8qsAtjUVqZyGTDXJypaOFFNV4knz8OlS6wJBws6XEICIiLsXmI56SbQEmWDqYU5TgRgWmslGj4THofJQ== } + engines: { node: ">=14" } peerDependencies: rollup: <5 rollup-plugin-dts@6.4.1: - resolution: {integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg== } + engines: { node: ">=20" } peerDependencies: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 || ^6.0 rollup-plugin-filesize@10.0.0: - resolution: {integrity: sha512-JAYYhzCcmGjmCzo3LEHSDE3RAPHKIeBdpqRhiyZSv5o/3wFhktUOzYAWg/uUKyEu5dEaVaql6UOmaqHx1qKrZA==} - engines: {node: '>=16.0.0'} + resolution: + { integrity: sha512-JAYYhzCcmGjmCzo3LEHSDE3RAPHKIeBdpqRhiyZSv5o/3wFhktUOzYAWg/uUKyEu5dEaVaql6UOmaqHx1qKrZA== } + engines: { node: ">=16.0.0" } rollup-plugin-livereload@2.0.5: - resolution: {integrity: sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==} - engines: {node: '>=8.3'} + resolution: + { integrity: sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA== } + engines: { node: ">=8.3" } rollup-plugin-riot@10.0.0: - resolution: {integrity: sha512-fqBFPcu546gb6JNuk8QbdErcgeqgTOTWb7u+ujG1cRE/jp7FNMtnKqysIgazbkR+lkgPYCvczLc9OwGoahDv/A==} + resolution: + { integrity: sha512-fqBFPcu546gb6JNuk8QbdErcgeqgTOTWb7u+ujG1cRE/jp7FNMtnKqysIgazbkR+lkgPYCvczLc9OwGoahDv/A== } rollup-plugin-svelte@7.2.3: - resolution: {integrity: sha512-LlniP+h00DfM+E4eav/Kk8uGjgPUjGIBfrAS/IxQvsuFdqSM0Y2sXf31AdxuIGSW9GsmocDqOfaxR5QNno/Tgw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-LlniP+h00DfM+E4eav/Kk8uGjgPUjGIBfrAS/IxQvsuFdqSM0Y2sXf31AdxuIGSW9GsmocDqOfaxR5QNno/Tgw== } + engines: { node: ">=10" } peerDependencies: - rollup: '>=2.0.0' - svelte: '>=3.5.0' + rollup: ">=2.0.0" + svelte: ">=3.5.0" rollup-plugin-terser@7.0.2: - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + resolution: + { integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== } deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser peerDependencies: rollup: ^2.0.0 - rollup-plugin-typescript2@0.35.0: - resolution: {integrity: sha512-szcIO9hPUx3PhQl91u4pfNAH2EKbtrXaES+m163xQVE5O1CC0ea6YZV/5woiDDW3CR9jF2CszPrKN+AFiND0bg==} + rollup-plugin-typescript2@0.37.0: + resolution: + { integrity: sha512-S1r/4Ufi13Yg/chPlh4iSHWq2Zs/sIAodW5SKUoCQfy/DEQhkS2XRFEtv+NRq3iBO4WHHfqKtDPOC5lJTYm7OQ== } peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' + rollup: ">=1.26.3" + typescript: ">=2.4.0" rollup-plugin-typescript@1.0.1: - resolution: {integrity: sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw==} + resolution: + { integrity: sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw== } deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-typescript. peerDependencies: - tslib: '*' - typescript: '>=2.1.0' + tslib: "*" + typescript: ">=2.1.0" rollup-plugin-visualizer@7.0.1: - resolution: {integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==} - engines: {node: '>=22'} + resolution: + { integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg== } + engines: { node: ">=22" } hasBin: true peerDependencies: rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc @@ -37555,168 +43172,200 @@ packages: rollup: optional: true - rollup-plugin-vue@5.1.9: - resolution: {integrity: sha512-DXzrBUD2j68Y6nls4MmuJsFL1SrQDpdgjxvhk/oy04LzJmXJoX1x31yLEBFkkmvpbon6Q885WJLvEMiMyT+3rA==} + rollup-plugin-vue@6.0.0: + resolution: + { integrity: sha512-oVvUd84d5u73M2HYM3XsMDLtZRIA/tw2U0dmHlXU2UWP5JARYHzh/U9vcxaN/x/9MrepY7VH3pHFeOhrWpxs/Q== } peerDependencies: - vue-template-compiler: '*' + "@vue/compiler-sfc": "*" rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + resolution: + { integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== } rollup@2.80.0: - resolution: {integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ== } + engines: { node: ">=10.0.0" } + hasBin: true + + rollup@4.60.2: + resolution: + { integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ== } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true - rollup@4.60.4: - resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + rollup@4.62.0: + resolution: + { integrity: sha512-nc72Wgq62I7rtDV4izT5/aaS0zxy3kttkinf9586ApknY3jZO9NYsmtc24fUckA0X7Q2v+ML4a15pdUlV5V/jA== } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true rou3@0.8.1: - resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + resolution: + { integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA== } route-recognizer@0.3.4: - resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==} + resolution: + { integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g== } router@2.2.0: - resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} - engines: {node: '>= 18'} - - router_js@8.0.6: - resolution: {integrity: sha512-AjGxRDIpTGoAG8admFmvP/cxn1AlwwuosCclMU4R5oGHGt7ER0XtB3l9O04ToBDdPe4ivM/YcLopgBEpJssJ/Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - route-recognizer: ^0.3.4 - rsvp: ^4.8.5 - - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + resolution: + { integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== } + engines: { node: ">= 18" } rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + resolution: + { integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== } rst-selector-parser@2.2.3: - resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==} + resolution: + { integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA== } rsvp@3.2.1: - resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==} + resolution: + { integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg== } rsvp@3.6.2: - resolution: {integrity: sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==} - engines: {node: 0.12.* || 4.* || 6.* || >= 7.*} + resolution: + { integrity: sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== } + engines: { node: 0.12.* || 4.* || 6.* || >= 7.* } rsvp@4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} + resolution: + { integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== } + engines: { node: 6.* || >= 7.* } rtlcss@4.3.0: - resolution: {integrity: sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig== } + engines: { node: ">=12.0.0" } hasBin: true ruit@1.0.4: - resolution: {integrity: sha512-eiHVb18DQ24Of/fdJmZCysw6X21IIyed5c87eAW95KQY5TvTfh6SR9pCkAowciyvhW1Bhm3RXuRX6eILKl+49w==} + resolution: + { integrity: sha512-eiHVb18DQ24Of/fdJmZCysw6X21IIyed5c87eAW95KQY5TvTfh6SR9pCkAowciyvhW1Bhm3RXuRX6eILKl+49w== } run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== } + engines: { node: ">=18" } run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + resolution: + { integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== } + engines: { node: ">=0.12.0" } run-async@4.0.6: - resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} - engines: {node: '>=0.12.0'} + resolution: + { integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ== } + engines: { node: ">=0.12.0" } run-con@1.2.12: - resolution: {integrity: sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==} + resolution: + { integrity: sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg== } hasBin: true run-jxa@3.0.0: - resolution: {integrity: sha512-4f2CrY7H+sXkKXJn/cE6qRA3z+NMVO7zvlZ/nUV0e62yWftpiLAfw5eV9ZdomzWd2TXWwEIiGjAT57+lWIzzvA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-4f2CrY7H+sXkKXJn/cE6qRA3z+NMVO7zvlZ/nUV0e62yWftpiLAfw5eV9ZdomzWd2TXWwEIiGjAT57+lWIzzvA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } run-queue@1.0.3: - resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} + resolution: + { integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== } rungen@0.3.2: - resolution: {integrity: sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==} + resolution: + { integrity: sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw== } rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} + resolution: + { integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== } + engines: { npm: ">=2.0.0" } rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + resolution: + { integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== } s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} + resolution: + { integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA== } sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== } + engines: { node: ">=6" } safe-array-concat@1.1.4: - resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} - engines: {node: '>=0.4'} + resolution: + { integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg== } + engines: { node: ">=0.4" } safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } safe-json-parse@1.0.1: - resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==} + resolution: + { integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A== } safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== } + engines: { node: ">= 0.4" } safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== } + engines: { node: ">= 0.4" } safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + resolution: + { integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== } safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + resolution: + { integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== } safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== } + engines: { node: ">=10" } safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} + resolution: + { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } sane@5.0.1: - resolution: {integrity: sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q== } + engines: { node: 10.* || >= 12.* } hasBin: true sass-formatter@0.7.9: - resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} + resolution: + { integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw== } - sass-loader@16.0.7: - resolution: {integrity: sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==} - engines: {node: '>= 18.12.0'} + sass-loader@16.0.8: + resolution: + { integrity: sha512-hcov4ZwZJIGbEuyNr9EmiTmZueyrxSToE6GOzoZnq5JM7ecRO7ttyvilPn+VmRsqiP16+VYZzVnGZj/hzZgKBA== } + engines: { node: ">= 18.12.0" } peerDependencies: - '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 sass: ^1.3.0 - sass-embedded: '*' + sass-embedded: "*" webpack: ^5.0.0 peerDependenciesMeta: - '@rspack/core': + "@rspack/core": optional: true node-sass: optional: true @@ -37727,19 +43376,17 @@ packages: webpack: optional: true - sass-loader@16.0.8: - resolution: {integrity: sha512-hcov4ZwZJIGbEuyNr9EmiTmZueyrxSToE6GOzoZnq5JM7ecRO7ttyvilPn+VmRsqiP16+VYZzVnGZj/hzZgKBA==} - engines: {node: '>= 18.12.0'} + sass-loader@17.0.0: + resolution: + { integrity: sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw== } + engines: { node: ">= 22.11.0" } peerDependencies: - '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 - node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 sass: ^1.3.0 - sass-embedded: '*' + sass-embedded: "*" webpack: ^5.0.0 peerDependenciesMeta: - '@rspack/core': - optional: true - node-sass: + "@rspack/core": optional: true sass: optional: true @@ -37748,1083 +43395,1301 @@ packages: webpack: optional: true - sass@1.100.0: - resolution: {integrity: sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==} - engines: {node: '>=20.19.0'} + sass@1.101.0: + resolution: + { integrity: sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw== } + engines: { node: ">=20.19.0" } hasBin: true - sass@1.97.3: - resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==} - engines: {node: '>=14.0.0'} + sass@1.99.0: + resolution: + { integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q== } + engines: { node: ">=14.0.0" } hasBin: true - saucelabs@1.5.0: - resolution: {integrity: sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==} - sax@1.1.4: - resolution: {integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==} + resolution: + { integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg== } sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + resolution: + { integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== } sax@1.4.4: - resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} - engines: {node: '>=11.0.0'} + resolution: + { integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw== } + engines: { node: ">=11.0.0" } sax@1.6.0: - resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} - engines: {node: '>=11.0.0'} + resolution: + { integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA== } + engines: { node: ">=11.0.0" } saxes@3.1.11: - resolution: {integrity: sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== } + engines: { node: ">=8" } saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + resolution: + { integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== } + engines: { node: ">=v12.22.7" } scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + resolution: + { integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== } scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + resolution: + { integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== } schema-utils@1.0.0: - resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== } + engines: { node: ">= 4" } schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + resolution: + { integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== } + engines: { node: ">= 8.9.0" } schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} + resolution: + { integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== } + engines: { node: ">= 8.9.0" } schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== } + engines: { node: ">= 10.13.0" } schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== } + engines: { node: ">= 10.13.0" } scoped-regex@3.0.0: - resolution: {integrity: sha512-yEsN6TuxZhZ1Tl9iB81frTNS292m0I/IG7+w8lTvfcJQP2x3vnpOoevjBoE3Np5A6KnZM2+RtVenihj9t6NiYg==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-yEsN6TuxZhZ1Tl9iB81frTNS292m0I/IG7+w8lTvfcJQP2x3vnpOoevjBoE3Np5A6KnZM2+RtVenihj9t6NiYg== } + engines: { node: ">=12" } scule@0.2.1: - resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} + resolution: + { integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== } scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + resolution: + { integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== } search-insights@2.17.3: - resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + resolution: + { integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ== } section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== } + engines: { node: ">=4" } select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selenium-webdriver@3.6.0: - resolution: {integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==} - engines: {node: '>= 6.9.0'} + resolution: + { integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== } selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== } + engines: { node: ">=10" } selfsigned@5.5.0: - resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew== } + engines: { node: ">=18" } semiver@1.1.0: - resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== } + engines: { node: ">=6" } semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + resolution: + { integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== } semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== } + engines: { node: ">=8" } semver-greatest-satisfied-range@2.0.0: - resolution: {integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g== } + engines: { node: ">= 10.13.0" } semver@5.5.1: - resolution: {integrity: sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==} + resolution: + { integrity: sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== } hasBin: true semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } hasBin: true semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== } hasBin: true semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== } + engines: { node: ">=10" } hasBin: true semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== } + engines: { node: ">=10" } hasBin: true semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg== } + engines: { node: ">=10" } + hasBin: true + + semver@7.8.4: + resolution: + { integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA== } + engines: { node: ">=10" } hasBin: true send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== } + engines: { node: ">= 0.8.0" } send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ== } + engines: { node: ">= 18" } sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + resolution: + { integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== } seq-logging@3.0.0: - resolution: {integrity: sha512-ys5QV0745vxBCWuZBPSkgoobuLoUMxTSz1g7ZclHqX1tXXKFLyRIIn8V89EPgDnfRiWfoSo4KSxy/E0MtOYYyw==} - engines: {node: '>=14.18'} - - serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ys5QV0745vxBCWuZBPSkgoobuLoUMxTSz1g7ZclHqX1tXXKFLyRIIn8V89EPgDnfRiWfoSo4KSxy/E0MtOYYyw== } + engines: { node: ">=14.18" } serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + resolution: + { integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== } serialize-javascript@5.0.1: - resolution: {integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==} + resolution: + { integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== } serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + resolution: + { integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== } serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} - engines: {node: '>=20.0.0'} + resolution: + { integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw== } + engines: { node: ">=20.0.0" } seroval-plugins@1.5.4: - resolution: {integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw== } + engines: { node: ">=10" } peerDependencies: seroval: ^1.0 seroval@1.5.4: - resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw== } + engines: { node: ">=10" } serve-index@1.9.2: - resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ== } + engines: { node: ">= 0.8.0" } serve-placeholder@2.0.2: - resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + resolution: + { integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ== } serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== } + engines: { node: ">= 0.8.0" } serve-static@2.2.1: - resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw== } + engines: { node: ">= 18" } server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + resolution: + { integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== } set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + resolution: + { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } set-cookie-parser@3.1.0: - resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + resolution: + { integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw== } set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== } + engines: { node: ">= 0.4" } set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== } + engines: { node: ">= 0.4" } set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== } + engines: { node: ">= 0.4" } set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== } + engines: { node: ">=0.10.0" } setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + resolution: + { integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== } setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + resolution: + { integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== } setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== } sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} + resolution: + { integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== } + engines: { node: ">= 0.10" } hasBin: true shady-css-scoped-element@0.0.2: - resolution: {integrity: sha512-Dqfl70x6JiwYDujd33ZTbtCK0t52E7+H2swdWQNSTzfsolSa6LJHnTpN4T9OpJJEq4bxuzHRLFO9RBcy/UfrMQ==} + resolution: + { integrity: sha512-Dqfl70x6JiwYDujd33ZTbtCK0t52E7+H2swdWQNSTzfsolSa6LJHnTpN4T9OpJJEq4bxuzHRLFO9RBcy/UfrMQ== } shallow-clone@0.1.2: - resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw== } + engines: { node: ">=0.10.0" } shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== } + engines: { node: ">=8" } sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== } + engines: { node: ">=0.10.0" } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } + engines: { node: ">=8" } shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== } + engines: { node: ">=0.10.0" } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } + engines: { node: ">=8" } shebang-regex@4.0.0: - resolution: {integrity: sha512-YSKeSljCliLkWidW84GWL1HCguI0iEqhnBOLhrVXw/fN9he9ngekCy8zqJ1jXTPYmJ3Xkf3gLuNDVHQWdRqinw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-YSKeSljCliLkWidW84GWL1HCguI0iEqhnBOLhrVXw/fN9he9ngekCy8zqJ1jXTPYmJ3Xkf3gLuNDVHQWdRqinw== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ== } + engines: { node: ">= 0.4" } shellwords@0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + resolution: + { integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== } shiki@2.5.0: - resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + resolution: + { integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ== } - shiki@4.1.0: - resolution: {integrity: sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==} - engines: {node: '>=20'} + shiki@4.2.0: + resolution: + { integrity: sha512-hjNax6o/ylDy9lefQEaSDtzaT3iVNtZ3WmpQnbuQNoG4xvnSKf2kSKbihZVO4JRG1TTMejs7CmNRYlWgAL66pQ== } + engines: { node: ">=20" } shimmer@1.2.1: - resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + resolution: + { integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== } showdown@1.9.1: - resolution: {integrity: sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==} + resolution: + { integrity: sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA== } hasBin: true side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== } + engines: { node: ">= 0.4" } side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== } + engines: { node: ">= 0.4" } side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== } + engines: { node: ">= 0.4" } - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: + { integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== } + engines: { node: ">= 0.4" } siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + resolution: + { integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== } signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } + engines: { node: ">=14" } sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hasBin: true sigstore@4.1.1: - resolution: {integrity: sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w== } + engines: { node: ^20.17.0 || >=22.9.0 } silent-error@1.1.1: - resolution: {integrity: sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==} + resolution: + { integrity: sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw== } simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + resolution: + { integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== } simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + resolution: + { integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== } simple-git@3.36.0: - resolution: {integrity: sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==} + resolution: + { integrity: sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q== } simple-html-tokenizer@0.5.11: - resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==} + resolution: + { integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og== } simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + resolution: + { integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== } simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== } + engines: { node: ">=10" } sinon@22.0.0: - resolution: {integrity: sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q==} + resolution: + { integrity: sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q== } - sirv-cli@2.0.2: - resolution: {integrity: sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==} - engines: {node: '>= 10'} + sirv-cli@3.0.1: + resolution: + { integrity: sha512-ICXaF2u6IQhLZ0EXF6nqUF4YODfSQSt+mGykt4qqO5rY+oIiwdg7B8w2PVDBJlQulaS2a3J8666CUoDoAuCGvg== } + engines: { node: ">=18" } hasBin: true sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== } + engines: { node: ">= 10" } sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g== } + engines: { node: ">=18" } sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: + { integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== } size-plugin@3.0.0: - resolution: {integrity: sha512-RPMSkgbvmS1e5XUwPNFZre7DLqcK9MhWARIm8UmGLgbUCAs173JLI6DPHco68wvo0cUdft8+GGRaJtNl5RWfew==} + resolution: + { integrity: sha512-RPMSkgbvmS1e5XUwPNFZre7DLqcK9MhWARIm8UmGLgbUCAs173JLI6DPHco68wvo0cUdft8+GGRaJtNl5RWfew== } peerDependencies: - webpack: '*' - - slash@1.0.0: - resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} - engines: {node: '>=0.10.0'} + webpack: "*" slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } + engines: { node: ">=8" } slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== } + engines: { node: ">=12" } slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== } + engines: { node: ">=14.16" } slice-ansi@0.0.4: - resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== } + engines: { node: ">=0.10.0" } slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== } + engines: { node: ">=10" } slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== } + engines: { node: ">=18" } slice-ansi@8.0.0: - resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg== } + engines: { node: ">=20" } slugify@1.6.9: - resolution: {integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg== } + engines: { node: ">=8.0.0" } smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + resolution: + { integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== } + engines: { node: ">= 6.0.0", npm: ">= 3.0.0" } smob@1.6.2: - resolution: {integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==} - engines: {node: '>=20.0.0'} + resolution: + { integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw== } + engines: { node: ">=20.0.0" } smol-toml@1.6.1: - resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg== } + engines: { node: ">= 18" } snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + resolution: + { integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== } snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== } + engines: { node: ">=0.10.0" } snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== } + engines: { node: ">=0.10.0" } snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== } + engines: { node: ">=0.10.0" } socket.io-adapter@1.1.2: - resolution: {integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==} + resolution: + { integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== } socket.io-adapter@2.5.7: - resolution: {integrity: sha512-e0LyK91f3cUxTmv95/KzoLg47+zF+s/sbxRGDNsyG4dmIP8ZSX8ax6byOxfJXeNNtS/8AZlfD+uP7gBeR7DLlg==} + resolution: + { integrity: sha512-e0LyK91f3cUxTmv95/KzoLg47+zF+s/sbxRGDNsyG4dmIP8ZSX8ax6byOxfJXeNNtS/8AZlfD+uP7gBeR7DLlg== } socket.io-client@2.5.0: - resolution: {integrity: sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==} + resolution: + { integrity: sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== } socket.io-parser@3.3.5: - resolution: {integrity: sha512-pn+xG/oVnofxqteOawycpHw9QKclpNRa+Z7RW0vZmrIpkgZOVSVzBvY1YGR+p9kIEZXkeAjpHa21wRNLCZ6UAA==} + resolution: + { integrity: sha512-pn+xG/oVnofxqteOawycpHw9QKclpNRa+Z7RW0vZmrIpkgZOVSVzBvY1YGR+p9kIEZXkeAjpHa21wRNLCZ6UAA== } socket.io-parser@3.4.4: - resolution: {integrity: sha512-9JWZRGFA1aFK5W9yPrHoaZBOuaPE4NO7VZr96uVAsP8zkAYZkzrKeQhNPKkiPJq3qQK5q9c5xKcMysE5PUnPbw==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-9JWZRGFA1aFK5W9yPrHoaZBOuaPE4NO7VZr96uVAsP8zkAYZkzrKeQhNPKkiPJq3qQK5q9c5xKcMysE5PUnPbw== } + engines: { node: ">=10.0.0" } socket.io-parser@4.2.6: - resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg== } + engines: { node: ">=10.0.0" } socket.io@2.5.1: - resolution: {integrity: sha512-eaTE4tBKRD6RFoetquMbxgvcpvoDtRyIlkIMI/SMK2bsKvbENTsDeeu4GJ/z9c90yOWxB7b/eC+yKLPbHnH6bA==} + resolution: + { integrity: sha512-eaTE4tBKRD6RFoetquMbxgvcpvoDtRyIlkIMI/SMK2bsKvbENTsDeeu4GJ/z9c90yOWxB7b/eC+yKLPbHnH6bA== } socket.io@4.8.3: - resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} - engines: {node: '>=10.2.0'} + resolution: + { integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A== } + engines: { node: ">=10.2.0" } sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + resolution: + { integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== } socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} + resolution: + { integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== } + engines: { node: ">= 10" } socks-proxy-agent@8.0.5: - resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== } + engines: { node: ">= 14" } socks@2.8.9: - resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + resolution: + { integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw== } + engines: { node: ">= 10.0.0", npm: ">= 3.0.0" } - solid-devtools@0.29.3: - resolution: {integrity: sha512-9j3VxVbEoC54ML22gAMytR8ZS1nk9xKatsWziKSkI4c/Bcyh4sxQBGESHuXSLs9xaxpyGVTmFl3hknoxEpKzlA==} + solid-devtools@0.34.5: + resolution: + { integrity: sha512-KNVdS9MQzzeVS++Vmg4JeU0fM6ZMuBEmkBA7SmqPS2s5UHpRjv1PNH8gShmlN9L/tki6OUAzJP3H1aKq2AcOSg== } peerDependencies: - solid-js: ^1.8.0 - solid-start: ^0.3.0 - vite: ^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 + solid-js: ^1.9.0 + vite: ^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: - solid-start: - optional: true vite: optional: true solid-js@1.9.13: - resolution: {integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==} + resolution: + { integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ== } solid-refresh@0.6.3: - resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} + resolution: + { integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA== } peerDependencies: solid-js: ^1.3 - sorcery@0.11.1: - resolution: {integrity: sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==} - hasBin: true - sort-keys@1.1.2: - resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== } + engines: { node: ">=0.10.0" } sort-keys@2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== } + engines: { node: ">=4" } sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + resolution: + { integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== } sort-object-keys@2.1.0: - resolution: {integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==} + resolution: + { integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g== } sort-package-json@2.15.1: - resolution: {integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA==} + resolution: + { integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA== } hasBin: true - sort-package-json@3.6.1: - resolution: {integrity: sha512-Chgejw1+10p2D0U2tB7au1lHtz6TkFnxmvZktyBCRyV0GgmF6nl1IxXxAsPtJVsUyg/fo+BfCMAVVFUVRkAHrQ==} - engines: {node: '>=20'} + sort-package-json@3.7.1: + resolution: + { integrity: sha512-ssk1HG7whF8N/T1IsNAQrtHG5Cbdi0rAgRJZXYBr9hF5xaHnBNzUx/W6LcthEW7FhOwvZssbESZuO+GxssqAyA== } + engines: { node: ">=20" } hasBin: true source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + resolution: + { integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== } source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== } + engines: { node: ">=0.10.0" } source-map-loader@1.1.3: - resolution: {integrity: sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 source-map-loader@3.0.2: - resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg== } + engines: { node: ">= 12.13.0" } peerDependencies: webpack: ^5.0.0 - source-map-loader@4.0.2: - resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.72.1 - source-map-loader@5.0.0: - resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} - engines: {node: '>= 18.12.0'} + resolution: + { integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== } + engines: { node: ">= 18.12.0" } peerDependencies: webpack: ^5.72.1 source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + resolution: + { integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== } deprecated: See https://github.com/lydell/source-map-resolve#deprecated - source-map-support@0.4.18: - resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + resolution: + { integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== } source-map-support@0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + resolution: + { integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== } source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== } source-map-url@0.3.0: - resolution: {integrity: sha512-QU4fa0D6aSOmrT+7OHpUXw+jS84T0MLaQNtFs8xzLNe6Arj44Magd7WEbyVW5LNYoAPVV35aKs4azxIfVJrToQ==} + resolution: + { integrity: sha512-QU4fa0D6aSOmrT+7OHpUXw+jS84T0MLaQNtFs8xzLNe6Arj44Magd7WEbyVW5LNYoAPVV35aKs4azxIfVJrToQ== } deprecated: See https://github.com/lydell/source-map-url#deprecated source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + resolution: + { integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== } deprecated: See https://github.com/lydell/source-map-url#deprecated source-map@0.4.4: - resolution: {integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A== } + engines: { node: ">=0.8.0" } source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== } + engines: { node: ">=0.10.0" } source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== } + engines: { node: ">=0.10.0" } source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } + engines: { node: ">=0.10.0" } source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} + resolution: + { integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== } + engines: { node: ">= 12" } source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== } + engines: { node: ">= 8" } deprecated: The work that was done in this beta branch won't be included in future versions sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + resolution: + { integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== } deprecated: Please use @jridgewell/sourcemap-codec instead space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + resolution: + { integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== } sparkles@2.1.0: - resolution: {integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg== } + engines: { node: ">= 10.13.0" } spawn-args@0.2.0: - resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} - - spawn-wrap@2.0.0: - resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg== } spawn-wrap@3.0.0: - resolution: {integrity: sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ== } + engines: { node: ">=8" } spawnd@10.1.4: - resolution: {integrity: sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw== } + engines: { node: ">=16" } spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== } spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + resolution: + { integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== } spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + resolution: + { integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== } spdx-license-ids@3.0.23: - resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + resolution: + { integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw== } spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + resolution: + { integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== } spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + resolution: + { integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== } + engines: { node: ">=6.0.0" } speakingurl@14.0.1: - resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== } + engines: { node: ">=0.10.0" } speedline-core@1.4.3: - resolution: {integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog== } + engines: { node: ">=8.0" } split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== } + engines: { node: ">=0.10.0" } split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + resolution: + { integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== } split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + resolution: + { integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== } + engines: { node: ">= 10.x" } split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + resolution: + { integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== } sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + resolution: + { integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== } sri-toolbox@0.2.0: - resolution: {integrity: sha512-DQIMWCAr/M7phwo+d3bEfXwSBEwuaJL+SJx9cuqt1Ty7K96ZFoHpYnSbhrQZEr0+0/GtmpKECP8X/R4RyeTAfw==} - engines: {node: '>= 0.10.4'} + resolution: + { integrity: sha512-DQIMWCAr/M7phwo+d3bEfXwSBEwuaJL+SJx9cuqt1Ty7K96ZFoHpYnSbhrQZEr0+0/GtmpKECP8X/R4RyeTAfw== } + engines: { node: ">= 0.10.4" } srvx@0.11.16: - resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==} - engines: {node: '>=20.16.0'} + resolution: + { integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw== } + engines: { node: ">=20.16.0" } hasBin: true sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== } + engines: { node: ">=0.10.0" } hasBin: true ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + + ssri@11.0.0: + resolution: + { integrity: sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw== } + engines: { node: ^16.14.0 || >=18.0.0 } ssri@12.0.0: - resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== } + engines: { node: ^18.17.0 || >=20.5.0 } ssri@13.0.1: - resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ== } + engines: { node: ^20.17.0 || >=22.9.0 } ssri@6.0.2: - resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} + resolution: + { integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== } ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== } + engines: { node: ">= 8" } ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ== } + engines: { node: ">=12.0.0" } stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + resolution: + { integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA== } stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + resolution: + { integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== } + deprecated: "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + resolution: + { integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== } stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== } + engines: { node: ">=10" } stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: + { integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== } stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + resolution: + { integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== } stagehand@1.0.1: - resolution: {integrity: sha512-GqXBq2SPWv9hTXDFKS8WrKK1aISB0aKGHZzH+uD4ShAgs+Fz20ZfoerLOm8U+f62iRWLrw6nimOY/uYuTcVhvg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { integrity: sha512-GqXBq2SPWv9hTXDFKS8WrKK1aISB0aKGHZzH+uD4ShAgs+Fz20ZfoerLOm8U+f62iRWLrw6nimOY/uYuTcVhvg== } + engines: { node: 6.* || 8.* || >= 10.* } standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + resolution: + { integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== } state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} + resolution: + { integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== } static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - - stats.ts@1.1.0: - resolution: {integrity: sha512-mokWb6xGU0elmDlUT6Y5E4zsUs/Enlq5fpyE7pfffpJg9Lg83GlL7B9zHEPA0eDvDC3Ko0ZZ50cjIN8yYJRPoQ==} + resolution: + { integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== } + engines: { node: ">=0.10.0" } stats.ts@2.1.6: - resolution: {integrity: sha512-2oitRIDbcfRjpC3q+YGXtFld4y7BjLSTlFuRtitbkLFTucLpInG/0whMqIqP9B3LqrUfhcK8lKgZRDebTz++7w==} + resolution: + { integrity: sha512-2oitRIDbcfRjpC3q+YGXtFld4y7BjLSTlFuRtitbkLFTucLpInG/0whMqIqP9B3LqrUfhcK8lKgZRDebTz++7w== } statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== } + engines: { node: ">= 0.6" } statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== } + engines: { node: ">= 0.8" } std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + resolution: + { integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== } std-env@4.1.0: - resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + resolution: + { integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ== } stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== } + engines: { node: ">=18" } stdin-discarder@0.3.2: - resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A== } + engines: { node: ">=18" } stealthy-require@1.1.1: - resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== } + engines: { node: ">=0.10.0" } stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== } + engines: { node: ">= 0.4" } stream-browserify@2.0.2: - resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} + resolution: + { integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== } stream-composer@1.0.2: - resolution: {integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==} + resolution: + { integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w== } stream-each@1.2.3: - resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} + resolution: + { integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== } stream-exhaust@1.0.2: - resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} + resolution: + { integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== } stream-http@2.8.3: - resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} + resolution: + { integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== } stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + resolution: + { integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== } streamroller@1.0.6: - resolution: {integrity: sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== } + engines: { node: ">=6.0" } deprecated: 1.x is no longer supported. Please upgrade to 3.x or higher. streamroller@3.1.5: - resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== } + engines: { node: ">=8.0" } - streamx@2.25.0: - resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} + streamx@2.28.0: + resolution: + { integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw== } strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== } + engines: { node: ">=0.10.0" } string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + resolution: + { integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== } + engines: { node: ">=0.6.19" } string-indexes@2.0.1: - resolution: {integrity: sha512-3zrpkaEqIXsNxjsETX01z67BQ8dsAMbHI8xtzvZmscjAu72ZARjZXoTXhJ0I4cBw07Sa6Om6Nx8hKKXYHMpDOQ==} + resolution: + { integrity: sha512-3zrpkaEqIXsNxjsETX01z67BQ8dsAMbHI8xtzvZmscjAu72ZARjZXoTXhJ0I4cBw07Sa6Om6Nx8hKKXYHMpDOQ== } string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== } + engines: { node: ">=10" } string-template@0.2.1: - resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} + resolution: + { integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== } string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== } + engines: { node: ">=0.10.0" } string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== } + engines: { node: ">=4" } string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== } + engines: { node: ">=6" } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } + engines: { node: ">=8" } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } + engines: { node: ">=12" } string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== } + engines: { node: ">=18" } string-width@8.2.1: - resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA== } + engines: { node: ">=20" } string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== } + engines: { node: ">= 0.4" } string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== } + engines: { node: ">= 0.4" } string.prototype.padend@3.1.6: - resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== } + engines: { node: ">= 0.4" } string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + resolution: + { integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== } - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.11: + resolution: + { integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w== } + engines: { node: ">= 0.4" } - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} + string.prototype.trimend@1.0.10: + resolution: + { integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw== } + engines: { node: ">= 0.4" } string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== } + engines: { node: ">= 0.4" } string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + resolution: + { integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== } string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + resolution: + { integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== } stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== } + engines: { node: ">=4" } strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== } + engines: { node: ">=0.10.0" } strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== } + engines: { node: ">=4" } strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== } + engines: { node: ">=6" } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } + engines: { node: ">=8" } strip-ansi@7.2.0: - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== } + engines: { node: ">=12" } strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== } + engines: { node: ">=0.10.0" } strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } + engines: { node: ">=4" } strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== } + engines: { node: ">=8" } strip-comments@2.0.1: - resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== } + engines: { node: ">=10" } strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== } + engines: { node: ">=0.10.0" } strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== } + engines: { node: ">=6" } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== } + engines: { node: ">=12" } strip-final-newline@4.0.0: - resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== } + engines: { node: ">=18" } strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== } + engines: { node: ">=8" } strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== } + engines: { node: ">=0.10.0" } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.1.1: - resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + resolution: + { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } + engines: { node: ">=8" } strip-literal@3.1.0: - resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + resolution: + { integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== } strip-outer@1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== } + engines: { node: ">=0.10.0" } strip-test-selectors@0.1.0: - resolution: {integrity: sha512-wkVYph30L7wYkMf5EypfTqhY4qZwmQ0hpFOTksaXne49YbUr2jenJl5w5yj9IWx3ojtoH9BGAQ7cShnYEzbs5g==} + resolution: + { integrity: sha512-wkVYph30L7wYkMf5EypfTqhY4qZwmQ0hpFOTksaXne49YbUr2jenJl5w5yj9IWx3ojtoH9BGAQ7cShnYEzbs5g== } structured-clone-es@2.0.0: - resolution: {integrity: sha512-5UuAHmBLXYPCl22xWJrFuGmIhBKQzxISPVz6E7nmTmTcAOpUzlbjKJsRrCE4vADmMQ0dzeCnlWn9XufnAGf76Q==} + resolution: + { integrity: sha512-5UuAHmBLXYPCl22xWJrFuGmIhBKQzxISPVz6E7nmTmTcAOpUzlbjKJsRrCE4vADmMQ0dzeCnlWn9XufnAGf76Q== } stubborn-fs@2.0.0: - resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + resolution: + { integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA== } stubborn-utils@1.0.2: - resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} + resolution: + { integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg== } style-loader@2.0.0: - resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 - style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} + resolution: + { integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== } + engines: { node: ">= 18.12.0" } peerDependencies: webpack: ^5.27.0 style-resources-loader@1.5.0: - resolution: {integrity: sha512-fIfyvQ+uvXaCBGGAgfh+9v46ARQB1AWdaop2RpQw0PBVuROsTBqGvx8dj0kxwjGOAyq3vepe4AOK3M6+Q/q2jw==} - engines: {node: '>=8.9'} + resolution: + { integrity: sha512-fIfyvQ+uvXaCBGGAgfh+9v46ARQB1AWdaop2RpQw0PBVuROsTBqGvx8dj0kxwjGOAyq3vepe4AOK3M6+Q/q2jw== } + engines: { node: ">=8.9" } peerDependencies: webpack: ^3.0.0 || ^4.0.0 || ^5.0.0 style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + resolution: + { integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== } styled-jsx@5.1.6: - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA== } + engines: { node: ">= 12.0.0" } peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + "@babel/core": "*" + babel-plugin-macros: "*" + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true babel-plugin-macros: optional: true styled_string@0.0.1: - resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} + resolution: + { integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA== } stylehacks@4.0.3: - resolution: {integrity: sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==} - engines: {node: '>=6.9.0'} + resolution: + { integrity: sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== } + engines: { node: ">=6.9.0" } stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} + resolution: + { integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== } + engines: { node: ^10 || ^12 || >=14.0 } peerDependencies: postcss: ^8.2.15 stylehacks@6.1.1: - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 stylehacks@7.0.11: - resolution: {integrity: sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + resolution: + { integrity: sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg== } + engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 } peerDependencies: postcss: ^8.5.13 - stylehacks@8.0.0: - resolution: {integrity: sha512-sWyjaJvBqHoVKYPbQ8JRvrGSPaYWtWrJsU+fGVtwKB1GE1rRPu3rC7T6UCuXLoL00Dwb+tsHe2T904r8Vnsx8w==} - engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} + stylehacks@8.0.1: + resolution: + { integrity: sha512-Gv095oTD0N+BdJALNFDsxZpETHZLTxbOl5RyIO7y6VAE6sR3z0MnV3Nix7N0IATNldNTrkvSASp2KR1Yt526HA== } + engines: { node: ^22.11.0 || ^24.11.0 || >=26.0 } peerDependencies: - postcss: ^8.5.14 + postcss: ^8.5.15 stylelint-config-recommended-scss@14.1.0: - resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg== } + engines: { node: ">=18.12.0" } peerDependencies: postcss: ^8.3.3 stylelint: ^16.6.1 @@ -38833,152 +44698,146 @@ packages: optional: true stylelint-config-recommended@14.0.1: - resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg== } + engines: { node: ">=18.12.0" } peerDependencies: stylelint: ^16.1.0 stylelint-scss@6.14.0: - resolution: {integrity: sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA== } + engines: { node: ">=18.12.0" } peerDependencies: stylelint: ^16.8.2 stylelint@16.26.1: - resolution: {integrity: sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw== } + engines: { node: ">=18.12.0" } hasBin: true stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - - stylus@0.54.8: - resolution: {integrity: sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==} - hasBin: true + resolution: + { integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== } stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA== } + engines: { node: ">=16" } hasBin: true subarg@1.0.0: - resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} + resolution: + { integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== } subsume@4.0.0: - resolution: {integrity: sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { integrity: sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw== } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} + resolution: + { integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow== } sumchecker@3.0.1: - resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} - engines: {node: '>= 8.0'} + resolution: + { integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== } + engines: { node: ">= 8.0" } superjson@2.2.6: - resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA== } + engines: { node: ">=16" } supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g== } + engines: { node: ">=18" } supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} - - supports-color@3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== } + engines: { node: ">=0.8.0" } supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } + engines: { node: ">=4" } supports-color@6.0.0: - resolution: {integrity: sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== } + engines: { node: ">=6" } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } + engines: { node: ">=8" } supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } + engines: { node: ">=10" } supports-hyperlinks@3.2.0: - resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} - engines: {node: '>=14.18'} + resolution: + { integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== } + engines: { node: ">=14.18" } supports-hyperlinks@4.4.0: - resolution: {integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg== } + engines: { node: ">=20" } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte-check@3.8.6: - resolution: {integrity: sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - - svelte-check@4.4.8: - resolution: {integrity: sha512-67adfgBox5eNSNIvIIwgFizKGdcRrGpiMoNO2obHcYuLz7iTa8Xgm/NGU3ntMFnNm8K1grFOIG6HhMLX/vcN8w==} - engines: {node: '>= 18.0.0'} + resolution: + { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } + engines: { node: ">= 0.4" } + + svelte-check@4.6.0: + resolution: + { integrity: sha512-KhVnDFDSid57mmZtHz8gfW8AAGylOZ0vPnOIzVmAL+urzwK8sBYXRss953gD8T0OdgAQ11mdWhE6uadmtOz8TQ== } + engines: { node: ">= 18.0.0" } hasBin: true peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: '>=5.0.0' + typescript: ">=5.0.0" - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.8.0: + resolution: + { integrity: sha512-mikR1qwIVy3t5WthUoAXkMwxkXvabZP9FJgdx35Ei7EbGWmctva1Pih16Koeor/bdNNq8NXHlwKGS6NkYTawLg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.1 } peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true - svelte-eslint-parser@1.6.1: - resolution: {integrity: sha512-hhvSH6kRj46UzrBVO5TaotD+Iuvruj5ccKBcO4wAhVcPTLmIc/c32D8UllBTYO0on4LzYuM0rNzf1lM/gBlkSQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.33.0} + svelte-preprocess@6.0.5: + resolution: + { integrity: sha512-sgwew5yV/2eMeQobIWgAxCNarKwiTUDIc3siAUbq3sp0G6ONtzk0W+wJihMdqjbYb3iGU3ubpGv0usnnuXT3qg== } + engines: { node: ">= 18.0.0" } peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-hmr@0.16.0: - resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - - svelte-preprocess@5.1.4: - resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} - engines: {node: '>= 16.0.0'} - peerDependencies: - '@babel/core': ^7.10.2 + "@babel/core": ^7.10.2 coffeescript: ^2.5.1 less: ^3.11.3 || ^4.0.0 postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + postcss-load-config: ">=3" pug: ^3.0.0 sass: ^1.26.8 - stylus: ^0.55.0 + stylus: ">=0.55" sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + svelte: ^4.0.0 || ^5.0.0-next.100 || ^5.0.0 + typescript: ^5.0.0 || ^6.0.0 peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true coffeescript: optional: true @@ -38999,256 +44858,254 @@ packages: typescript: optional: true - svelte2tsx@0.7.55: - resolution: {integrity: sha512-JWzgeM3lqySRNfqcsesvVEh8LhTWBxQJ9RMjzJ+VepdmXtVnNd0SbtGctG6+/fbHq0N6mhwSd823gszw9JHeGQ==} + svelte2tsx@0.7.56: + resolution: + { integrity: sha512-NTvqqL+goYlW8gWNajk81L07+uu7jw5V2m1Az5MZbYm3GEydcHXh+uTrLHM9SuGuaqCtF90vlMXkOVBotfH94g== } peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 || ^6.0.0 - svelte@5.55.9: - resolution: {integrity: sha512-fTjjT8cHLDwigcu2j3pv7Jq04LklXevPB8uBgyHNiTXv+RMNvVnrjS4UEYrLMkhuq1vpCodHjiW+z/95SDs/fg==} - engines: {node: '>=18'} + svelte@5.56.3: + resolution: + { integrity: sha512-w7JvrM5IFl5cmfbY0TLik9o7mjRUJmRMhOR51tBPu708Gr/MjbGs7VnJnr/B0CaXeI4vtnOh7RKxDr0cwhMdDA== } + engines: { node: ">=18" } sver@1.8.4: - resolution: {integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==} + resolution: + { integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA== } svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + resolution: + { integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== } svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + resolution: + { integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== } svgo@1.3.2: - resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== } + engines: { node: ">=4.0.0" } deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x. hasBin: true svgo@2.8.2: - resolution: {integrity: sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA== } + engines: { node: ">=10.13.0" } hasBin: true svgo@3.3.3: - resolution: {integrity: sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng== } + engines: { node: ">=14.0.0" } hasBin: true svgo@4.0.1: - resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w== } + engines: { node: ">=16" } hasBin: true swc-loader@0.2.7: - resolution: {integrity: sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w==} + resolution: + { integrity: sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w== } peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' + "@swc/core": ^1.2.147 + webpack: ">=2" symbol-observable@1.2.0: - resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== } + engines: { node: ">=0.10.0" } symbol-observable@4.0.0: - resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== } + engines: { node: ">=0.10" } symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + resolution: + { integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== } symlink-or-copy@1.3.1: - resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==} + resolution: + { integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA== } sync-disk-cache@1.3.4: - resolution: {integrity: sha512-GlkGeM81GPPEKz/lH7QUTbvqLq7K/IUTuaKDSMulP9XQ42glqNJIN/RKgSOw4y8vxL1gOVvj+W7ruEO4s36eCw==} + resolution: + { integrity: sha512-GlkGeM81GPPEKz/lH7QUTbvqLq7K/IUTuaKDSMulP9XQ42glqNJIN/RKgSOw4y8vxL1gOVvj+W7ruEO4s36eCw== } sync-disk-cache@2.1.0: - resolution: {integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==} - engines: {node: 8.* || >= 10.*} - - synckit@0.11.12: - resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA== } + engines: { node: 8.* || >= 10.* } synckit@0.11.13: - resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg== } + engines: { node: ^14.18.0 || >=16.0.0 } system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== } + engines: { node: ">=18" } systemjs@6.15.1: - resolution: {integrity: sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==} + resolution: + { integrity: sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA== } tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + resolution: + { integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg== } table-layout@1.0.2: - resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== } + engines: { node: ">=8.0.0" } table-layout@4.1.1: - resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} - engines: {node: '>=12.17'} + resolution: + { integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA== } + engines: { node: ">=12.17" } table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== } + engines: { node: ">=10.0.0" } tagged-tag@1.0.0: - resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng== } + engines: { node: ">=20" } tannin@1.2.0: - resolution: {integrity: sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==} + resolution: + { integrity: sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA== } tap-parser@18.3.4: - resolution: {integrity: sha512-CiqzdpWn2CvONcWp7UNMF9/rCPJwCz0es+qykkgJruu1Y/rAS8A5MEQujmjx9NErfst3dGiZJU3lDS2jBsgbPA==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-CiqzdpWn2CvONcWp7UNMF9/rCPJwCz0es+qykkgJruu1Y/rAS8A5MEQujmjx9NErfst3dGiZJU3lDS2jBsgbPA== } + engines: { node: 20 || >=22 } hasBin: true tap-yaml@4.4.2: - resolution: {integrity: sha512-03mQI7QhfVZHJqGgFyxNTgUbgsG41ZzpWSb7k1Gangmf9hF71Jpb0Fczs7KtOdUDaHx+KxlPUdM2pQJaijebGA==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-03mQI7QhfVZHJqGgFyxNTgUbgsG41ZzpWSb7k1Gangmf9hF71Jpb0Fczs7KtOdUDaHx+KxlPUdM2pQJaijebGA== } + engines: { node: 20 || >=22 } tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== } + engines: { node: ">=6" } tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== } + engines: { node: ">=6" } tar-fs@2.1.4: - resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + resolution: + { integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== } tar-fs@3.1.2: - resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==} + resolution: + { integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw== } tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== } + engines: { node: ">=6" } tar-stream@3.1.8: - resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} + resolution: + { integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ== } tar-stream@3.2.0: - resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + resolution: + { integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg== } tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} + resolution: + { integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== } + engines: { node: ">=4.5" } deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== } + engines: { node: ">=10" } deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me tar@7.5.11: - resolution: {integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ== } + engines: { node: ">=18" } - tar@7.5.15: - resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} - engines: {node: '>=18'} + tar@7.5.16: + resolution: + { integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w== } + engines: { node: ">=18" } teex@1.0.1: - resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + resolution: + { integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== } temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== } + engines: { node: ">=8" } tempy@0.6.0: - resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== } + engines: { node: ">=10" } terminal-link@5.0.0: - resolution: {integrity: sha512-qFAy10MTMwjzjU8U16YS4YoZD+NQLHzLssFMNqgravjbvIPNiqkGFR4yjhJfmY9R5OFU7+yHxc6y+uGHkKwLRA==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-qFAy10MTMwjzjU8U16YS4YoZD+NQLHzLssFMNqgravjbvIPNiqkGFR4yjhJfmY9R5OFU7+yHxc6y+uGHkKwLRA== } + engines: { node: ">=20" } terser-webpack-plugin@1.4.6: - resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==} - engines: {node: '>= 6.9.0'} + resolution: + { integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA== } + engines: { node: ">= 6.9.0" } peerDependencies: webpack: ^4.0.0 terser-webpack-plugin@4.2.3: - resolution: {integrity: sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 - terser-webpack-plugin@5.6.0: - resolution: {integrity: sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' - 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 - terser-webpack-plugin@5.6.1: - resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' + resolution: + { integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ== } + engines: { node: ">= 10.13.0" } + peerDependencies: + "@minify-html/node": "*" + "@swc/core": "*" + "@swc/css": "*" + "@swc/html": "*" + clean-css: "*" + cssnano: "*" + csso: "*" + esbuild: "*" + html-minifier-terser: "*" + lightningcss: "*" + postcss: "*" + uglify-js: "*" webpack: ^5.1.0 peerDependenciesMeta: - '@minify-html/node': + "@minify-html/node": optional: true - '@swc/core': + "@swc/core": optional: true - '@swc/css': + "@swc/css": optional: true - '@swc/html': + "@swc/html": optional: true clean-css: optional: true @@ -39268,427 +45125,505 @@ packages: optional: true terser@4.8.1: - resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} - engines: {node: '>=6.0.0'} - hasBin: true - - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== } + engines: { node: ">=6.0.0" } hasBin: true terser@5.48.0: - resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q== } + engines: { node: ">=10" } hasBin: true test-exclude@5.2.3: - resolution: {integrity: sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== } + engines: { node: ">=6" } test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== } + engines: { node: ">=8" } test-exclude@8.0.0: - resolution: {integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==} - engines: {node: 20 || >=22} - - testem@3.20.0: - resolution: {integrity: sha512-SSFfJQK/SGruISFjoKG2jCYwK596wWNPJFj2Wo77GzeIUxZ8ZjuwpyF01uekTLu4ITL6i9R4m1sWaKPK/HsunA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + resolution: + { integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ== } + engines: { node: 20 || >=22 } + + testem@3.20.1: + resolution: + { integrity: sha512-HMbcVlrRDt+GjEGJZrPSCp0XFzM7SSdmLvNSJm++hIITEIMoccCQGikvelOO/NjfZJ0HTZCEyvg3+CIStjaZqQ== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } hasBin: true text-decoder@1.2.7: - resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + resolution: + { integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ== } text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== } + engines: { node: ">=0.10" } text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + resolution: + { integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== } textextensions@2.6.0: - resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== } + engines: { node: ">=0.8" } thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== } + engines: { node: ">=0.8" } thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== } thingies@2.6.0: - resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} - engines: {node: '>=10.18'} + resolution: + { integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg== } + engines: { node: ">=10.18" } peerDependencies: tslib: ^2 third-party-web@0.27.0: - resolution: {integrity: sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==} + resolution: + { integrity: sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA== } third-party-web@0.29.2: - resolution: {integrity: sha512-fegtha91tq2DHphyoiBXVHjVi2YG9zFaRnboT9C28tO1en9Y3wJsfspuy40F+u5wl3hHVbw7cnd1b67kEGHb8g==} + resolution: + { integrity: sha512-fegtha91tq2DHphyoiBXVHjVi2YG9zFaRnboT9C28tO1en9Y3wJsfspuy40F+u5wl3hHVbw7cnd1b67kEGHb8g== } thread-loader@3.0.4: - resolution: {integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== } + engines: { node: ">= 10.13.0" } peerDependencies: webpack: ^4.27.0 || ^5.0.0 through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + resolution: + { integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== } through2@3.0.2: - resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} + resolution: + { integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== } through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + resolution: + { integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== } through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + resolution: + { integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== } thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + resolution: + { integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== } time-fix-plugin@2.0.7: - resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} + resolution: + { integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw== } peerDependencies: - webpack: '>=4.0.0' + webpack: ">=4.0.0" timers-browserify@2.0.12: - resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} - engines: {node: '>=0.6.0'} + resolution: + { integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== } + engines: { node: ">=0.6.0" } timsort@0.3.0: - resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} + resolution: + { integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== } tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + resolution: + { integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== } tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + resolution: + { integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== } tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + resolution: + { integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== } tiny-lr@2.0.0: - resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==} + resolution: + { integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q== } tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + resolution: + { integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== } - tinyclip@0.1.12: - resolution: {integrity: sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==} - engines: {node: ^16.14.0 || >= 17.3.0} + tinyclip@0.1.14: + resolution: + { integrity: sha512-F1oWdz8tjT17qe1d5JgDK6z03WGOhYYAN0lK3/D/fzNiy93xswLLEw7pk+3g05onhAy6Bsc6PLNUGhdgVjemMQ== } + engines: { node: ^16.14.0 || >= 17.3.0 } tinydate@1.3.0: - resolution: {integrity: sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w== } + engines: { node: ">=4" } tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + resolution: + { integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== } - tinyexec@1.2.2: - resolution: {integrity: sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==} - engines: {node: '>=18'} + tinyexec@1.2.4: + resolution: + { integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg== } + engines: { node: ">=18" } tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww== } + engines: { node: ">=12.0.0" } tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg== } + engines: { node: ">=12.0.0" } - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} + tinyglobby@0.2.17: + resolution: + { integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== } + engines: { node: ">=12.0.0" } tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw== } + engines: { node: ">=14.0.0" } tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + resolution: + { integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== } - tldts-core@7.1.2: - resolution: {integrity: sha512-26EbERPLf5wkNFKW+7egxArSPN1Nqipe/PIe1nvhpNu8HqQeY2pYdOeQk4sAiADv/e03VzHkLY0PPohKv1JMAQ==} + tldts-core@7.4.3: + resolution: + { integrity: sha512-27ep5H9PzdBrNd5OFM/j3WCU8F3kPwM9D0BOaOf7uYfxMJfyr0K5Tjj69Gri+sZlh2WXd5buIm47NuPF29CDiw== } - tldts-icann@7.1.2: - resolution: {integrity: sha512-4S/2Nlk1GOBhfMzlS/nLl4qyjxFteldNJ8VYfiBhyrrbb5qcHOeinZJ8xX63czbzUNq88ORH7hF9/Ocueellvw==} + tldts-icann@7.4.3: + resolution: + { integrity: sha512-9XCxITTKwJZ1VP3NmW3jZrtZFbUs9c6MoczqtvQXQddBdlxXF/6BXDe9SvR3TcHg8yYttEqoQmbLibR8R2XIJQ== } tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + resolution: + { integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== } hasBin: true - tldts@7.1.2: - resolution: {integrity: sha512-RUX5sQm8bl03ycwQ6nSgJiKw9FZWhA8GBzxX6X1lsG3xKzFIW+lYLLpM30FQbDD6XjTWa/VkF15VxjnAMWYJAQ==} + tldts@7.4.3: + resolution: + { integrity: sha512-A3BDQBeeukYPzB4QdQ1DtdlUmp4x2OCH8n5UVhEWbyANxNep8GavottKzd1xYKFJKjUgMyPT7EzOfnBO55s8Sg== } hasBin: true tmp@0.0.28: - resolution: {integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg==} - engines: {node: '>=0.4.0'} - - tmp@0.0.30: - resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg== } + engines: { node: ">=0.4.0" } tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } + engines: { node: ">=0.6.0" } tmp@0.1.0: - resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== } + engines: { node: ">=6" } tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - - tmp@0.2.4: - resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} - engines: {node: '>=14.14'} - - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} - engines: {node: '>=14.14'} + resolution: + { integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== } + engines: { node: ">=8.17.0" } tmp@0.2.6: - resolution: {integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==} - engines: {node: '>=14.14'} + resolution: + { integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA== } + engines: { node: ">=14.14" } + + tmp@0.2.7: + resolution: + { integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw== } + engines: { node: ">=14.14" } tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + resolution: + { integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== } to-array@0.1.4: - resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==} + resolution: + { integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== } to-arraybuffer@1.0.1: - resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + resolution: + { integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== } to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== } + engines: { node: ">= 0.4" } to-fast-properties@1.0.3: - resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== } + engines: { node: ">=0.10.0" } to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== } + engines: { node: ">=0.10.0" } to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== } + engines: { node: ">=6" } to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== } + engines: { node: ">=0.10.0" } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: ">=8.0" } to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== } + engines: { node: ">=0.10.0" } to-through@3.0.0: - resolution: {integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw== } + engines: { node: ">=10.13.0" } to-valid-identifier@1.0.0: - resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw== } + engines: { node: ">=20" } + + toasted-notifier@10.1.0: + resolution: + { integrity: sha512-SvAufC4t75lRqwQtComPeDC93j8Toy3BRsD1cMIZ+YdfxTnIyxQb+YCuhXohNFDGJPI+RgOYImkDX76fTo1YDA== } toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== } + engines: { node: ">=0.6" } token-stream@1.0.0: - resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + resolution: + { integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== } toposort@1.0.7: - resolution: {integrity: sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==} + resolution: + { integrity: sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== } totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== } + engines: { node: ">=6" } touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + resolution: + { integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== } hasBin: true tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== } + engines: { node: ">=0.8" } tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== } + engines: { node: ">=16" } tough-cookie@6.0.1: - resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw== } + engines: { node: ">=16" } tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== } tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== } tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== } + engines: { node: ">=18" } tr46@6.0.0: - resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw== } + engines: { node: ">=20" } tree-dump@1.1.0: - resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} - engines: {node: '>=10.0'} + resolution: + { integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== } + engines: { node: ">=10.0" } peerDependencies: - tslib: '2' + tslib: "2" tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: + { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } hasBin: true tree-sync@1.4.0: - resolution: {integrity: sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ==} + resolution: + { integrity: sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ== } tree-sync@2.1.0: - resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw== } + engines: { node: ">=8" } treeverse@3.0.0: - resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + resolution: + { integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== } trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== } + engines: { node: ">=8" } trim-repeated@1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== } + engines: { node: ">=0.10.0" } trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + resolution: + { integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== } trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} + resolution: + { integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== } deprecated: Use String.prototype.trim() instead triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + resolution: + { integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== } + engines: { node: ">= 14.0.0" } trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + resolution: + { integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== } trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + resolution: + { integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== } try-catch@3.0.1: - resolution: {integrity: sha512-91yfXw1rr/P6oLpHSyHDOHm0vloVvUoo9FVdw8YwY05QjJQG9OT0LUxe2VRAzmHG+0CUOmI3nhxDUMLxDN/NEQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-91yfXw1rr/P6oLpHSyHDOHm0vloVvUoo9FVdw8YwY05QjJQG9OT0LUxe2VRAzmHG+0CUOmI3nhxDUMLxDN/NEQ== } + engines: { node: ">=6" } try-catch@4.0.9: - resolution: {integrity: sha512-tEWGmsfqZ9NBzvDOGbACxu+AaXajM6+RtmIM6wCIkFD6lCa3/UvjNuWjCRoOjn8qTKuZlQmrMh8vSTBMQcceew==} - engines: {node: '>=22'} + resolution: + { integrity: sha512-tEWGmsfqZ9NBzvDOGbACxu+AaXajM6+RtmIM6wCIkFD6lCa3/UvjNuWjCRoOjn8qTKuZlQmrMh8vSTBMQcceew== } + engines: { node: ">=22" } try-to-catch@4.0.5: - resolution: {integrity: sha512-VKBslDQsy4pGj2TMNgDdskWb7AWSi/9dPEmcNv3sdL0+aRMQTPJo6aEqlcuN0vbOwFfsE1oAXmx3bFdf6vrJFg==} - engines: {node: '>=22'} + resolution: + { integrity: sha512-VKBslDQsy4pGj2TMNgDdskWb7AWSi/9dPEmcNv3sdL0+aRMQTPJo6aEqlcuN0vbOwFfsE1oAXmx3bFdf6vrJFg== } + engines: { node: ">=22" } ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== } + engines: { node: ">=16" } peerDependencies: - typescript: '>=4.2.0' + typescript: ">=4.2.0" ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} + resolution: + { integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== } + engines: { node: ">=18.12" } peerDependencies: - typescript: '>=4.8.4' + typescript: ">=4.8.4" ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== } ts-json-schema-generator@2.9.0: - resolution: {integrity: sha512-NR5ZE108uiPtBHBJNGnhwoUaUx5vWTDJzDFG9YlRoqxPU76n+5FClRh92dcGgysbe1smRmYalM9Saj97GW1J4Q==} - engines: {node: '>=22.0.0'} + resolution: + { integrity: sha512-NR5ZE108uiPtBHBJNGnhwoUaUx5vWTDJzDFG9YlRoqxPU76n+5FClRh92dcGgysbe1smRmYalM9Saj97GW1J4Q== } + engines: { node: ">=22.0.0" } hasBin: true ts-loader@8.4.0: - resolution: {integrity: sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw== } + engines: { node: ">=10.0.0" } peerDependencies: - typescript: '*' - webpack: '*' + typescript: "*" + webpack: "*" - ts-loader@9.5.7: - resolution: {integrity: sha512-/ZNrKgA3K3PtpMYOC71EeMWIloGw3IYEa5/t1cyz2r5/PyUwTXGzYJvcD3kfUvmhlfpz1rhV8B2O6IVTQ0avsg==} - engines: {node: '>=12.0.0'} + ts-loader@9.6.1: + resolution: + { integrity: sha512-8FMHnmxtpncUAu0ZjkqpXnOTlwc9eY95esH8WVN94guTPPdkg2ofVdiVM5j8L2lmjiGerXd56zXb/D2JyVQPLg== } + engines: { node: ">=12.0.0" } peerDependencies: - typescript: '*' - webpack: ^5.0.0 + loader-utils: "*" + typescript: "*" + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + loader-utils: + optional: true ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + resolution: + { integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== } hasBin: true peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true - '@swc/wasm': + "@swc/wasm": optional: true ts-pnp@1.2.0: - resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== } + engines: { node: ">=6" } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - ts-simple-type@1.0.7: - resolution: {integrity: sha512-zKmsCQs4dZaeSKjEA7pLFDv7FHHqAFLPd0Mr//OIJvu8M+4p4bgSFJwZSEBEg3ec9W7RzRz1vi8giiX0+mheBQ==} + ts-simple-type@2.0.0-next.0: + resolution: + { integrity: sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg== } tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} + resolution: + { integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w== } + engines: { node: ^18 || >=20 } + deprecated: unmaintained hasBin: true peerDependencies: typescript: ^5.0.0 @@ -39697,38 +45632,42 @@ packages: optional: true tsconfig-paths-webpack-plugin@4.2.0: - resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA== } + engines: { node: ">=10.13.0" } tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + resolution: + { integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== } tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - - tsdown@0.22.1: - resolution: {integrity: sha512-Ldx1jLyDFEzsN/fMBi2TBVaZe4fuEJhIiHjQhX0pV7oa5uYz5Imdivs5mNzEXOrMEtFRR6C9BQ2YqLoroffB+Q==} - engines: {node: ^22.18.0 || >=24.0.0} + resolution: + { integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== } + engines: { node: ">=6" } + + tsdown@0.22.3: + resolution: + { integrity: sha512-louqbfA8Qf//B9jTTL0FPtXTNpjCWv1VPkbcmQMph2pTpzs+LnB1tbe4tDDRVpo2BjF5SgUXaTZe45SxB8pWHg== } + engines: { node: ^22.18.0 || >=24.11.0 } hasBin: true peerDependencies: - '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.1 - '@tsdown/exe': 0.22.1 - '@vitejs/devtools': '*' + "@arethetypeswrong/core": ^0.18.1 + "@tsdown/css": 0.22.3 + "@tsdown/exe": 0.22.3 + "@vitejs/devtools": "*" publint: ^0.3.8 - tsx: '*' + tsx: "*" typescript: ^5.0.0 || ^6.0.0 unplugin-unused: ^0.5.0 - unrun: '*' + unrun: "*" peerDependenciesMeta: - '@arethetypeswrong/core': + "@arethetypeswrong/core": optional: true - '@tsdown/css': + "@tsdown/css": optional: true - '@tsdown/exe': + "@tsdown/exe": optional: true - '@vitejs/devtools': + "@vitejs/devtools": optional: true publint: optional: true @@ -39742,33 +45681,38 @@ packages: optional: true tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: + { integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== } tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + resolution: + { integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== } tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} + resolution: + { integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== } + engines: { node: ">=0.6.x" } tsup-preset-solid@2.2.0: - resolution: {integrity: sha512-sPAzeArmYkVAZNRN+m4tkiojdd0GzW/lCwd4+TQDKMENe8wr2uAuro1s0Z59ASmdBbkXoxLgCiNcuQMyiidMZg==} + resolution: + { integrity: sha512-sPAzeArmYkVAZNRN+m4tkiojdd0GzW/lCwd4+TQDKMENe8wr2uAuro1s0Z59ASmdBbkXoxLgCiNcuQMyiidMZg== } peerDependencies: tsup: ^8.0.0 tsup@8.5.1: - resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing== } + engines: { node: ">=18" } hasBin: true peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 + "@microsoft/api-extractor": ^7.36.0 + "@swc/core": ^1 postcss: ^8.4.12 - typescript: '>=4.5.0' + typescript: ">=4.5.0" peerDependenciesMeta: - '@microsoft/api-extractor': + "@microsoft/api-extractor": optional: true - '@swc/core': + "@swc/core": optional: true postcss: optional: true @@ -39776,390 +45720,457 @@ packages: optional: true tsyringe@4.10.0: - resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} - engines: {node: '>= 6.0.0'} + resolution: + { integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw== } + engines: { node: ">= 6.0.0" } tty-browserify@0.0.0: - resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} + resolution: + { integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== } tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } tuf-js@4.1.0: - resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ== } + engines: { node: ^20.17.0 || >=22.9.0 } tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + resolution: + { integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== } tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + resolution: + { integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== } type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== } + engines: { node: ">= 0.8.0" } type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } + engines: { node: ">= 0.8.0" } type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== } + engines: { node: ">=4" } type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} - - type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== } + engines: { node: ">=4" } type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== } + engines: { node: ">=10" } type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== } + engines: { node: ">=10" } type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } + engines: { node: ">=10" } type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== } + engines: { node: ">=10" } type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== } + engines: { node: ">=8" } type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== } + engines: { node: ">=8" } type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== } + engines: { node: ">=10" } type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== } + engines: { node: ">=12.20" } type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} + resolution: + { integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== } + engines: { node: ">=14.16" } type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== } + engines: { node: ">=16" } - type-fest@5.6.0: - resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} - engines: {node: '>=20'} + type-fest@5.7.0: + resolution: + { integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg== } + engines: { node: ">=20" } type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== } + engines: { node: ">= 0.6" } type-is@2.1.0: - resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA== } + engines: { node: ">= 18" } type-level-regexp@0.1.17: - resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + resolution: + { integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg== } typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== } + engines: { node: ">= 0.4" } typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== } + engines: { node: ">= 0.4" } typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== } + engines: { node: ">= 0.4" } - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.8: + resolution: + { integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g== } + engines: { node: ">= 0.4" } - typed-assert@1.0.9: - resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} - - typed-event-target@4.3.0: - resolution: {integrity: sha512-21TH+1pkLuMNjwsDDXY5272CWmxgwszWd7kOoTsxgc87kcSkH9wiandsyVQbOXC2e85H8k+xKL3OEfKxt/pwxg==} - engines: {node: '>=22'} + typed-event-target@4.3.1: + resolution: + { integrity: sha512-X9Wx2Xd58rcnWUTMlSJVREN7hhmf5jvcr0UY4qMRRUJo5WdI66COmLgLKHlMtWw2vo1dvxL2H8gBTTeRb6rP/w== } + engines: { node: ">=22" } typed-query-selector@2.12.2: - resolution: {integrity: sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==} + resolution: + { integrity: sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ== } typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + resolution: + { integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== } typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + resolution: + { integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== } typedoc-plugin-clarity@1.6.0: - resolution: {integrity: sha512-BvJj8ZvgCZzS2sLO7yIkRg9EWLPdll+xLyQekjMAtypHITOXSwCO9E9Ir77R2fctsVC9BVJiToGAYcsMtyuPdw==} + resolution: + { integrity: sha512-BvJj8ZvgCZzS2sLO7yIkRg9EWLPdll+xLyQekjMAtypHITOXSwCO9E9Ir77R2fctsVC9BVJiToGAYcsMtyuPdw== } peerDependencies: typedoc: ^0.25.4 typedoc-plugin-coverage@4.0.3: - resolution: {integrity: sha512-baim3wyMkqpX7rBzL/6iZ7wzKJuSr9ffP16RHOsdTUNoHUZeXLIZHSUBtUhXmNHaUNRgfqdmKLBwyggbJjGdeQ==} - engines: {node: '>= 18'} + resolution: + { integrity: sha512-baim3wyMkqpX7rBzL/6iZ7wzKJuSr9ffP16RHOsdTUNoHUZeXLIZHSUBtUhXmNHaUNRgfqdmKLBwyggbJjGdeQ== } + engines: { node: ">= 18" } peerDependencies: typedoc: 0.28.x typedoc-plugin-google-ads@1.6.0: - resolution: {integrity: sha512-pFkPK9tjGc/0NWnJojh1wc/UZ/+cUJXe13ZbbUsQ0JUjkCSWRuOt1d9BGrmar7184fq0GBU8zByJ3ucG2wI/MA==} + resolution: + { integrity: sha512-pFkPK9tjGc/0NWnJojh1wc/UZ/+cUJXe13ZbbUsQ0JUjkCSWRuOt1d9BGrmar7184fq0GBU8zByJ3ucG2wI/MA== } peerDependencies: typedoc: ^0.25.4 typedoc-plugin-keywords@1.6.0: - resolution: {integrity: sha512-URyCIHw6+Lwil0ywy6lVb2TckfDVGjAWnRnTAiiSZaRaglI6vaaP1EhhwEipOIlHaJSnHZfdwpWe1t4mffTIpA==} + resolution: + { integrity: sha512-URyCIHw6+Lwil0ywy6lVb2TckfDVGjAWnRnTAiiSZaRaglI6vaaP1EhhwEipOIlHaJSnHZfdwpWe1t4mffTIpA== } peerDependencies: typedoc: ^0.25.4 - typedoc-plugin-markdown@4.11.0: - resolution: {integrity: sha512-2iunh2ALyfyh204OF7h2u0kuQ84xB3jFZtFyUr01nThJkLvR8oGGSSDlyt2gyO4kXhvUxDcVbO0y43+qX+wFbw==} - engines: {node: '>= 18'} + typedoc-plugin-markdown@4.12.0: + resolution: + { integrity: sha512-eJDEMAfxCmede22c/Jw7d0FA13ggAQv+KkwQYKYCdqI02cin6Rc9QRwbG/7XvvHWinuFejySnZVUWDtvGk3Vbg== } + engines: { node: ">= 18" } peerDependencies: typedoc: 0.28.x typedoc-plugin-mdn-links@5.1.1: - resolution: {integrity: sha512-fLlYudnlGkE9uspOEm/SBXwr+G0RbxoDZiHAVsCg+5NwKe2aUxjZK1YyQfleNZydImanzkX2oUJF29xbEeOSWw==} + resolution: + { integrity: sha512-fLlYudnlGkE9uspOEm/SBXwr+G0RbxoDZiHAVsCg+5NwKe2aUxjZK1YyQfleNZydImanzkX2oUJF29xbEeOSWw== } peerDependencies: typedoc: 0.27.x || 0.28.x typedoc-plugin-missing-exports@4.1.3: - resolution: {integrity: sha512-tgrlnwzXbqMP2/3BaZk0atddPsD7UnpCoeQ0cUCtk624gODT1bLYOLBEJLXQyVmbnP8HZCMhHpRiR+rxSdZqhg==} + resolution: + { integrity: sha512-tgrlnwzXbqMP2/3BaZk0atddPsD7UnpCoeQ0cUCtk624gODT1bLYOLBEJLXQyVmbnP8HZCMhHpRiR+rxSdZqhg== } peerDependencies: typedoc: ^0.28.1 typedoc@0.28.19: - resolution: {integrity: sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw==} - engines: {node: '>= 18', pnpm: '>= 10'} + resolution: + { integrity: sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw== } + engines: { node: ">= 18", pnpm: ">= 10" } hasBin: true peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + resolution: + { integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA== } typescript-auto-import-cache@0.3.6: - resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} + resolution: + { integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ== } - typescript-eslint@8.60.0: - resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript-eslint@8.61.1: + resolution: + { integrity: sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + typescript: ">=4.8.4 <6.1.0" typescript-memoize@1.1.1: - resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} - - typescript@3.9.10: - resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true + resolution: + { integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA== } - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} + typescript@5.2.2: + resolution: + { integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== } + engines: { node: ">=14.17" } hasBin: true typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@6.0.2: - resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} - engines: {node: '>=14.17'} + resolution: + { integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== } + engines: { node: ">=14.17" } hasBin: true typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} + resolution: + { integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== } + engines: { node: ">=14.17" } hasBin: true typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== } + engines: { node: ">=8" } typical@5.2.0: - resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== } + engines: { node: ">=8" } typical@7.3.0: - resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} - engines: {node: '>=12.17'} + resolution: + { integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw== } + engines: { node: ">=12.17" } ua-parser-js@0.7.22: - resolution: {integrity: sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==} + resolution: + { integrity: sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== } deprecated: You are using an outdated version of ua-parser-js. Please update to ua-parser-js v0.7.33 / v1.0.33 / v2.0.0 (or later) to avoid ReDoS vulnerability [CVE-2022-25927](https://github.com/advisories/GHSA-fhg7-m89q-25r3) ua-parser-js@0.7.41: - resolution: {integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==} + resolution: + { integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg== } hasBin: true ua-parser-js@1.0.41: - resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} + resolution: + { integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug== } hasBin: true uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + resolution: + { integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== } uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + resolution: + { integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== } ufo@1.6.4: - resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + resolution: + { integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA== } uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== } + engines: { node: ">=0.8.0" } hasBin: true uglify-js@3.4.10: - resolution: {integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== } + engines: { node: ">=0.8.0" } hasBin: true ultrahtml@1.6.0: - resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + resolution: + { integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw== } unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== } + engines: { node: ">= 0.4" } unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + resolution: + { integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== } unc-path-regex@0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== } + engines: { node: ">=0.10.0" } unconfig-core@7.5.0: - resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + resolution: + { integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w== } uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + resolution: + { integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== } unctx@2.5.0: - resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} + resolution: + { integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== } undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + resolution: + { integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== } underscore.string@3.3.6: - resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==} + resolution: + { integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ== } underscore@1.13.8: - resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} + resolution: + { integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ== } undertaker-registry@2.0.0: - resolution: {integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew== } + engines: { node: ">= 10.13.0" } undertaker@2.0.0: - resolution: {integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ== } + engines: { node: ">=10.13.0" } undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + resolution: + { integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== } - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici-types@7.18.2: + resolution: + { integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== } undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} - - undici-types@7.25.0: - resolution: {integrity: sha512-AXNgS1Byr27fTI+2bsPEkV9CxkT8H6xNyRI68b3TatlZo3RkzlqQBLL+w7SmGPVpokjHbcuNVQUWE7FRTg+LRA==} + resolution: + { integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== } - undici-types@8.3.0: - resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + undici-types@7.28.0: + resolution: + { integrity: sha512-LJAfY+2w6HGeT8d8J1wNQsUGUEGio6NWWpwdwurQe4f6oojzCFuGLizl1KSve4irsTxyLly1QhEeE6iapdaIvQ== } - undici@6.25.0: - resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} - engines: {node: '>=18.17'} + undici-types@8.5.0: + resolution: + { integrity: sha512-+FxhD+5RUdCZHlVPt+pd0DaYYHBPsgoHovxhMnFq9R1SOejHGE4ma0swzuRoKhOisEzsjFWdFedyD0JQmftrHg== } - undici@7.24.4: - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} - engines: {node: '>=20.18.1'} + undici@6.27.0: + resolution: + { integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg== } + engines: { node: ">=18.17" } - undici@7.25.0: - resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} - engines: {node: '>=20.18.1'} + undici@7.28.0: + resolution: + { integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA== } + engines: { node: ">=20.18.1" } - undici@8.1.0: - resolution: {integrity: sha512-E9MkTS4xXLnRPYqxH2e6Hr2/49e7WFDKczKcCaFH4VaZs2iNvHMqeIkyUAD9vM8kujy9TjVrRlQ5KkdEJxB2pw==} - engines: {node: '>=22.19.0'} + undici@8.5.0: + resolution: + { integrity: sha512-xamtWoB1EshgjpmlXd7GGm2VfdDtw1+rD8uhry8pSNW3If6S8E0m2T2+orSKeZXEn/aPJMviCpDBA65WJt8zhg== } + engines: { node: ">=22.19.0" } unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + resolution: + { integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw== } unfetch@4.2.0: - resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + resolution: + { integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== } unfetch@5.0.0: - resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==} + resolution: + { integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg== } unhead@2.1.15: - resolution: {integrity: sha512-MCt5T90mCWyr3Z6pUCdM9lVRXoMoVBlL7z7U4CYVIiaDiuzad/UCfLuMqz5MeNmpZUgoBCQnrucJimU7EZR+XA==} + resolution: + { integrity: sha512-MCt5T90mCWyr3Z6pUCdM9lVRXoMoVBlL7z7U4CYVIiaDiuzad/UCfLuMqz5MeNmpZUgoBCQnrucJimU7EZR+XA== } unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + resolution: + { integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== } unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== } + engines: { node: ">=4" } unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== } + engines: { node: ">=4" } unicode-match-property-value-ecmascript@2.2.1: - resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== } + engines: { node: ">=4" } unicode-property-aliases-ecmascript@2.2.0: - resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== } + engines: { node: ">=4" } unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA== } + engines: { node: ">=18" } unicorn-magic@0.4.0: - resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw== } + engines: { node: ">=20" } unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + resolution: + { integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== } unified@6.2.0: - resolution: {integrity: sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==} + resolution: + { integrity: sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== } unifont@0.7.4: - resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} + resolution: + { integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg== } unimport@6.3.0: - resolution: {integrity: sha512-M+Dxk5W9WRd+8j56W9tp8lGW/dmMc7g5zj7BWQnEjKQhryBstqsi1V0izb0zHwSkEN8cSYV7K75/bykairV2tA==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-M+Dxk5W9WRd+8j56W9tp8lGW/dmMc7g5zj7BWQnEjKQhryBstqsi1V0izb0zHwSkEN8cSYV7K75/bykairV2tA== } + engines: { node: ">=18.12.0" } peerDependencies: - oxc-parser: '*' + oxc-parser: "*" rolldown: ^1.0.0 peerDependenciesMeta: oxc-parser: @@ -40168,124 +46179,150 @@ packages: optional: true union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== } + engines: { node: ">=0.10.0" } uniq@1.0.1: - resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + resolution: + { integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== } uniqs@2.0.0: - resolution: {integrity: sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==} + resolution: + { integrity: sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== } unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + resolution: + { integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== } unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + resolution: + { integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== } unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== } + engines: { node: ">=8" } unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== } + engines: { node: ">=12" } unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + resolution: + { integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ== } unist-util-is@3.0.0: - resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + resolution: + { integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== } unist-util-is@6.0.1: - resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + resolution: + { integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== } unist-util-modify-children@4.0.0: - resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + resolution: + { integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw== } unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + resolution: + { integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== } unist-util-remove-position@1.1.4: - resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} + resolution: + { integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== } unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + resolution: + { integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== } unist-util-stringify-position@1.1.2: - resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} + resolution: + { integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== } unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + resolution: + { integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== } unist-util-visit-children@3.0.0: - resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + resolution: + { integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA== } unist-util-visit-parents@2.1.2: - resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + resolution: + { integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== } unist-util-visit-parents@6.0.2: - resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + resolution: + { integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== } unist-util-visit@1.4.1: - resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + resolution: + { integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== } unist-util-visit@5.1.0: - resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + resolution: + { integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== } universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + resolution: + { integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== } universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } + engines: { node: ">= 4.0.0" } universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== } + engines: { node: ">= 10.0.0" } unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - unplugin-dts@1.0.1: - resolution: {integrity: sha512-EdJZxdWP4Tm/xhe58/zAge3Tu0OKDYygm8rucRrcCZ4XzgA31jexUKhaJuEMddOPBDs9ONnq6vwigbjeBqkfuw==} - peerDependencies: - '@microsoft/api-extractor': '>=7' - '@rspack/core': ^1 - '@vue/language-core': ~3.1.5 - esbuild: '*' - rolldown: '*' - rollup: '>=3' - typescript: '>=4' - vite: '>=3' + resolution: + { integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== } + engines: { node: ">= 0.8" } + + unplugin-dts@1.0.2: + resolution: + { integrity: sha512-VbNiMD0LMl/t6nJueGtrCp79N7ZO1nquxj/FUybJDnKwZGsnW2wjdwBSzA3QEHujoxmxZIptsG43hL7LzXE96w== } + peerDependencies: + "@microsoft/api-extractor": ">=7" + "@rspack/core": ^1 + "@vue/language-core": ~3.1.5 + esbuild: "*" + rolldown: "*" + rollup: ">=3" + typescript: ">=4" + vite: ">=3" webpack: ^4 || ^5 peerDependenciesMeta: - '@microsoft/api-extractor': + "@microsoft/api-extractor": optional: true - '@rspack/core': + "@rspack/core": optional: true - '@vue/language-core': + "@vue/language-core": optional: true esbuild: optional: true @@ -40299,90 +46336,99 @@ packages: optional: true unplugin-utils@0.3.1: - resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} - engines: {node: '>=20.19.0'} + resolution: + { integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog== } + engines: { node: ">=20.19.0" } unplugin-vue-router@0.19.2: - resolution: {integrity: sha512-u5dgLBarxE5cyDK/hzJGfpCTLIAyiTXGlo85COuD4Nssj6G7NxS+i9mhCWz/1p/ud1eMwdcUbTXehQe41jYZUA==} - deprecated: 'Merged into vuejs/router. Migrate: https://router.vuejs.org/guide/migration/v4-to-v5.html' + resolution: + { integrity: sha512-u5dgLBarxE5cyDK/hzJGfpCTLIAyiTXGlo85COuD4Nssj6G7NxS+i9mhCWz/1p/ud1eMwdcUbTXehQe41jYZUA== } + deprecated: "Merged into vuejs/router. Migrate: https://router.vuejs.org/guide/migration/v4-to-v5.html" peerDependencies: - '@vue/compiler-sfc': ^3.5.17 + "@vue/compiler-sfc": ^3.5.17 vue-router: ^4.6.0 peerDependenciesMeta: vue-router: optional: true unplugin@2.3.11: - resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} - engines: {node: '>=18.12.0'} + resolution: + { integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== } + engines: { node: ">=18.12.0" } unplugin@3.0.0: - resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg== } + engines: { node: ^20.19.0 || >=22.12.0 } unquote@1.1.1: - resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} + resolution: + { integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== } unrouting@0.1.7: - resolution: {integrity: sha512-+0hfD+CVWtD636rc5Fn9VEjjTEDhdqgMpbwAuVoUmydSHDaMNiFW93SJG4LV++RoGSEAyvQN5uABAscYpDphpQ==} + resolution: + { integrity: sha512-+0hfD+CVWtD636rc5Fn9VEjjTEDhdqgMpbwAuVoUmydSHDaMNiFW93SJG4LV++RoGSEAyvQN5uABAscYpDphpQ== } unrs-resolver@1.12.2: - resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + resolution: + { integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ== } unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== } + engines: { node: ">=0.10.0" } unstorage@1.17.5: - resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6 || ^7 || ^8 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1 || ^2 || ^3 + resolution: + { integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg== } + peerDependencies: + "@azure/app-configuration": ^1.8.0 + "@azure/cosmos": ^4.2.0 + "@azure/data-tables": ^13.3.0 + "@azure/identity": ^4.6.0 + "@azure/keyvault-secrets": ^4.9.0 + "@azure/storage-blob": ^12.26.0 + "@capacitor/preferences": ^6 || ^7 || ^8 + "@deno/kv": ">=0.9.0" + "@netlify/blobs": ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + "@planetscale/database": ^1.19.0 + "@upstash/redis": ^1.34.3 + "@vercel/blob": ">=0.27.1" + "@vercel/functions": ^2.2.12 || ^3.0.0 + "@vercel/kv": ^1 || ^2 || ^3 aws4fetch: ^1.0.20 - db0: '>=0.2.1' + db0: ">=0.2.1" idb-keyval: ^6.2.1 ioredis: ^5.4.2 uploadthing: ^7.4.4 peerDependenciesMeta: - '@azure/app-configuration': + "@azure/app-configuration": optional: true - '@azure/cosmos': + "@azure/cosmos": optional: true - '@azure/data-tables': + "@azure/data-tables": optional: true - '@azure/identity': + "@azure/identity": optional: true - '@azure/keyvault-secrets': + "@azure/keyvault-secrets": optional: true - '@azure/storage-blob': + "@azure/storage-blob": optional: true - '@capacitor/preferences': + "@capacitor/preferences": optional: true - '@deno/kv': + "@deno/kv": optional: true - '@netlify/blobs': + "@netlify/blobs": optional: true - '@planetscale/database': + "@planetscale/database": optional: true - '@upstash/redis': + "@upstash/redis": optional: true - '@vercel/blob': + "@vercel/blob": optional: true - '@vercel/functions': + "@vercel/functions": optional: true - '@vercel/kv': + "@vercel/kv": optional: true aws4fetch: optional: true @@ -40396,284 +46442,344 @@ packages: optional: true untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== } + engines: { node: ">=8" } untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + resolution: + { integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== } hasBin: true untyped@2.0.0: - resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + resolution: + { integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== } hasBin: true unwasm@0.5.3: - resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} + resolution: + { integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw== } upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== } + engines: { node: ">=4" } upath@2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== } + engines: { node: ">=4" } update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + resolution: + { integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== } hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: ">= 4.21.0" update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== } + engines: { node: ">=10" } update-notifier@7.3.1: - resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA== } + engines: { node: ">=18" } upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + resolution: + { integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== } upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} + resolution: + { integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== } upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + resolution: + { integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== } uqr@0.1.3: - resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==} + resolution: + { integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA== } uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + resolution: + { integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== } deprecated: Please see https://github.com/lydell/urix#deprecated url-loader@4.1.1: - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== } + engines: { node: ">= 10.13.0" } peerDependencies: - file-loader: '*' + file-loader: "*" webpack: ^4.0.0 || ^5.0.0 peerDependenciesMeta: file-loader: optional: true url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + resolution: + { integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== } + engines: { node: ">=4" } url@0.11.4: - resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== } + engines: { node: ">= 0.4" } + + urlpattern-polyfill@10.1.0: + resolution: + { integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw== } use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg== } + engines: { node: ">=10" } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true use-memo-one@1.1.3: - resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==} + resolution: + { integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ== } + engines: { node: ">=10" } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + resolution: + { integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w== } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== } + engines: { node: ">=0.10.0" } useragent@2.3.0: - resolution: {integrity: sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==} + resolution: + { integrity: sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== } username-sync@1.0.3: - resolution: {integrity: sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==} + resolution: + { integrity: sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA== } util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } util.promisify@1.0.0: - resolution: {integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==} + resolution: + { integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== } util.promisify@1.0.1: - resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==} + resolution: + { integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== } util.promisify@1.1.3: - resolution: {integrity: sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw== } + engines: { node: ">= 0.8" } util@0.10.4: - resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + resolution: + { integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== } util@0.11.1: - resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} + resolution: + { integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== } utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + resolution: + { integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== } utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + resolution: + { integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== } + engines: { node: ">= 0.4.0" } uuid@14.0.0: - resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} + resolution: + { integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg== } hasBin: true uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + resolution: + { integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== } deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== } deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== } v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} + resolution: + { integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== } + engines: { node: ">=10.12.0" } v8flags@4.0.1: - resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg== } + engines: { node: ">= 10.13.0" } valid-url@1.0.9: - resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + resolution: + { integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== } validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: + { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } validate-npm-package-name@4.0.0: - resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } validate-npm-package-name@6.0.2: - resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ== } + engines: { node: ^18.17.0 || >=20.5.0 } validate-npm-package-name@7.0.2: - resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A== } + engines: { node: ^20.17.0 || >=22.9.0 } value-or-function@4.0.0: - resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg== } + engines: { node: ">= 10.13.0" } vanilla-picker@2.12.3: - resolution: {integrity: sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==} + resolution: + { integrity: sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ== } vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== } + engines: { node: ">= 0.8" } vendors@1.0.4: - resolution: {integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==} + resolution: + { integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== } verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} + resolution: + { integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== } + engines: { "0": node >=0.6.0 } vfile-location@2.0.6: - resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} + resolution: + { integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== } vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + resolution: + { integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== } vfile-message@1.1.1: - resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} + resolution: + { integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== } vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + resolution: + { integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== } vfile@2.3.0: - resolution: {integrity: sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==} + resolution: + { integrity: sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== } vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + resolution: + { integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== } vinyl-contents@2.0.0: - resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q== } + engines: { node: ">=10.13.0" } vinyl-fs@4.0.2: - resolution: {integrity: sha512-XRFwBLLTl8lRAOYiBqxY279wY46tVxLaRhSwo3GzKEuLz1giffsOquWWboD/haGf5lx+JyTigCFfe7DWHoARIA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-XRFwBLLTl8lRAOYiBqxY279wY46tVxLaRhSwo3GzKEuLz1giffsOquWWboD/haGf5lx+JyTigCFfe7DWHoARIA== } + engines: { node: ">=10.13.0" } vinyl-sourcemap@2.0.0: - resolution: {integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q== } + engines: { node: ">=10.13.0" } vinyl@3.0.1: - resolution: {integrity: sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA== } + engines: { node: ">=10.13.0" } - vite-dev-rpc@1.1.0: - resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} + vite-dev-rpc@2.0.0: + resolution: + { integrity: sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA== } peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 || ^8.0.0 vite-hot-client@2.2.0: - resolution: {integrity: sha512-76Zs9zrHbH7M7wqeyooGQKdX+yg0pQ0xuQ1PbFp4z5a0Lzn2e5IPFoCswnmqZ4GiwqB4Jo3WcDAMO9jARTJl8w==} + resolution: + { integrity: sha512-76Zs9zrHbH7M7wqeyooGQKdX+yg0pQ0xuQ1PbFp4z5a0Lzn2e5IPFoCswnmqZ4GiwqB4Jo3WcDAMO9jARTJl8w== } peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0 - vite-node@1.6.1: - resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - vite-node@5.3.0: - resolution: {integrity: sha512-8f20COPYJujc3OKPX6OuyBy3ZIv2det4eRRU4GY1y2MjbeGSUmPjedxg1b72KnTagCofwvZ65ThzjxDW2AtQFQ==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-8f20COPYJujc3OKPX6OuyBy3ZIv2det4eRRU4GY1y2MjbeGSUmPjedxg1b72KnTagCofwvZ65ThzjxDW2AtQFQ== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true vite-plugin-checker@0.13.0: - resolution: {integrity: sha512-14EkOZmfinVZNxRmg2uCNDwtqGc/33lU/UEJansHgu27+ad+r6mMBf1Xtnq57jGZWiO/xzwtiEKPYsganw7ZFQ==} - engines: {node: '>=16.11'} + resolution: + { integrity: sha512-14EkOZmfinVZNxRmg2uCNDwtqGc/33lU/UEJansHgu27+ad+r6mMBf1Xtnq57jGZWiO/xzwtiEKPYsganw7ZFQ== } + engines: { node: ">=16.11" } peerDependencies: - '@biomejs/biome': '>=1.7' - eslint: '>=9.39.4' + "@biomejs/biome": ">=1.7" + eslint: ">=9.39.4" meow: ^13.2.0 || ^14.0.0 optionator: ^0.9.4 - oxlint: '>=1' - stylelint: '>=16.26.1' - typescript: '*' - vite: '>=5.4.21' - vls: '*' - vti: '*' + oxlint: ">=1" + stylelint: ">=16.26.1" + typescript: "*" + vite: ">=5.4.21" + vls: "*" + vti: "*" vue-tsc: ~2.2.10 || ^3.0.0 peerDependenciesMeta: - '@biomejs/biome': + "@biomejs/biome": optional: true eslint: optional: true @@ -40694,14 +46800,47 @@ packages: vue-tsc: optional: true - vite-plugin-dts@5.0.1: - resolution: {integrity: sha512-1L+x8bVPDhlI4kLzRIIGqO+b1VnvtY6CoHrU+riaipHJUAxayM0i1HObqeBv33Svil9hW64Z2KNiOn6UrKWCbA==} + vite-plugin-checker@0.14.1: + resolution: + { integrity: sha512-Mv8oQc9XYBYf+XkP/riqqQCt8lBP6Iad75PZPho1lHRrpxQI0BwX2gwE10enn4f6Hgc+PvR1F7N38KARcaJtzw== } + engines: { node: ">=20.19.0" } + peerDependencies: + "@biomejs/biome": ">=2.4.12" + eslint: ">=9.39.4" + meow: ^13.2.0 || ^14.0.0 + optionator: ^0.9.4 + oxlint: ">=1" + stylelint: ">=16.26.1" + typescript: "*" + vite: ">=5.4.21" + vue-tsc: ~2.2.10 || ^3.0.0 + peerDependenciesMeta: + "@biomejs/biome": + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + oxlint: + optional: true + stylelint: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + vite-plugin-dts@5.0.2: + resolution: + { integrity: sha512-lNeHS+dwGju6eRmNvZQt8Shwv9j3m98hbHse/lIbLq9q3yE2DcIOBBYQEVUF6tS0kOmv+VA9Z5FqmzFnGe4U8g== } peerDependencies: - '@microsoft/api-extractor': '>=7' - rollup: '>=3' - vite: '>=3' + "@microsoft/api-extractor": ">=7" + rollup: ">=3" + vite: ">=3" peerDependenciesMeta: - '@microsoft/api-extractor': + "@microsoft/api-extractor": optional: true rollup: optional: true @@ -40709,62 +46848,69 @@ packages: optional: true vite-plugin-eslint@1.8.1: - resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + resolution: + { integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang== } peerDependencies: - eslint: '>=7' - vite: '>=2' + eslint: ">=7" + vite: ">=2" - vite-plugin-inspect@11.3.3: - resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==} - engines: {node: '>=14'} + vite-plugin-inspect@11.4.1: + resolution: + { integrity: sha512-ShOFe2PURXGvRS5OrgmOLZOCwDTD7dEBVt0tMpFPKb9AsvqXKCRGM8QgKrUbRbJYFXScHvDPpGRd28rYidC0tA== } + engines: { node: ">=14" } peerDependencies: - '@nuxt/kit': '*' - vite: ^6.0.0 || ^7.0.0-0 + "@nuxt/kit": "*" + vite: ^6.0.0 || ^7.0.0-0 || ^8.0.0-0 peerDependenciesMeta: - '@nuxt/kit': + "@nuxt/kit": optional: true vite-plugin-lib-inject-css@2.2.2: - resolution: {integrity: sha512-NF30p0GwtfSAmVlxo2NgPXM2rEdtgV7LFi4lkzajKD7P3Ru/ZAFmI533M0Z5qyMZpvNMxVGkewzpjD0HOWtbDQ==} + resolution: + { integrity: sha512-NF30p0GwtfSAmVlxo2NgPXM2rEdtgV7LFi4lkzajKD7P3Ru/ZAFmI533M0Z5qyMZpvNMxVGkewzpjD0HOWtbDQ== } peerDependencies: - vite: '*' + vite: "*" vite-plugin-solid@2.11.12: - resolution: {integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==} + resolution: + { integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA== } peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + "@testing-library/jest-dom": ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: - '@testing-library/jest-dom': + "@testing-library/jest-dom": optional: true vite-plugin-vue-tracer@1.4.0: - resolution: {integrity: sha512-0tQCjCqZWVSK6UeRW9S4ABbf47lKQ68zvrT2FNvZmiL+alDydCVyH/T3Jlfbdc3T3C2Iuyyl5aVsMbF8IQIoxA==} + resolution: + { integrity: sha512-0tQCjCqZWVSK6UeRW9S4ABbf47lKQ68zvrT2FNvZmiL+alDydCVyH/T3Jlfbdc3T3C2Iuyyl5aVsMbF8IQIoxA== } peerDependencies: vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.5.0 vite-tsconfig-paths@6.1.1: - resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} + resolution: + { integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg== } peerDependencies: - vite: '*' + vite: "*" vite@5.4.21: - resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" terser: ^5.4.0 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true less: optional: true @@ -40781,24 +46927,25 @@ packages: terser: optional: true - vite@6.4.2: - resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite@6.4.3: + resolution: + { integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A== } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true jiti: optional: true @@ -40822,23 +46969,24 @@ packages: optional: true vite@7.3.2: - resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" less: ^4.0.0 lightningcss: ^1.21.0 sass: ^1.70.0 sass-embedded: ^1.70.0 - stylus: '>=0.54.8' + stylus: ">=0.54.8" sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true jiti: optional: true @@ -40861,24 +47009,25 @@ packages: yaml: optional: true - vite@7.3.3: - resolution: {integrity: sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==} - engines: {node: ^20.19.0 || >=22.12.0} + vite@7.3.5: + resolution: + { integrity: sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" less: ^4.0.0 lightningcss: ^1.21.0 sass: ^1.70.0 sass-embedded: ^1.70.0 - stylus: '>=0.54.8' + stylus: ">=0.54.8" sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true jiti: optional: true @@ -40902,26 +47051,27 @@ packages: optional: true vite@8.0.14: - resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} - engines: {node: ^20.19.0 || >=22.12.0} + resolution: + { integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.18 + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.18 esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' + jiti: ">=1.21.0" less: ^4.0.0 sass: ^1.70.0 sass-embedded: ^1.70.0 - stylus: '>=0.54.8' + stylus: ">=0.54.8" sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@vitejs/devtools': + "@vitejs/devtools": optional: true esbuild: optional: true @@ -40944,27 +47094,28 @@ packages: yaml: optional: true - vite@8.0.8: - resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} - engines: {node: ^20.19.0 || >=22.12.0} + vite@8.0.16: + resolution: + { integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.0 + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.18 esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' + jiti: ">=1.21.0" less: ^4.0.0 sass: ^1.70.0 sass-embedded: ^1.70.0 - stylus: '>=0.54.8' + stylus: ">=0.54.8" sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true - '@vitejs/devtools': + "@vitejs/devtools": optional: true esbuild: optional: true @@ -40987,16 +47138,53 @@ packages: yaml: optional: true - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + vite@8.0.5: + resolution: + { integrity: sha512-nmu43Qvq9UopTRfMx2jOYW5l16pb3iDC1JH6yMuPkpVbzK0k+L7dfsEDH4jRgYFmsg0sTAqkojoZgzLMlwHsCQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: ">=1.21.0" + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: - vite: + "@types/node": + optional: true + "@vitejs/devtools": + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: optional: true vitefu@1.1.3: - resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + resolution: + { integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg== } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: @@ -41004,7 +47192,8 @@ packages: optional: true vitepress@1.6.4: - resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} + resolution: + { integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg== } hasBin: true peerDependencies: markdown-it-mathjax3: ^4 @@ -41015,66 +47204,84 @@ packages: postcss: optional: true - vitest@1.6.1: - resolution: {integrity: sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@4.1.7: + resolution: + { integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA== } + engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 } hasBin: true peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.1 - '@vitest/ui': 1.6.1 - happy-dom: '*' - jsdom: '*' + "@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': + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/browser-playwright": optional: true - '@types/node': + "@vitest/browser-preview": optional: true - '@vitest/browser': + "@vitest/browser-webdriverio": optional: true - '@vitest/ui': + "@vitest/coverage-istanbul": + optional: true + "@vitest/coverage-v8": + optional: true + "@vitest/ui": optional: true happy-dom: optional: true jsdom: optional: true - vitest@4.1.7: - resolution: {integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + vitest@4.1.9: + resolution: + { integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ== } + engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 } hasBin: true 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: '*' + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.1.9 + "@vitest/browser-preview": 4.1.9 + "@vitest/browser-webdriverio": 4.1.9 + "@vitest/coverage-istanbul": 4.1.9 + "@vitest/coverage-v8": 4.1.9 + "@vitest/ui": 4.1.9 + happy-dom: "*" + jsdom: "*" vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: - '@edge-runtime/vm': + "@edge-runtime/vm": optional: true - '@opentelemetry/api': + "@opentelemetry/api": optional: true - '@types/node': + "@types/node": optional: true - '@vitest/browser-playwright': + "@vitest/browser-playwright": optional: true - '@vitest/browser-preview': + "@vitest/browser-preview": optional: true - '@vitest/browser-webdriverio': + "@vitest/browser-webdriverio": optional: true - '@vitest/coverage-istanbul': + "@vitest/coverage-istanbul": optional: true - '@vitest/coverage-v8': + "@vitest/coverage-v8": optional: true - '@vitest/ui': + "@vitest/ui": optional: true happy-dom: optional: true @@ -41082,163 +47289,209 @@ packages: optional: true vm-browserify@1.1.2: - resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + resolution: + { integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== } void-elements@2.0.1: - resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== } + engines: { node: ">=0.10.0" } void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== } + engines: { node: ">=0.10.0" } volar-service-css@0.0.70: - resolution: {integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==} + resolution: + { integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-emmet@0.0.70: - resolution: {integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==} + resolution: + { integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-html@0.0.70: - resolution: {integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==} + resolution: + { integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-prettier@0.0.70: - resolution: {integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==} + resolution: + { integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 prettier: ^2.2 || ^3.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true prettier: optional: true volar-service-typescript-twoslash-queries@0.0.70: - resolution: {integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==} + resolution: + { integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-typescript@0.0.70: - resolution: {integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==} + resolution: + { integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-yaml@0.0.70: - resolution: {integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==} + resolution: + { integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ== } peerDependencies: - '@volar/language-service': ~2.4.0 + "@volar/language-service": ~2.4.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true vscode-css-languageservice@4.3.0: - resolution: {integrity: sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A==} + resolution: + { integrity: sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A== } vscode-css-languageservice@6.3.10: - resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==} + resolution: + { integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA== } vscode-html-languageservice@3.1.0: - resolution: {integrity: sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg==} + resolution: + { integrity: sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg== } vscode-html-languageservice@5.6.2: - resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==} + resolution: + { integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg== } vscode-json-languageservice@4.1.8: - resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} - engines: {npm: '>=7.0.0'} + resolution: + { integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg== } + engines: { npm: ">=7.0.0" } vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== } + engines: { node: ">=14.0.0" } + + vscode-jsonrpc@9.0.0: + resolution: + { integrity: sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg== } + engines: { node: ">=14.0.0" } vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + resolution: + { integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== } + + vscode-languageserver-protocol@3.18.0: + resolution: + { integrity: sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q== } vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + resolution: + { integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== } vscode-languageserver-types@3.16.0-next.2: - resolution: {integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==} + resolution: + { integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== } vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + resolution: + { integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== } + + vscode-languageserver-types@3.18.0: + resolution: + { integrity: sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g== } vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + resolution: + { integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g== } hasBin: true vscode-nls@4.1.2: - resolution: {integrity: sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==} + resolution: + { integrity: sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw== } vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + resolution: + { integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng== } vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + resolution: + { integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== } vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + resolution: + { integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== } vue-bundle-renderer@2.2.0: - resolution: {integrity: sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg==} + resolution: + { integrity: sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg== } vue-class-component@7.2.6: - resolution: {integrity: sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==} + resolution: + { integrity: sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w== } peerDependencies: vue: ^2.0.0 vue-client-only@2.1.0: - resolution: {integrity: sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA==} + resolution: + { integrity: sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA== } vue-devtools-stub@0.1.0: - resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + resolution: + { integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ== } - vue-eslint-parser@10.4.0: - resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + vue-eslint-parser@10.4.1: + resolution: + { integrity: sha512-Gk6gRDj0n/fkRa3C3l0bBheoBckUq/Rs0F/TvMWIS6nzzx67amAViMe9CkNgsP2tXyQONvGiHQESHwFtZ3aYDA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} - engines: {node: ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== } + engines: { node: ^14.17.0 || >=16.0.0 } peerDependencies: - eslint: '>=6.0.0' + eslint: ">=6.0.0" vue-hot-reload-api@2.3.4: - resolution: {integrity: sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==} + resolution: + { integrity: sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== } vue-loader@15.11.1: - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} - peerDependencies: - '@vue/compiler-sfc': ^3.0.8 - cache-loader: '*' - css-loader: '*' - prettier: '*' - vue-template-compiler: '*' + resolution: + { integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q== } + peerDependencies: + "@vue/compiler-sfc": ^3.0.8 + cache-loader: "*" + css-loader: "*" + prettier: "*" + vue-template-compiler: "*" webpack: ^3.0.0 || ^4.1.0 || ^5.0.0-0 peerDependenciesMeta: - '@vue/compiler-sfc': + "@vue/compiler-sfc": optional: true cache-loader: optional: true @@ -41248,262 +47501,295 @@ packages: optional: true vue-loader@17.4.2: - resolution: {integrity: sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==} + resolution: + { integrity: sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w== } peerDependencies: - '@vue/compiler-sfc': '*' - vue: '*' + "@vue/compiler-sfc": "*" + vue: "*" webpack: ^4.1.0 || ^5.0.0-0 peerDependenciesMeta: - '@vue/compiler-sfc': + "@vue/compiler-sfc": optional: true vue: optional: true vue-meta@2.4.0: - resolution: {integrity: sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==} + resolution: + { integrity: sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw== } vue-no-ssr@1.1.1: - resolution: {integrity: sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g==} + resolution: + { integrity: sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== } vue-property-decorator@9.1.2: - resolution: {integrity: sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==} + resolution: + { integrity: sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ== } peerDependencies: - vue: '*' - vue-class-component: '*' + vue: "*" + vue-class-component: "*" vue-router@3.6.5: - resolution: {integrity: sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==} + resolution: + { integrity: sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ== } peerDependencies: vue: ^2 vue-router@4.6.4: - resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + resolution: + { integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== } peerDependencies: vue: ^3.5.0 - vue-router@5.0.7: - resolution: {integrity: sha512-dqfk8kvRbCutmCOCj/XLDqDEYxc1wBdAOGLuVy5M93ifYMsBd5fIjfaPN4tQAbxr5IprdBDIox1gr4wYyOx/SA==} + vue-router@5.1.0: + resolution: + { integrity: sha512-HAbiLzLEHQwxPgvsbOJDAwtavszEgLwri6XfyrsPECIFez8+59xc9LofWVdc/HEaSRT822lJ8H9Ns38VVond5g== } peerDependencies: - '@pinia/colada': '>=0.21.2' - '@vue/compiler-sfc': ^3.5.34 + "@pinia/colada": ">=0.21.2" + "@vue/compiler-sfc": ^3.5.34 pinia: ^3.0.4 + vite: ^7.0.0 || ^8.0.0 vue: ^3.5.34 peerDependenciesMeta: - '@pinia/colada': + "@pinia/colada": optional: true - '@vue/compiler-sfc': + "@vue/compiler-sfc": optional: true pinia: optional: true - - vue-runtime-helpers@1.1.2: - resolution: {integrity: sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q==} + vite: + optional: true vue-server-renderer@2.7.16: - resolution: {integrity: sha512-U7GgR4rYmHmbs3Z2gqsasfk7JNuTsy/xrR5EMMGRLkjN8+ryDlqQq6Uu3DcmbCATAei814YOxyl0eq2HNqgXyQ==} + resolution: + { integrity: sha512-U7GgR4rYmHmbs3Z2gqsasfk7JNuTsy/xrR5EMMGRLkjN8+ryDlqQq6Uu3DcmbCATAei814YOxyl0eq2HNqgXyQ== } vue-style-loader@4.1.3: - resolution: {integrity: sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==} + resolution: + { integrity: sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== } vue-template-babel-compiler@2.0.0: - resolution: {integrity: sha512-O0GOktQ5TZCZ5sWVl8CbyLBFriwwai7xDBtpdUI1xZSbbVVNf5Um/mDHYJXaHX6vfhmeAuohggXxIi0RPgXZ4g==} - engines: {node: '>=14.0.0'} + resolution: + { integrity: sha512-O0GOktQ5TZCZ5sWVl8CbyLBFriwwai7xDBtpdUI1xZSbbVVNf5Um/mDHYJXaHX6vfhmeAuohggXxIi0RPgXZ4g== } + engines: { node: ">=14.0.0" } peerDependencies: vue-template-compiler: ^2.6.0 vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + resolution: + { integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== } vue-template-es2015-compiler@1.9.1: - resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} + resolution: + { integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== } - vue-tsc@3.3.1: - resolution: {integrity: sha512-webBP3jhlxzhELZ2g+11KJ6pg5OVY1xWhWrj7N/yQMi1CrtxJnW+tUACyRVeDK0cQNLP2Va5HNYK8pe+7c+msw==} + vue-tsc@3.3.5: + resolution: + { integrity: sha512-Rzh/G2MmNlMSAMTiQEjDrsb4dgB/jbtEM47rVN2NtidF1dfb/q4w4QvpQBtW5+y3y5H27Hjh7deVwk+YB02fNg== } hasBin: true peerDependencies: - typescript: '>=5.0.0' + typescript: ">=5.0.0" vue@2.7.16: - resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} + resolution: + { integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw== } deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.5.34: - resolution: {integrity: sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==} + vue@3.5.38: + resolution: + { integrity: sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A== } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true vuex@3.6.2: - resolution: {integrity: sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==} + resolution: + { integrity: sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== } peerDependencies: vue: ^2.0.0 w3c-hr-time@1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + resolution: + { integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== } deprecated: Use your platform's native performance.now() and performance.timeOrigin. w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== } + engines: { node: ">=18" } wait-on@8.0.5: - resolution: {integrity: sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==} - engines: {node: '>=12.0.0'} + resolution: + { integrity: sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag== } + engines: { node: ">=12.0.0" } hasBin: true walk-sync@0.2.7: - resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==} + resolution: + { integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg== } walk-sync@0.3.4: - resolution: {integrity: sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==} + resolution: + { integrity: sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig== } walk-sync@1.1.4: - resolution: {integrity: sha512-nowc9thB/Jg0KW4TgxoRjLLYRPvl3DB/98S89r4ZcJqq2B0alNcKDh6pzLkBSkPMzRSMsJghJHQi79qw0YWEkA==} + resolution: + { integrity: sha512-nowc9thB/Jg0KW4TgxoRjLLYRPvl3DB/98S89r4ZcJqq2B0alNcKDh6pzLkBSkPMzRSMsJghJHQi79qw0YWEkA== } walk-sync@2.2.0: - resolution: {integrity: sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==} - engines: {node: 8.* || >= 10.*} + resolution: + { integrity: sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg== } + engines: { node: 8.* || >= 10.* } walk-sync@3.0.0: - resolution: {integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw==} - engines: {node: 10.* || >= 12.*} + resolution: + { integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw== } + engines: { node: 10.* || >= 12.* } walk-sync@4.0.2: - resolution: {integrity: sha512-SPRy/z6vC+Fb20XQDzagaSVVNzX77EcLLPnBJsqNy0CFQgBS6cexbYP62kzRSqNdyIDdRGc7SOCybRrpkf+Pmg==} - engines: {node: '>= 20.*'} + resolution: + { integrity: sha512-SPRy/z6vC+Fb20XQDzagaSVVNzX77EcLLPnBJsqNy0CFQgBS6cexbYP62kzRSqNdyIDdRGc7SOCybRrpkf+Pmg== } + engines: { node: ">= 20.*" } walk-up-path@4.0.0: - resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} - engines: {node: 20 || >=22} + resolution: + { integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A== } + engines: { node: 20 || >=22 } walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + resolution: + { integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== } - wasm-vips@0.0.16: - resolution: {integrity: sha512-4/bEq8noAFt7DX3VT+Vt5AgNtnnOLwvmrDbduWfiv9AV+VYkbUU4f9Dam9e6khRqPinyClFHCqiwATTTJEiGwA==} - engines: {node: '>=16.4.0'} + wasm-vips@0.0.17: + resolution: + { integrity: sha512-nhkqUNJDUymImoXGrVfImC4wzIFTb9KfBpAngb7dcEQNPP1gVTx4+WL3VVVDSXQpMsyeacsQDOx0+DM33Rpurg== } + engines: { node: ">=16.4.0" } watch-detector@1.0.2: - resolution: {integrity: sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg== } + engines: { node: ">= 8" } watchpack-chokidar2@2.0.1: - resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} + resolution: + { integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== } watchpack@1.7.5: - resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} + resolution: + { integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== } watchpack@2.5.1: - resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg== } + engines: { node: ">=10.13.0" } + + watchpack@2.5.2: + resolution: + { integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg== } + engines: { node: ">=10.13.0" } watskeburt@5.0.3: - resolution: {integrity: sha512-g9CXukMjazlJJVQ3OHzXsnG25KFYgSgKMIyoJrD8ggr0DbS9UNF7OzIqWmmKKBMedkxj3T01uqEaGnn+y7QhMA==} - engines: {node: ^20.12||^22.13||>=24.0} + resolution: + { integrity: sha512-g9CXukMjazlJJVQ3OHzXsnG25KFYgSgKMIyoJrD8ggr0DbS9UNF7OzIqWmmKKBMedkxj3T01uqEaGnn+y7QhMA== } + engines: { node: ^20.12||^22.13||>=24.0 } hasBin: true wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + resolution: + { integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== } wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== } weak-lru-cache@1.2.2: - resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} + resolution: + { integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== } - web-component-analyzer@1.1.7: - resolution: {integrity: sha512-SqCqN4nU9fU+j0CKXJQ8E4cslLsaezhagY6xoi+hoNPPd55GzR6MY1r5jkoJUVu+g4Wy4uB+JglTt7au4vQ1uA==} + web-component-analyzer@2.0.0: + resolution: + { integrity: sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ== } hasBin: true web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + resolution: + { integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== } web-vitals@4.2.4: - resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + resolution: + { integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw== } - web-vitals@5.2.0: - resolution: {integrity: sha512-i2z98bEmaCqSDiHEDu+gHl/dmR4Q+TxFmG3/13KkMO+o8UxQzCqWaDRCiLgEa41nlO4VpXSI0ASa1xWmO9sBlA==} + web-vitals@5.3.0: + resolution: + { integrity: sha512-q6LWsLatGYZp5VGBIOvbTj6JBV2nOmC8KvWztXBmwJcfFAzhwKwbOxhUH306XY3CcaZDUlSmSuNPBsCn0bFu+g== } webdriver-bidi-protocol@0.4.1: - resolution: {integrity: sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==} + resolution: + { integrity: sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw== } webdriver-bidi-protocol@0.4.2: - resolution: {integrity: sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA==} - - webdriver-js-extender@2.1.0: - resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} - engines: {node: '>=6.9.x'} - - webdriver-manager@12.1.9: - resolution: {integrity: sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==} - engines: {node: '>=6.9.x'} - hasBin: true + resolution: + { integrity: sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA== } webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: + { integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== } webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + resolution: + { integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== } webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== } + engines: { node: ">=12" } webidl-conversions@8.0.1: - resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ== } + engines: { node: ">=20" } webpack-bundle-analyzer@4.10.2: - resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} - engines: {node: '>= 10.13.0'} + resolution: + { integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== } + engines: { node: ">= 10.13.0" } hasBin: true webpack-bundle-analyzer@5.3.0: - resolution: {integrity: sha512-PEhAoqiJ+47d0uLMx/+zo5XOvaU+Vk6N2ZLht7H3n09QLy/fhyvqGNwjdRUHJDgMN8crBR2ZwVHkIswT3Xuawg==} - engines: {node: '>= 20.9.0'} + resolution: + { integrity: sha512-PEhAoqiJ+47d0uLMx/+zo5XOvaU+Vk6N2ZLht7H3n09QLy/fhyvqGNwjdRUHJDgMN8crBR2ZwVHkIswT3Xuawg== } + engines: { node: ">= 20.9.0" } hasBin: true webpack-chain@6.5.1: - resolution: {integrity: sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== } + engines: { node: ">=8" } deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. webpack-cli@5.1.4: - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} + resolution: + { integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== } + engines: { node: ">=14.15.0" } hasBin: true peerDependencies: - '@webpack-cli/generators': '*' + "@webpack-cli/generators": "*" webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' + webpack-bundle-analyzer: "*" + webpack-dev-server: "*" peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: + "@webpack-cli/generators": optional: true - webpack-dev-server: - optional: true - - webpack-cli@7.0.2: - resolution: {integrity: sha512-dB0R4T+C/8YuvM+fabdvil6QE44/ChDXikV5lOOkrUeCkW5hTJv2pGLE3keh+D5hjYw8icBaJkZzpFoaHV4T+g==} - engines: {node: '>=20.9.0'} - hasBin: true - peerDependencies: - webpack: ^5.101.0 - webpack-bundle-analyzer: ^4.0.0 || ^5.0.0 - webpack-dev-server: ^5.0.0 - peerDependenciesMeta: webpack-bundle-analyzer: optional: true webpack-dev-server: optional: true webpack-cli@7.0.3: - resolution: {integrity: sha512-2E2C6A1e2El7791zQgTH7LPIuwLjRliow9OHS/qlJc9pwhZlCoL/uiwqd/1WSlXT83wJfmfDbkcqHXuXoPJZ3g==} - engines: {node: '>=20.9.0'} + resolution: + { integrity: sha512-2E2C6A1e2El7791zQgTH7LPIuwLjRliow9OHS/qlJc9pwhZlCoL/uiwqd/1WSlXT83wJfmfDbkcqHXuXoPJZ3g== } + engines: { node: ">=20.9.0" } hasBin: true peerDependencies: webpack: ^5.101.0 @@ -41516,14 +47802,16 @@ packages: optional: true webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== } + engines: { node: ">= 12.13.0" } peerDependencies: webpack: ^4.0.0 || ^5.0.0 webpack-dev-middleware@7.4.5: - resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==} - engines: {node: '>= 18.12.0'} + resolution: + { integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== } + engines: { node: ">= 18.12.0" } peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: @@ -41531,38 +47819,27 @@ packages: optional: true webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} + resolution: + { integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== } + engines: { node: ">= 12.13.0" } hasBin: true peerDependencies: webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-dev-server@5.2.3: - resolution: {integrity: sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' + webpack-cli: "*" peerDependenciesMeta: webpack: optional: true webpack-cli: optional: true - webpack-dev-server@5.2.4: - resolution: {integrity: sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==} - engines: {node: '>= 18.12.0'} + webpack-dev-server@5.2.5: + resolution: + { integrity: sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg== } + engines: { node: ">= 18.12.0" } hasBin: true peerDependencies: webpack: ^5.0.0 - webpack-cli: '*' + webpack-cli: "*" peerDependenciesMeta: webpack: optional: true @@ -41570,400 +47847,456 @@ packages: optional: true webpack-fix-style-only-entries@0.6.1: - resolution: {integrity: sha512-wyIhoxS3DD3Fr9JA8hQPA+ZmaWnqPxx12Nv166wcsI/0fbReqyEtiIk2llOFYIg57WVS3XX5cZJxw2ji70R0sA==} + resolution: + { integrity: sha512-wyIhoxS3DD3Fr9JA8hQPA+ZmaWnqPxx12Nv166wcsI/0fbReqyEtiIk2llOFYIg57WVS3XX5cZJxw2ji70R0sA== } webpack-hot-middleware@2.26.1: - resolution: {integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==} + resolution: + { integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A== } webpack-log@2.0.0: - resolution: {integrity: sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== } + engines: { node: ">= 6" } webpack-manifest-plugin@4.1.1: - resolution: {integrity: sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==} - engines: {node: '>=12.22.0'} + resolution: + { integrity: sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== } + engines: { node: ">=12.22.0" } peerDependencies: webpack: ^4.44.2 || ^5.47.0 webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== } + engines: { node: ">=10.0.0" } webpack-merge@6.0.1: - resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== } + engines: { node: ">=18.0.0" } webpack-node-externals@3.0.0: - resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== } + engines: { node: ">=6" } webpack-plugin-replace@1.2.0: - resolution: {integrity: sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w== } + engines: { node: ">=4" } webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + resolution: + { integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== } webpack-sources@2.3.1: - resolution: {integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== } + engines: { node: ">=10.13.0" } webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} - engines: {node: '>=10.13.0'} - - webpack-subresource-integrity@5.1.0: - resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} - engines: {node: '>= 12'} - peerDependencies: - html-webpack-plugin: '>= 5.0.0-beta.1 < 6' - webpack: ^5.12.0 - peerDependenciesMeta: - html-webpack-plugin: - optional: true + resolution: + { integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ== } + engines: { node: ">=10.13.0" } webpack-virtual-modules@0.4.6: - resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} + resolution: + { integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA== } webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + resolution: + { integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== } webpack@4.47.0: - resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==} - engines: {node: '>=6.11.5'} + resolution: + { integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== } + engines: { node: ">=6.11.5" } hasBin: true peerDependencies: - webpack-cli: '*' - webpack-command: '*' + webpack-cli: "*" + webpack-command: "*" peerDependenciesMeta: webpack-cli: optional: true webpack-command: optional: true - webpack@5.105.2: - resolution: {integrity: sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpack@5.107.1: - resolution: {integrity: sha512-mvdIWxj/H6QsfgDdH9djne3a5dYcmEmtsXGESkypaGN5jXjF/b+9KDlmTDQ2TKlFUeA2fI9Y65kihD30JOdB+Q==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack@5.107.2: - resolution: {integrity: sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ== } + engines: { node: ">=10.13.0" } hasBin: true peerDependencies: - webpack-cli: '*' + webpack-cli: "*" peerDependenciesMeta: webpack-cli: optional: true webpackbar@6.0.1: - resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} - engines: {node: '>=14.21.3'} + resolution: + { integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q== } + engines: { node: ">=14.21.3" } peerDependencies: webpack: 3 || 4 || 5 - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.5: + resolution: + { integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA== } + engines: { node: ">=0.8.0" } websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + resolution: + { integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== } + engines: { node: ">=0.8.0" } whatwg-encoding@1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + resolution: + { integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== } deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== } + engines: { node: ">=18" } deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + resolution: + { integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== } whatwg-mimetype@2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + resolution: + { integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== } whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== } + engines: { node: ">=18" } whatwg-mimetype@5.0.0: - resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} - engines: {node: '>=20'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw== } + engines: { node: ">=20" } whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== } + engines: { node: ">=18" } whatwg-url@16.0.1: - resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + resolution: + { integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw== } + engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 } whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== } whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + resolution: + { integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== } when-exit@2.1.5: - resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + resolution: + { integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg== } which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== } + engines: { node: ">= 0.4" } which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== } + engines: { node: ">= 0.4" } which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + resolution: + { integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== } + engines: { node: ">= 0.4" } which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + resolution: + { integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== } which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== } + engines: { node: ">=4" } - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.22: + resolution: + { integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw== } + engines: { node: ">= 0.4" } which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } hasBin: true which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } + engines: { node: ">= 8" } hasBin: true which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } hasBin: true which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== } + engines: { node: ^18.17.0 || >=20.5.0 } hasBin: true which@6.0.1: - resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} - engines: {node: ^20.17.0 || >=22.9.0} + resolution: + { integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg== } + engines: { node: ^20.17.0 || >=22.9.0 } hasBin: true which@7.0.0: - resolution: {integrity: sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA==} - engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + resolution: + { integrity: sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA== } + engines: { node: ^22.22.2 || ^24.15.0 || >=26.0.0 } hasBin: true why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== } + engines: { node: ">=8" } hasBin: true wide-align@1.1.3: - resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} + resolution: + { integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== } wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + resolution: + { integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== } widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== } + engines: { node: ">=8" } widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA== } + engines: { node: ">=18" } wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + resolution: + { integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== } winston-transport@4.9.0: - resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A== } + engines: { node: ">= 12.0.0" } winston@3.19.0: - resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} - engines: {node: '>= 12.0.0'} + resolution: + { integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA== } + engines: { node: ">= 12.0.0" } with@7.0.2: - resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} - engines: {node: '>= 10.0.0'} + resolution: + { integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== } + engines: { node: ">= 10.0.0" } word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } + engines: { node: ">=0.10.0" } wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + resolution: + { integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== } wordwrapjs@4.0.1: - resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} - engines: {node: '>=8.0.0'} + resolution: + { integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== } + engines: { node: ">=8.0.0" } wordwrapjs@5.1.1: - resolution: {integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==} - engines: {node: '>=12.17'} + resolution: + { integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg== } + engines: { node: ">=12.17" } workbox-background-sync@6.6.0: - resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} + resolution: + { integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw== } workbox-broadcast-update@6.6.0: - resolution: {integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==} + resolution: + { integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q== } workbox-build@6.6.0: - resolution: {integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==} - engines: {node: '>=10.0.0'} - - workbox-cacheable-response@6.5.4: - resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} + resolution: + { integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ== } + engines: { node: ">=10.0.0" } workbox-cacheable-response@6.6.0: - resolution: {integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==} + resolution: + { integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw== } deprecated: workbox-background-sync@6.6.0 - workbox-core@6.5.4: - resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} - workbox-core@6.6.0: - resolution: {integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==} + resolution: + { integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ== } workbox-expiration@6.6.0: - resolution: {integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==} + resolution: + { integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw== } workbox-google-analytics@6.6.0: - resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==} + resolution: + { integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q== } deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained workbox-navigation-preload@6.6.0: - resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==} + resolution: + { integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q== } workbox-precaching@6.6.0: - resolution: {integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==} + resolution: + { integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw== } workbox-range-requests@6.6.0: - resolution: {integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==} + resolution: + { integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw== } workbox-recipes@6.6.0: - resolution: {integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==} + resolution: + { integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A== } workbox-routing@6.6.0: - resolution: {integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==} + resolution: + { integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw== } workbox-strategies@6.6.0: - resolution: {integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==} + resolution: + { integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ== } workbox-streams@6.6.0: - resolution: {integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==} + resolution: + { integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg== } workbox-sw@6.6.0: - resolution: {integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==} + resolution: + { integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ== } workbox-webpack-plugin@6.6.0: - resolution: {integrity: sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A== } + engines: { node: ">=10.0.0" } peerDependencies: webpack: ^4.4.0 || ^5.9.0 workbox-window@6.6.0: - resolution: {integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==} + resolution: + { integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw== } worker-farm@1.7.0: - resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} + resolution: + { integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== } workerpool@10.0.2: - resolution: {integrity: sha512-8PCeZlCwu0+8hXruze1ahYNsY+M0LOCmbmySZ9BWWqWIXP9TAXa6FZCxACTDL/0j47pFcC4xW98Gr8nAC5oymg==} + resolution: + { integrity: sha512-8PCeZlCwu0+8hXruze1ahYNsY+M0LOCmbmySZ9BWWqWIXP9TAXa6FZCxACTDL/0j47pFcC4xW98Gr8nAC5oymg== } workerpool@3.1.2: - resolution: {integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug==} + resolution: + { integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug== } workerpool@6.5.1: - resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + resolution: + { integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== } workerpool@9.3.4: - resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + resolution: + { integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== } wp-prettier@3.0.3: - resolution: {integrity: sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA== } + engines: { node: ">=14" } hasBin: true + wrap-ansi@10.0.0: + resolution: + { integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ== } + engines: { node: ">=20" } + wrap-ansi@3.0.1: - resolution: {integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== } + engines: { node: ">=4" } wrap-ansi@5.1.0: - resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== } + engines: { node: ">=6" } wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== } + engines: { node: ">=8" } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } + engines: { node: ">=10" } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== } + engines: { node: ">=12" } wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== } + engines: { node: ">=18" } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + resolution: + { integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== } write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + resolution: + { integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== } write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } write-file-atomic@6.0.0: - resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ== } + engines: { node: ^18.17.0 || >=20.5.0 } write-json-file@2.3.0: - resolution: {integrity: sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ== } + engines: { node: ">=4" } ws@6.2.4: - resolution: {integrity: sha512-PNIUUyLI5YpkJZj60YBzX1o0ByQ4ovvfmq9N/Kig/PAYbVlGyz4R6G0SEWrD0O9acc0sT2+IdMBVLFv8FSi0Nw==} + resolution: + { integrity: sha512-PNIUUyLI5YpkJZj60YBzX1o0ByQ4ovvfmq9N/Kig/PAYbVlGyz4R6G0SEWrD0O9acc0sT2+IdMBVLFv8FSi0Nw== } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -41974,8 +48307,9 @@ packages: optional: true ws@7.5.11: - resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} - engines: {node: '>=8.3.0'} + resolution: + { integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== } + engines: { node: ">=8.3.0" } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -41986,11 +48320,12 @@ packages: optional: true ws@8.20.1: - resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w== } + engines: { node: ">=10.0.0" } peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true @@ -41998,11 +48333,12 @@ packages: optional: true ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} - engines: {node: '>=10.0.0'} + resolution: + { integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== } + engines: { node: ">=10.0.0" } peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true @@ -42010,846 +48346,628 @@ packages: optional: true wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== } + engines: { node: ">=18" } wsl-utils@0.3.1: - resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} - engines: {node: '>=20'} + resolution: + { integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg== } + engines: { node: ">=20" } x-is-string@0.1.0: - resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} + resolution: + { integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w== } xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== } + engines: { node: ">=8" } xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== } + engines: { node: ">=12" } xml-name-validator@3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + resolution: + { integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== } xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== } + engines: { node: ">=12" } xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - - xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== } + engines: { node: ">=18" } xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== } + engines: { node: ">=4.0.0" } xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== } + engines: { node: ">=4.0" } xmlbuilder@15.1.1: - resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== } + engines: { node: ">=8.0" } xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + resolution: + { integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== } xmlhttprequest-ssl@1.6.3: - resolution: {integrity: sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== } + engines: { node: ">=0.4.0" } xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + resolution: + { integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== } + engines: { node: ">=0.4" } xxhash-wasm@1.1.0: - resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + resolution: + { integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA== } xxhashjs@0.2.2: - resolution: {integrity: sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==} + resolution: + { integrity: sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== } y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + resolution: + { integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== } y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } + engines: { node: ">=10" } yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + resolution: + { integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== } yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== } + engines: { node: ">=18" } yam@1.0.0: - resolution: {integrity: sha512-Hv9xxHtsJ9228wNhk03xnlDReUuWVvHwM4rIbjdAXYvHLs17xjuyF50N6XXFMN6N0omBaqgOok/MCK3At9fTAg==} - engines: {node: ^4.5 || 6.* || >= 7.*} + resolution: + { integrity: sha512-Hv9xxHtsJ9228wNhk03xnlDReUuWVvHwM4rIbjdAXYvHLs17xjuyF50N6XXFMN6N0omBaqgOok/MCK3At9fTAg== } + engines: { node: ^4.5 || 6.* || >= 7.* } yaml-language-server@1.20.0: - resolution: {integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==} + resolution: + { integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA== } hasBin: true yaml-types@0.4.0: - resolution: {integrity: sha512-XfbA30NUg4/LWUiplMbiufUiwYhgB9jvBhTWel7XQqjV+GaB79c2tROu/8/Tu7jO0HvDvnKWtBk5ksWRrhQ/0g==} - engines: {node: '>= 16', npm: '>= 7'} + resolution: + { integrity: sha512-XfbA30NUg4/LWUiplMbiufUiwYhgB9jvBhTWel7XQqjV+GaB79c2tROu/8/Tu7jO0HvDvnKWtBk5ksWRrhQ/0g== } + engines: { node: ">= 16", npm: ">= 7" } peerDependencies: yaml: ^2.3.0 yaml@1.10.3: - resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== } + engines: { node: ">= 6" } yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== } + engines: { node: ">= 14" } hasBin: true yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} - engines: {node: '>= 14.6'} + resolution: + { integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== } + engines: { node: ">= 14.6" } hasBin: true yamlparser@0.0.2: - resolution: {integrity: sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ==} + resolution: + { integrity: sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ== } yargs-parser@13.1.2: - resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} + resolution: + { integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== } yargs-parser@15.0.3: - resolution: {integrity: sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==} + resolution: + { integrity: sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== } yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== } + engines: { node: ">=6" } yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== } + engines: { node: ">=10" } yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== } + engines: { node: ">=12" } yargs-parser@22.0.0: - resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} + resolution: + { integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw== } + engines: { node: ^20.19.0 || ^22.12.0 || >=23 } yargs-unparser@1.6.0: - resolution: {integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== } + engines: { node: ">=6" } yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== } + engines: { node: ">=10" } yargs@13.3.2: - resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} + resolution: + { integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== } yargs@14.2.3: - resolution: {integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==} + resolution: + { integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== } yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== } + engines: { node: ">=8" } yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== } + engines: { node: ">=10" } yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== } + engines: { node: ">=12" } yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} + resolution: + { integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg== } + engines: { node: ^20.19.0 || ^22.12.0 || >=23 } yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + resolution: + { integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== } - yauzl@3.3.1: - resolution: {integrity: sha512-RNPCUkiE/ZgO4w8i9U5yDQVHaFDdnzaFANElRvpJteCspvmv2VqrRb9lvS6odVD+jqI/zDsxAHJVsafpcheVQQ==} - engines: {node: '>=12'} + yauzl@3.4.0: + resolution: + { integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw== } + engines: { node: ">=12" } yeast@0.1.2: - resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} + resolution: + { integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg== } ylru@1.4.0: - resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} - engines: {node: '>= 4.0.0'} + resolution: + { integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA== } + engines: { node: ">= 4.0.0" } yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } + engines: { node: ">=6" } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } + engines: { node: ">=10" } yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} - engines: {node: '>=12.20'} + resolution: + { integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== } + engines: { node: ">=12.20" } yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw== } + engines: { node: ">=18" } yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug== } + engines: { node: ">=18" } youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + resolution: + { integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA== } youch@4.1.1: - resolution: {integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==} + resolution: + { integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA== } zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + resolution: + { integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ== } zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} + resolution: + { integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA== } + engines: { node: ">= 14" } zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + resolution: + { integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA== } peerDependencies: zod: ^3.25.28 || ^4 zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} + resolution: + { integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ== } + engines: { node: ">=18.0.0" } peerDependencies: zod: ^3.25.0 || ^4.0.0 zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + resolution: + { integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== } zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + resolution: + { integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ== } - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.2: + resolution: + { integrity: sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw== } zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + resolution: + { integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ== } zone.js@0.16.2: - resolution: {integrity: sha512-Eky7p2Z1Ig3NnbfodSPoARCjKBSTFMnE/ACsP1L/XJEfY4SdOFce19BsUCWVwL6K5ABZFy5J3bjcMWffX+YM3Q==} + resolution: + { integrity: sha512-Eky7p2Z1Ig3NnbfodSPoARCjKBSTFMnE/ACsP1L/XJEfY4SdOFce19BsUCWVwL6K5ABZFy5J3bjcMWffX+YM3Q== } zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + resolution: + { integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== } snapshots: + "@11ty/dependency-tree-esm@2.0.4": + dependencies: + "@11ty/eleventy-utils": 2.0.7 + acorn: 8.17.0 + dependency-graph: 1.0.0 + normalize-path: 3.0.0 - '@11ty/dependency-tree@2.0.1': {} + "@11ty/dependency-tree@4.0.2": + dependencies: + "@11ty/eleventy-utils": 2.0.7 - '@11ty/eleventy-dev-server@1.0.4': + "@11ty/eleventy-dev-server@2.0.8(supports-color@8.1.1)": dependencies: - '@11ty/eleventy-utils': 1.0.3 + "@11ty/eleventy-utils": 2.0.7 chokidar: 3.6.0 - debug: 4.4.3(supports-color@5.5.0) - dev-ip: 1.0.1 + debug: 4.4.3(supports-color@8.1.1) finalhandler: 1.3.2 mime: 3.0.0 minimist: 1.2.8 morphdom: 2.7.8 please-upgrade-node: 3.2.0 - ssri: 8.0.1 + send: 1.2.1 + ssri: 11.0.0 + urlpattern-polyfill: 10.1.0 ws: 8.21.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@11ty/eleventy-plugin-syntaxhighlight@5.0.2': + "@11ty/eleventy-plugin-bundle@3.0.7(posthtml@0.16.7)(supports-color@8.1.1)": dependencies: - prismjs: 1.30.0 + "@11ty/eleventy-utils": 2.0.7 + debug: 4.4.3(supports-color@8.1.1) + posthtml-match-helper: 2.0.3(posthtml@0.16.7) + transitivePeerDependencies: + - posthtml + - supports-color - '@11ty/eleventy-utils@1.0.3': + "@11ty/eleventy-plugin-syntaxhighlight@5.0.2": dependencies: - normalize-path: 3.0.0 + prismjs: 1.30.0 - '@11ty/eleventy@2.0.1': + "@11ty/eleventy-utils@2.0.7": {} + + "@11ty/eleventy@3.1.6(supports-color@8.1.1)": dependencies: - '@11ty/dependency-tree': 2.0.1 - '@11ty/eleventy-dev-server': 1.0.4 - '@11ty/eleventy-utils': 1.0.3 - '@11ty/lodash-custom': 4.17.21 - '@iarna/toml': 2.2.5 - '@sindresorhus/slugify': 1.1.2 - bcp-47-normalize: 1.1.1 + "@11ty/dependency-tree": 4.0.2 + "@11ty/dependency-tree-esm": 2.0.4 + "@11ty/eleventy-dev-server": 2.0.8(supports-color@8.1.1) + "@11ty/eleventy-plugin-bundle": 3.0.7(posthtml@0.16.7)(supports-color@8.1.1) + "@11ty/eleventy-utils": 2.0.7 + "@11ty/lodash-custom": 4.17.21 + "@11ty/posthtml-urls": 1.0.3 + "@11ty/recursive-copy": 4.0.4 + "@sindresorhus/slugify": 2.2.1 + bcp-47-normalize: 2.3.0 chokidar: 3.6.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) - dependency-graph: 0.11.0 - ejs: 3.1.10 - fast-glob: 3.3.3 - graceful-fs: 4.2.11 + debug: 4.4.3(supports-color@8.1.1) + dependency-graph: 1.0.0 + entities: 6.0.1 + filesize: 10.1.6 gray-matter: 4.0.3 - hamljs: 0.6.2 - handlebars: 4.7.9 - is-glob: 4.0.3 - iso-639-1: 2.1.15 + iso-639-1: 3.1.5 + js-yaml: 4.2.0 kleur: 4.1.5 liquidjs: 10.27.0 luxon: 3.7.2 - markdown-it: 13.0.2 - micromatch: 4.0.8 + markdown-it: 14.2.0 minimist: 1.2.8 - moo: 0.5.3 - multimatch: 5.0.0 - mustache: 4.2.0 - normalize-path: 3.0.0 + moo: 0.5.2 + node-retrieve-globals: 6.0.1 nunjucks: 3.2.4(chokidar@3.6.0) - path-to-regexp: 6.3.0 + picomatch: 4.0.4 please-upgrade-node: 3.2.0 posthtml: 0.16.7 - posthtml-urls: 1.0.0 - pug: 3.0.4 - recursive-copy: 2.0.14 - semver: 7.8.1 + posthtml-match-helper: 2.0.3(posthtml@0.16.7) + semver: 7.8.4 slugify: 1.6.9 + tinyglobby: 0.2.17 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@11ty/lodash-custom@4.17.21': {} + "@11ty/lodash-custom@4.17.21": {} - '@achrinza/node-ipc@9.2.10': + "@11ty/posthtml-urls@1.0.3": dependencies: - '@node-ipc/js-queue': 2.0.3 + evaluate-value: 2.0.0 + http-equiv-refresh: 2.0.1 + list-to-array: 1.1.0 + parse-srcset: 1.0.2 + + "@11ty/recursive-copy@4.0.4": + dependencies: + errno: 1.0.0 + junk: 3.1.0 + minimatch: 3.1.5 + slash: 3.0.0 + + "@achrinza/node-ipc@9.2.10": + dependencies: + "@node-ipc/js-queue": 2.0.3 event-pubsub: 4.3.0 js-message: 1.0.7 - '@adobe/css-tools@4.3.3': {} + "@adobe/css-tools@4.3.3": {} - '@adobe/css-tools@4.5.0': {} + "@adobe/css-tools@4.5.0": {} - '@algolia/abtesting@1.14.1': + "@algolia/abtesting@1.18.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/abtesting@1.18.1': + "@algolia/abtesting@1.20.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3)': + "@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)(search-insights@2.17.3)": dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1) + "@algolia/autocomplete-plugin-algolia-insights": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)(search-insights@2.17.3) + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1) transitivePeerDependencies: - - '@algolia/client-search' + - "@algolia/client-search" - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3)': + "@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)(search-insights@2.17.3)": dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1) + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1) search-insights: 2.17.3 transitivePeerDependencies: - - '@algolia/client-search' + - "@algolia/client-search" - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)': + "@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)": dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1) - '@algolia/client-search': 5.52.1 - algoliasearch: 5.52.1 + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1) + "@algolia/client-search": 5.54.1 + algoliasearch: 5.54.1 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)': + "@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)": dependencies: - '@algolia/client-search': 5.52.1 - algoliasearch: 5.52.1 + "@algolia/client-search": 5.54.1 + algoliasearch: 5.54.1 - '@algolia/client-abtesting@5.48.1': + "@algolia/client-abtesting@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/client-abtesting@5.52.1': + "@algolia/client-abtesting@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/client-analytics@5.48.1': + "@algolia/client-analytics@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/client-analytics@5.52.1': + "@algolia/client-analytics@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/client-common@5.48.1': {} + "@algolia/client-common@5.52.0": {} - '@algolia/client-common@5.52.1': {} - - '@algolia/client-insights@5.48.1': - dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 - - '@algolia/client-insights@5.52.1': - dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 - - '@algolia/client-personalization@5.48.1': - dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 - - '@algolia/client-personalization@5.52.1': - dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common@5.54.1": {} - '@algolia/client-query-suggestions@5.48.1': + "@algolia/client-insights@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/client-query-suggestions@5.52.1': + "@algolia/client-insights@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/client-search@5.48.1': + "@algolia/client-personalization@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/client-search@5.52.1': + "@algolia/client-personalization@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/ingestion@1.48.1': + "@algolia/client-query-suggestions@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/ingestion@1.52.1': + "@algolia/client-query-suggestions@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/monitoring@1.48.1': + "@algolia/client-search@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/monitoring@1.52.1': + "@algolia/client-search@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/recommend@5.48.1': + "@algolia/ingestion@1.52.0": dependencies: - '@algolia/client-common': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/recommend@5.52.1': + "@algolia/ingestion@1.54.1": dependencies: - '@algolia/client-common': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/requester-browser-xhr@5.48.1': + "@algolia/monitoring@1.52.0": dependencies: - '@algolia/client-common': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/requester-browser-xhr@5.52.1': + "@algolia/monitoring@1.54.1": dependencies: - '@algolia/client-common': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/requester-fetch@5.48.1': + "@algolia/recommend@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 + "@algolia/client-common": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 - '@algolia/requester-fetch@5.52.1': + "@algolia/recommend@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 + "@algolia/client-common": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 - '@algolia/requester-node-http@5.48.1': + "@algolia/requester-browser-xhr@5.52.0": dependencies: - '@algolia/client-common': 5.48.1 + "@algolia/client-common": 5.52.0 - '@algolia/requester-node-http@5.52.1': + "@algolia/requester-browser-xhr@5.54.1": dependencies: - '@algolia/client-common': 5.52.1 + "@algolia/client-common": 5.54.1 - '@ampproject/remapping@2.3.0': + "@algolia/requester-fetch@5.52.0": dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + "@algolia/client-common": 5.52.0 - '@angular-devkit/architect@0.2102.12(chokidar@5.0.0)': + "@algolia/requester-fetch@5.54.1": dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - rxjs: 7.8.2 - transitivePeerDependencies: - - chokidar + "@algolia/client-common": 5.54.1 - '@angular-devkit/build-angular@21.2.12(526f8de90e4eb47a61b259121764f66b)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(chokidar@5.0.0)(jiti@2.7.0)(karma@6.4.4)(less@4.4.2)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(stylus@0.64.0)(terser@5.46.0)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.7)(yaml@2.9.0) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5 - istanbul-lib-instrument: 6.0.3 - jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - open: 11.0.0 - ora: 9.3.0 - picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - resolve-url-loader: 5.0.0 - rxjs: 7.8.2 - sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - source-map-support: 0.5.21 - terser: 5.46.0 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - esbuild: 0.27.3 - jest-environment-jsdom: 30.4.1(canvas@3.2.3) - karma: 6.4.4 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - protractor: 7.0.0 - transitivePeerDependencies: - - '@angular/compiler' - - '@emnapi/core' - - '@emnapi/runtime' - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@types/node' - - bufferutil - - chokidar - - clean-css - - cssnano - - csso - - debug - - html-minifier-terser - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vitest - - webpack-cli - - yaml + "@algolia/requester-node-http@5.52.0": + dependencies: + "@algolia/client-common": 5.52.0 - '@angular-devkit/build-angular@21.2.12(89442b8f3fbd5b6c5b19c712862df115)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(jiti@2.7.0)(karma@6.4.4)(less@4.4.2)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(stylus@0.64.0)(terser@5.46.0)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.7)(yaml@2.9.0) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5 - istanbul-lib-instrument: 6.0.3 - jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - open: 11.0.0 - ora: 9.3.0 - picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - resolve-url-loader: 5.0.0 - rxjs: 7.8.2 - sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - source-map-support: 0.5.21 - terser: 5.46.0 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - esbuild: 0.27.3 - jest-environment-jsdom: 30.4.1(canvas@3.2.3) - karma: 6.4.4 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - protractor: 7.0.0 - transitivePeerDependencies: - - '@angular/compiler' - - '@emnapi/core' - - '@emnapi/runtime' - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@types/node' - - bufferutil - - chokidar - - clean-css - - cssnano - - csso - - debug - - html-minifier-terser - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vitest - - webpack-cli - - yaml + "@algolia/requester-node-http@5.54.1": + dependencies: + "@algolia/client-common": 5.54.1 - '@angular-devkit/build-angular@21.2.12(b43932d0cb8a4dc91b61bc3a245b71dc)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(chokidar@5.0.0)(jiti@2.7.0)(karma@6.4.4)(less@4.4.2)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(stylus@0.64.0)(terser@5.46.0)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.7)(yaml@2.9.0) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5 - istanbul-lib-instrument: 6.0.3 - jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - open: 11.0.0 - ora: 9.3.0 - picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - resolve-url-loader: 5.0.0 - rxjs: 7.8.2 - sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - source-map-support: 0.5.21 - terser: 5.46.0 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.7(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - esbuild: 0.27.3 - jest-environment-jsdom: 30.4.1(canvas@3.2.3) - karma: 6.4.4 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - protractor: 7.0.0 - transitivePeerDependencies: - - '@angular/compiler' - - '@emnapi/core' - - '@emnapi/runtime' - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@types/node' - - bufferutil - - chokidar - - clean-css - - cssnano - - csso - - debug - - html-minifier-terser - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vitest - - webpack-cli - - yaml + "@ampproject/remapping@2.3.0": + dependencies: + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 - '@angular-devkit/build-webpack@0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': + "@angular-devkit/architect@0.2200.1(chokidar@5.0.0)": dependencies: - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) + "@angular-devkit/core": 22.0.1(chokidar@5.0.0) rxjs: 7.8.2 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.26': + "@angular-devkit/core@20.3.28": dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -42858,10 +48976,10 @@ snapshots: rxjs: 7.8.2 source-map: 0.7.6 - '@angular-devkit/core@21.2.12(chokidar@5.0.0)': + "@angular-devkit/core@22.0.1(chokidar@5.0.0)": dependencies: - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) jsonc-parser: 3.3.1 picomatch: 4.0.4 rxjs: 7.8.2 @@ -42869,9 +48987,9 @@ snapshots: optionalDependencies: chokidar: 5.0.0 - '@angular-devkit/schematics@20.3.26': + "@angular-devkit/schematics@20.3.28": dependencies: - '@angular-devkit/core': 20.3.26 + "@angular-devkit/core": 20.3.28 jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -42879,123 +48997,112 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@21.2.12(chokidar@5.0.0)': + "@angular-devkit/schematics@22.0.1(chokidar@5.0.0)": dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) + "@angular-devkit/core": 22.0.1(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 0.30.21 - ora: 9.3.0 + ora: 9.4.0 rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-eslint/builder@21.3.1(@angular/cli@21.2.12(@types/node@25.9.1))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@angular-eslint/builder@22.0.0(@angular/cli@22.0.1(@types/node@25.9.3))(chokidar@5.0.0)(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/cli': 21.2.12(@types/node@25.9.1)(chokidar@5.0.0) - eslint: 10.4.1(jiti@2.7.0) - typescript: 5.9.3 + "@angular-devkit/architect": 0.2200.1(chokidar@5.0.0) + "@angular-devkit/core": 22.0.1(chokidar@5.0.0) + "@angular/cli": 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) + eslint: 10.5.0(jiti@2.7.0) + typescript: 6.0.3 transitivePeerDependencies: - chokidar - '@angular-eslint/bundled-angular-compiler@21.3.1': {} + "@angular-eslint/bundled-angular-compiler@22.0.0": {} - '@angular-eslint/bundled-angular-compiler@21.4.0': {} - - '@angular-eslint/eslint-plugin-template@21.4.0(@angular-eslint/template-parser@21.3.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(@typescript-eslint/types@8.60.0)(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@angular-eslint/eslint-plugin-template@22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.61.1)(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@angular-eslint/bundled-angular-compiler': 21.4.0 - '@angular-eslint/template-parser': 21.3.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@angular-eslint/utils': 21.4.0(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@angular-eslint/bundled-angular-compiler": 22.0.0 + "@angular-eslint/template-parser": 22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@angular-eslint/utils": 22.0.0(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) aria-query: 5.3.2 axobject-query: 4.1.0 - eslint: 10.4.1(jiti@2.7.0) - typescript: 5.9.3 + eslint: 10.5.0(jiti@2.7.0) + typescript: 6.0.3 - '@angular-eslint/eslint-plugin@21.3.1(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@angular-eslint/eslint-plugin@22.0.0(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.1 - '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.4.1(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + "@angular-eslint/bundled-angular-compiler": 22.0.0 + "@angular-eslint/utils": 22.0.0(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 - '@angular-eslint/template-parser@21.3.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@angular-eslint/template-parser@22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.1 - eslint: 10.4.1(jiti@2.7.0) + "@angular-eslint/bundled-angular-compiler": 22.0.0 + eslint: 10.5.0(jiti@2.7.0) eslint-scope: 9.1.2 - typescript: 5.9.3 - - '@angular-eslint/utils@21.3.1(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.1 - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.4.1(jiti@2.7.0) - typescript: 5.9.3 + typescript: 6.0.3 - '@angular-eslint/utils@21.4.0(@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@angular-eslint/utils@22.0.0(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@angular-eslint/bundled-angular-compiler': 21.4.0 - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.4.1(jiti@2.7.0) - typescript: 5.9.3 + "@angular-eslint/bundled-angular-compiler": 22.0.0 + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + typescript: 6.0.3 - '@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))': + "@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))": dependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) tslib: 2.8.1 + optional: true - '@angular/build@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(chokidar@5.0.0)(jiti@2.7.0)(karma@6.4.4)(less@4.4.2)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(stylus@0.64.0)(terser@5.46.0)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.7)(yaml@2.9.0)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.9.1) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0)) - beasties: 0.4.1 + "@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)": + dependencies: + "@ampproject/remapping": 2.3.0 + "@angular-devkit/architect": 0.2200.1(chokidar@5.0.0) + "@angular/compiler": 22.0.1 + "@angular/compiler-cli": 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.27.3 + "@babel/helper-split-export-declaration": 7.24.7 + "@inquirer/confirm": 6.0.12(@types/node@25.9.3) + "@vitejs/plugin-basic-ssl": 2.3.0(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + beasties: 0.4.2 browserslist: 4.28.2 - esbuild: 0.27.3 - https-proxy-agent: 7.0.6 - istanbul-lib-instrument: 6.0.3 + esbuild: 0.28.0 + https-proxy-agent: 9.0.0(supports-color@8.1.1) jsonc-parser: 3.3.1 - listr2: 9.0.5 + listr2: 10.2.1 magic-string: 0.30.21 mrmime: 2.0.1 - parse5-html-rewriting-stream: 8.0.0 + parse5-html-rewriting-stream: 8.0.1 picomatch: 4.0.4 piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - sass: 1.97.3 + rollup: 4.60.2 + sass: 1.99.0 semver: 7.7.4 source-map-support: 0.5.21 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 - typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0) + typescript: 6.0.3 + vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - karma: 6.4.4 - less: 4.4.2 - lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0)) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - '@types/node' + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/platform-browser": 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + istanbul-lib-instrument: 6.0.3 + karma: 6.4.4(supports-color@8.1.1) + less: 4.6.6 + lmdb: 3.5.4 + ng-packagr: 22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3) + postcss: 8.5.15 + vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + transitivePeerDependencies: + - "@types/node" - chokidar - jiti - lightningcss @@ -43007,52 +49114,49 @@ snapshots: - tsx - yaml - '@angular/build@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(jiti@2.7.0)(karma@6.4.4)(less@4.4.2)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(stylus@0.64.0)(terser@5.46.0)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.7)(yaml@2.9.0)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.9.1) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0)) - beasties: 0.4.1 + "@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)": + dependencies: + "@ampproject/remapping": 2.3.0 + "@angular-devkit/architect": 0.2200.1(chokidar@5.0.0) + "@angular/compiler": 22.0.1 + "@angular/compiler-cli": 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.27.3 + "@babel/helper-split-export-declaration": 7.24.7 + "@inquirer/confirm": 6.0.12(@types/node@25.9.3) + "@vitejs/plugin-basic-ssl": 2.3.0(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + beasties: 0.4.2 browserslist: 4.28.2 - esbuild: 0.27.3 - https-proxy-agent: 7.0.6 - istanbul-lib-instrument: 6.0.3 + esbuild: 0.28.0 + https-proxy-agent: 9.0.0(supports-color@8.1.1) jsonc-parser: 3.3.1 - listr2: 9.0.5 + listr2: 10.2.1 magic-string: 0.30.21 mrmime: 2.0.1 - parse5-html-rewriting-stream: 8.0.0 + parse5-html-rewriting-stream: 8.0.1 picomatch: 4.0.4 piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - sass: 1.97.3 + rollup: 4.60.2 + sass: 1.99.0 semver: 7.7.4 source-map-support: 0.5.21 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 - typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0) + typescript: 6.0.3 + vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - karma: 6.4.4 - less: 4.4.2 - lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - '@types/node' + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/platform-browser": 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + istanbul-lib-instrument: 6.0.3 + karma: 6.4.4(supports-color@8.1.1) + less: 4.6.6 + lmdb: 3.5.4 + ng-packagr: 22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3) + postcss: 8.5.15 + vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + transitivePeerDependencies: + - "@types/node" - chokidar - jiti - lightningcss @@ -43064,269 +49168,276 @@ snapshots: - tsx - yaml - '@angular/cli@21.2.12(@types/node@25.9.1)(chokidar@5.0.0)': - dependencies: - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@25.9.1) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@25.9.1))(@types/node@25.9.1)(listr2@9.0.5) - '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.6) - '@schematics/angular': 21.2.12(chokidar@5.0.0) - '@yarnpkg/lockfile': 1.1.0 - algoliasearch: 5.48.1 + "@angular/cli@22.0.1(@types/node@25.9.3)(chokidar@5.0.0)": + dependencies: + "@angular-devkit/architect": 0.2200.1(chokidar@5.0.0) + "@angular-devkit/core": 22.0.1(chokidar@5.0.0) + "@angular-devkit/schematics": 22.0.1(chokidar@5.0.0) + "@inquirer/prompts": 8.4.2(@types/node@25.9.3) + "@listr2/prompt-adapter-inquirer": 4.2.3(@inquirer/prompts@8.4.2(@types/node@25.9.3))(@types/node@25.9.3)(listr2@10.2.1) + "@modelcontextprotocol/sdk": 1.29.0(zod@4.4.2) + "@schematics/angular": 22.0.1(chokidar@5.0.0) + "@yarnpkg/lockfile": 1.1.0 + algoliasearch: 5.52.0 ini: 6.0.0 jsonc-parser: 3.3.1 - listr2: 9.0.5 + listr2: 10.2.1 npm-package-arg: 13.0.2 - pacote: 21.3.1 - parse5-html-rewriting-stream: 8.0.0 + pacote: 21.5.0 + parse5-html-rewriting-stream: 8.0.1 semver: 7.7.4 yargs: 18.0.0 - zod: 4.3.6 + zod: 4.4.2 transitivePeerDependencies: - - '@cfworker/json-schema' - - '@types/node' + - "@cfworker/json-schema" + - "@types/node" - chokidar - supports-color - '@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2)': + "@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2)": dependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3)': + "@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3)": dependencies: - '@angular/compiler': 21.2.14 - '@babel/core': 7.29.0 - '@jridgewell/sourcemap-codec': 1.5.5 + "@angular/compiler": 22.0.1 + "@babel/core": 7.29.0 + "@jridgewell/sourcemap-codec": 1.5.5 chokidar: 5.0.0 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 - semver: 7.8.1 + semver: 7.8.4 tslib: 2.8.1 yargs: 18.0.0 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@angular/compiler@21.2.14': + "@angular/compiler@22.0.1": dependencies: tslib: 2.8.1 - '@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)': + "@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)": dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 21.2.14 + "@angular/compiler": 22.0.1 zone.js: 0.16.2 - '@angular/forms@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': + "@angular/forms@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)": dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) - '@standard-schema/spec': 1.1.0 + "@angular/common": 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/platform-browser": 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + "@standard-schema/spec": 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 + zod: 4.4.3 - '@angular/language-service@21.2.14': {} + "@angular/language-service@22.0.1": {} - '@angular/platform-browser-dynamic@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))': + "@angular/platform-browser-dynamic@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))": dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/compiler': 21.2.14 - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/common": 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/compiler": 22.0.1 + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/platform-browser": 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) tslib: 2.8.1 - '@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))': + "@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))": dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/common": 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/animations": 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/router@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': + "@angular/router@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)": dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)) + "@angular/common": 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/platform-browser": 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) rxjs: 7.8.2 tslib: 2.8.1 - '@apideck/better-ajv-errors@0.3.7(ajv@8.20.0)': + "@apideck/better-ajv-errors@0.3.7(ajv@8.20.0)": dependencies: ajv: 8.20.0 jsonpointer: 5.0.1 leven: 3.1.0 - '@ariakit/components@0.1.1': + "@ariakit/components@0.1.2": dependencies: - '@ariakit/store': 0.1.1 - '@ariakit/utils': 0.1.1 + "@ariakit/store": 0.1.2 + "@ariakit/utils": 0.1.2 - '@ariakit/react-components@0.1.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@ariakit/react-components@0.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@ariakit/components': 0.1.1 - '@ariakit/react-store': 0.1.1(react@19.2.6) - '@ariakit/react-utils': 0.1.1(react@19.2.6) - '@ariakit/store': 0.1.1 - '@ariakit/utils': 0.1.1 - '@floating-ui/dom': 1.7.6 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@ariakit/components": 0.1.2 + "@ariakit/react-store": 0.1.2(react@19.2.7) + "@ariakit/react-utils": 0.1.2(react@19.2.7) + "@ariakit/store": 0.1.2 + "@ariakit/utils": 0.1.2 + "@floating-ui/dom": 1.7.6 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - '@ariakit/react-store@0.1.1(react@19.2.6)': + "@ariakit/react-store@0.1.2(react@19.2.7)": dependencies: - '@ariakit/react-utils': 0.1.1(react@19.2.6) - '@ariakit/store': 0.1.1 - '@ariakit/utils': 0.1.1 - react: 19.2.6 - use-sync-external-store: 1.6.0(react@19.2.6) + "@ariakit/react-utils": 0.1.2(react@19.2.7) + "@ariakit/store": 0.1.2 + "@ariakit/utils": 0.1.2 + react: 19.2.7 + use-sync-external-store: 1.6.0(react@19.2.7) - '@ariakit/react-utils@0.1.1(react@19.2.6)': + "@ariakit/react-utils@0.1.2(react@19.2.7)": dependencies: - '@ariakit/store': 0.1.1 - '@ariakit/utils': 0.1.1 - react: 19.2.6 + "@ariakit/store": 0.1.2 + "@ariakit/utils": 0.1.2 + react: 19.2.7 - '@ariakit/react@0.4.28(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@ariakit/react@0.4.29(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@ariakit/react-components': 0.1.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@ariakit/react-components": 0.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - '@ariakit/store@0.1.1': + "@ariakit/store@0.1.2": dependencies: - '@ariakit/utils': 0.1.1 + "@ariakit/utils": 0.1.2 - '@ariakit/utils@0.1.1': {} + "@ariakit/utils@0.1.2": {} - '@asamuzakjp/css-color@3.2.0': + "@asamuzakjp/css-color@3.2.0": dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + "@csstools/css-calc": 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + "@csstools/css-color-parser": 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 lru-cache: 10.4.3 - '@asamuzakjp/css-color@5.1.11': + "@asamuzakjp/css-color@5.1.11": dependencies: - '@asamuzakjp/generational-cache': 1.0.1 - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 + "@asamuzakjp/generational-cache": 1.0.1 + "@csstools/css-calc": 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + "@csstools/css-color-parser": 4.1.7(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + "@csstools/css-parser-algorithms": 4.0.0(@csstools/css-tokenizer@4.0.0) + "@csstools/css-tokenizer": 4.0.0 - '@asamuzakjp/dom-selector@7.1.1': + "@asamuzakjp/dom-selector@7.1.1": dependencies: - '@asamuzakjp/generational-cache': 1.0.1 - '@asamuzakjp/nwsapi': 2.3.9 + "@asamuzakjp/generational-cache": 1.0.1 + "@asamuzakjp/nwsapi": 2.3.9 bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - '@asamuzakjp/generational-cache@1.0.1': {} + "@asamuzakjp/generational-cache@1.0.1": {} - '@asamuzakjp/nwsapi@2.3.9': {} + "@asamuzakjp/nwsapi@2.3.9": {} - '@ast-grep/napi-darwin-arm64@0.36.3': + "@ast-grep/napi-darwin-arm64@0.36.3": optional: true - '@ast-grep/napi-darwin-x64@0.36.3': + "@ast-grep/napi-darwin-x64@0.36.3": optional: true - '@ast-grep/napi-linux-arm64-gnu@0.36.3': + "@ast-grep/napi-linux-arm64-gnu@0.36.3": optional: true - '@ast-grep/napi-linux-arm64-musl@0.36.3': + "@ast-grep/napi-linux-arm64-musl@0.36.3": optional: true - '@ast-grep/napi-linux-x64-gnu@0.36.3': + "@ast-grep/napi-linux-x64-gnu@0.36.3": optional: true - '@ast-grep/napi-linux-x64-musl@0.36.3': + "@ast-grep/napi-linux-x64-musl@0.36.3": optional: true - '@ast-grep/napi-win32-arm64-msvc@0.36.3': + "@ast-grep/napi-win32-arm64-msvc@0.36.3": optional: true - '@ast-grep/napi-win32-ia32-msvc@0.36.3': + "@ast-grep/napi-win32-ia32-msvc@0.36.3": optional: true - '@ast-grep/napi-win32-x64-msvc@0.36.3': + "@ast-grep/napi-win32-x64-msvc@0.36.3": optional: true - '@ast-grep/napi@0.36.3': + "@ast-grep/napi@0.36.3": optionalDependencies: - '@ast-grep/napi-darwin-arm64': 0.36.3 - '@ast-grep/napi-darwin-x64': 0.36.3 - '@ast-grep/napi-linux-arm64-gnu': 0.36.3 - '@ast-grep/napi-linux-arm64-musl': 0.36.3 - '@ast-grep/napi-linux-x64-gnu': 0.36.3 - '@ast-grep/napi-linux-x64-musl': 0.36.3 - '@ast-grep/napi-win32-arm64-msvc': 0.36.3 - '@ast-grep/napi-win32-ia32-msvc': 0.36.3 - '@ast-grep/napi-win32-x64-msvc': 0.36.3 - - '@astrojs/check@0.9.9(prettier-plugin-astro@0.14.1)(prettier@3.8.3)(typescript@5.9.3)': - dependencies: - '@astrojs/language-server': 2.16.9(prettier-plugin-astro@0.14.1)(prettier@3.8.3)(typescript@5.9.3) + "@ast-grep/napi-darwin-arm64": 0.36.3 + "@ast-grep/napi-darwin-x64": 0.36.3 + "@ast-grep/napi-linux-arm64-gnu": 0.36.3 + "@ast-grep/napi-linux-arm64-musl": 0.36.3 + "@ast-grep/napi-linux-x64-gnu": 0.36.3 + "@ast-grep/napi-linux-x64-musl": 0.36.3 + "@ast-grep/napi-win32-arm64-msvc": 0.36.3 + "@ast-grep/napi-win32-ia32-msvc": 0.36.3 + "@ast-grep/napi-win32-x64-msvc": 0.36.3 + + "@astrojs/check@0.9.9(prettier-plugin-astro@0.14.1)(prettier@3.8.4)(typescript@6.0.3)": + dependencies: + "@astrojs/language-server": 2.16.10(prettier-plugin-astro@0.14.1)(prettier@3.8.4)(typescript@6.0.3) chokidar: 4.0.3 kleur: 4.1.5 - typescript: 5.9.3 + typescript: 6.0.3 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - '@astrojs/compiler@2.13.1': {} + "@astrojs/compiler@2.13.1": {} - '@astrojs/compiler@4.0.0': {} + "@astrojs/compiler@4.0.0": {} - '@astrojs/internal-helpers@0.9.1': + "@astrojs/internal-helpers@0.10.0": dependencies: + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + js-yaml: 4.2.0 picomatch: 4.0.4 + retext-smartypants: 6.2.0 + shiki: 4.2.0 + smol-toml: 1.6.1 + unified: 11.0.5 - '@astrojs/language-server@2.16.9(prettier-plugin-astro@0.14.1)(prettier@3.8.3)(typescript@5.9.3)': + "@astrojs/language-server@2.16.10(prettier-plugin-astro@0.14.1)(prettier@3.8.4)(typescript@6.0.3)": dependencies: - '@astrojs/compiler': 2.13.1 - '@astrojs/yaml2ts': 0.2.4 - '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/kit': 2.4.28(typescript@5.9.3) - '@volar/language-core': 2.4.28 - '@volar/language-server': 2.4.28 - '@volar/language-service': 2.4.28 + "@astrojs/compiler": 2.13.1 + "@astrojs/yaml2ts": 0.2.4 + "@jridgewell/sourcemap-codec": 1.5.5 + "@volar/kit": 2.4.28(typescript@6.0.3) + "@volar/language-core": 2.4.28 + "@volar/language-server": 2.4.28 + "@volar/language-service": 2.4.28 muggle-string: 0.4.1 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 volar-service-css: 0.0.70(@volar/language-service@2.4.28) volar-service-emmet: 0.0.70(@volar/language-service@2.4.28) volar-service-html: 0.0.70(@volar/language-service@2.4.28) - volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.8.3) + volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.8.4) volar-service-typescript: 0.0.70(@volar/language-service@2.4.28) volar-service-typescript-twoslash-queries: 0.0.70(@volar/language-service@2.4.28) volar-service-yaml: 0.0.70(@volar/language-service@2.4.28) vscode-html-languageservice: 5.6.2 vscode-uri: 3.1.0 optionalDependencies: - prettier: 3.8.3 + prettier: 3.8.4 prettier-plugin-astro: 0.14.1 transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@7.1.2': + "@astrojs/markdown-remark@7.2.0": dependencies: - '@astrojs/internal-helpers': 0.9.1 - '@astrojs/prism': 4.0.2 + "@astrojs/internal-helpers": 0.10.0 + "@astrojs/prism": 4.0.2 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 - js-yaml: 4.1.1 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -43334,9 +49445,6 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - retext-smartypants: 6.2.0 - shiki: 4.1.0 - smol-toml: 1.6.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.1.0 @@ -43345,11 +49453,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/prism@4.0.2': + "@astrojs/prism@4.0.2": dependencies: prismjs: 1.30.0 - '@astrojs/telemetry@3.3.2': + "@astrojs/telemetry@3.3.2": dependencies: ci-info: 4.4.0 dset: 3.1.4 @@ -43357,1304 +49465,1267 @@ snapshots: is-wsl: 3.1.1 which-pm-runs: 1.1.0 - '@astrojs/yaml2ts@0.2.4': + "@astrojs/yaml2ts@0.2.4": dependencies: yaml: 2.9.0 - '@augment-vir/assert@31.70.1': + "@augment-vir/assert@31.73.1": dependencies: - '@augment-vir/core': 31.70.1 - '@date-vir/duration': 8.3.2 + "@augment-vir/core": 31.73.1 + "@date-vir/duration": 8.5.0 deep-eql: 5.0.2 expect-type: 1.3.0 - type-fest: 5.6.0 + type-fest: 5.7.0 - '@augment-vir/common@31.70.1': + "@augment-vir/common@31.73.1": dependencies: - '@augment-vir/assert': 31.70.1 - '@augment-vir/core': 31.70.1 - '@date-vir/duration': 8.3.2 - '@paralleldrive/cuid2': 3.3.0 + "@augment-vir/assert": 31.73.1 + "@augment-vir/core": 31.73.1 + "@date-vir/duration": 8.5.0 + "@paralleldrive/cuid2": 3.3.0 ansi-styles: 6.2.3 - deepcopy-esm: 2.1.1 + deepcopy-esm: 2.1.2 json5: 2.2.3 - type-fest: 5.6.0 - typed-event-target: 4.3.0 + type-fest: 5.7.0 + typed-event-target: 4.3.1 - '@augment-vir/core@31.70.1': + "@augment-vir/core@31.73.1": dependencies: - '@date-vir/duration': 8.3.2 + "@date-vir/duration": 8.5.0 browser-or-node: 3.0.0 diff: 9.0.0 json5: 2.2.3 - type-fest: 5.6.0 + type-fest: 5.7.0 - '@babel/code-frame@7.29.0': + "@babel/code-frame@7.29.7": dependencies: - '@babel/helper-validator-identifier': 7.28.5 + "@babel/helper-validator-identifier": 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.3': {} + "@babel/code-frame@8.0.0": + dependencies: + "@babel/helper-validator-identifier": 8.0.0 + js-tokens: 10.0.0 + + "@babel/compat-data@7.29.7": {} + + "@babel/compat-data@8.0.0": {} - '@babel/core@7.25.7': + "@babel/core@7.29.0": dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.25.7) - '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/code-frame": 7.29.7 + "@babel/generator": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.0) + "@babel/helpers": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + "@jridgewell/remapping": 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/core@7.29.0': + "@babel/core@8.0.1": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 + "@babel/code-frame": 8.0.0 + "@babel/generator": 8.0.0 + "@babel/helper-compilation-targets": 8.0.0 + "@babel/helpers": 8.0.0 + "@babel/parser": 8.0.0 + "@babel/template": 8.0.0 + "@babel/traverse": 8.0.0 + "@babel/types": 8.0.0 + "@types/gensync": 1.0.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + empathic: 2.0.1 gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + obug: 2.1.3 + semver: 7.8.4 - '@babel/eslint-parser@7.28.6(@babel/core@7.25.7)(eslint@10.4.1(jiti@2.7.0))': + "@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0))": dependencies: - '@babel/core': 7.25.7 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 10.4.1(jiti@2.7.0) + "@babel/core": 7.29.0 + "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 + eslint: 10.5.0(jiti@2.7.0) eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0))': + "@babel/generator@7.29.7": dependencies: - '@babel/core': 7.29.0 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 10.4.1(jiti@2.7.0) - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 + jsesc: 3.1.0 - '@babel/generator@7.29.1': + "@babel/generator@8.0.0": dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + "@babel/parser": 8.0.0 + "@babel/types": 8.0.0 + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 + "@types/jsesc": 2.5.1 jsesc: 3.1.0 - '@babel/generator@8.0.0-rc.5': + "@babel/helper-annotate-as-pure@7.27.3": dependencies: - '@babel/parser': 8.0.0-rc.5 - '@babel/types': 8.0.0-rc.5 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@types/jsesc': 2.5.1 - jsesc: 3.1.0 + "@babel/types": 7.29.7 - '@babel/helper-annotate-as-pure@7.27.3': + "@babel/helper-annotate-as-pure@7.29.7": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 - '@babel/helper-compilation-targets@7.28.6': + "@babel/helper-annotate-as-pure@8.0.0": dependencies: - '@babel/compat-data': 7.29.3 - '@babel/helper-validator-option': 7.27.1 + "@babel/types": 8.0.0 + + "@babel/helper-compilation-targets@7.29.7": + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/helper-validator-option": 7.29.7 browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.25.7)': + "@babel/helper-compilation-targets@8.0.0": + dependencies: + "@babel/compat-data": 8.0.0 + "@babel/helper-validator-option": 8.0.0 + browserslist: 4.28.2 + lru-cache: 11.5.1 + semver: 7.8.4 + + "@babel/helper-compilation-targets@8.0.0-rc.6": + dependencies: + "@babel/compat-data": 8.0.0 + "@babel/helper-validator-option": 8.0.0 + browserslist: 4.28.2 + lru-cache: 7.18.3 + semver: 7.8.4 + + "@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.25.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.0) + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/traverse": 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0)': + "@babel/helper-create-class-features-plugin@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/traverse": 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.25.7)': + "@babel/helper-create-class-features-plugin@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 + "@babel/helper-member-expression-to-functions": 8.0.0 + "@babel/helper-optimise-call-expression": 8.0.0 + "@babel/helper-replace-supers": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 + "@babel/traverse": 8.0.0 + semver: 7.8.4 + + "@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + "@babel/helper-create-regexp-features-plugin@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 regexpu-core: 6.4.0 - semver: 6.3.1 + semver: 7.8.4 - '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.25.7)': + "@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - debug: 4.4.3(supports-color@5.5.0) + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.12 transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': + "@babel/helper-define-polyfill-provider@1.0.0-rc.2(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - debug: 4.4.3(supports-color@5.5.0) + "@babel/core": 8.0.1 + "@babel/helper-compilation-targets": 8.0.0-rc.6 + "@babel/helper-plugin-utils": 8.0.0-rc.6(@babel/core@8.0.1) lodash.debounce: 4.0.8 - resolve: 1.22.12 - transitivePeerDependencies: - - supports-color - '@babel/helper-globals@7.28.0': {} + "@babel/helper-globals@7.29.7": {} + + "@babel/helper-globals@8.0.0": {} - '@babel/helper-member-expression-to-functions@7.28.5': + "@babel/helper-member-expression-to-functions@7.29.7": dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.18.6': + "@babel/helper-member-expression-to-functions@8.0.0": + dependencies: + "@babel/traverse": 8.0.0 + "@babel/types": 8.0.0 + + "@babel/helper-module-imports@7.18.6": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 - '@babel/helper-module-imports@7.28.6': + "@babel/helper-module-imports@7.29.7": dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.25.7)': + "@babel/helper-module-imports@8.0.0": + dependencies: + "@babel/traverse": 8.0.0 + "@babel/types": 8.0.0 + + "@babel/helper-module-transforms@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + "@babel/helper-module-transforms@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.27.1': + "@babel/helper-module-transforms@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/types': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 8.0.0 + "@babel/helper-validator-identifier": 8.0.0 + "@babel/traverse": 8.0.0 - '@babel/helper-plugin-utils@7.28.6': {} + "@babel/helper-optimise-call-expression@7.29.7": + dependencies: + "@babel/types": 7.29.7 - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.25.7)': + "@babel/helper-optimise-call-expression@8.0.0": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/types": 8.0.0 + + "@babel/helper-plugin-utils@7.29.7": {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + "@babel/helper-plugin-utils@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.6 - '@babel/traverse': 7.29.0 + "@babel/core": 8.0.1 + + "@babel/helper-plugin-utils@8.0.0-rc.6(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + + "@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.0)": + dependencies: + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-wrap-function": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.25.7)': + "@babel/helper-remap-async-to-generator@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 + "@babel/helper-wrap-function": 8.0.0 + "@babel/traverse": 8.0.0 + + "@babel/helper-replace-supers@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + "@babel/helper-replace-supers@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + "@babel/helper-replace-supers@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-member-expression-to-functions": 8.0.0 + "@babel/helper-optimise-call-expression": 8.0.0 + "@babel/traverse": 8.0.0 + + "@babel/helper-skip-transparent-expression-wrappers@7.29.7": + dependencies: + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': + "@babel/helper-skip-transparent-expression-wrappers@8.0.0": + dependencies: + "@babel/traverse": 8.0.0 + "@babel/types": 8.0.0 + + "@babel/helper-split-export-declaration@7.24.7": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 - '@babel/helper-string-parser@7.27.1': {} + "@babel/helper-string-parser@7.29.7": {} - '@babel/helper-string-parser@8.0.0-rc.5': {} + "@babel/helper-string-parser@8.0.0": {} - '@babel/helper-validator-identifier@7.28.5': {} + "@babel/helper-validator-identifier@7.29.7": {} - '@babel/helper-validator-identifier@8.0.0-rc.5': {} + "@babel/helper-validator-identifier@8.0.0": {} - '@babel/helper-validator-option@7.27.1': {} + "@babel/helper-validator-option@7.29.7": {} - '@babel/helper-wrap-function@7.28.6': + "@babel/helper-validator-option@8.0.0": {} + + "@babel/helper-wrap-function@7.29.7": dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helpers@7.29.2': + "@babel/helper-wrap-function@8.0.0": dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + "@babel/template": 8.0.0 + "@babel/traverse": 8.0.0 + "@babel/types": 8.0.0 - '@babel/parser@7.29.3': + "@babel/helpers@7.29.7": dependencies: - '@babel/types': 7.29.0 + "@babel/template": 7.29.7 + "@babel/types": 7.29.7 - '@babel/parser@8.0.0-rc.4': + "@babel/helpers@8.0.0": dependencies: - '@babel/types': 8.0.0-rc.5 + "@babel/template": 8.0.0 + "@babel/types": 8.0.0 - '@babel/parser@8.0.0-rc.5': + "@babel/parser@7.29.7": dependencies: - '@babel/types': 8.0.0-rc.5 + "@babel/types": 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.25.7)': + "@babel/parser@8.0.0": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/types": 8.0.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-bugfix-safari-class-field-initializer-scope@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3(@babel/core@7.29.0)': + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.25.7) - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-transform-optional-chaining": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)': + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 + "@babel/plugin-transform-optional-chaining": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.29.0)': + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.29.0)': + "@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.29.0)': - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.0)': + "@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + "@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + "@babel/core": 8.0.1 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@8.0.1) transitivePeerDependencies: - supports-color + optional: true - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-proposal-decorators@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-syntax-decorators": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.25.7)': + "@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.7)': + "@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + "@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-syntax-decorators@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 7.29.7 + optional: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)': + "@babel/plugin-syntax-decorators@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + "@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': + "@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + "@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': + "@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + "@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)': + "@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + "@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)': + "@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + "@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)': + "@babel/plugin-syntax-typescript@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + "@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-arrow-functions@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.25.7)': + "@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.25.7) - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-remap-async-to-generator": 7.29.7(@babel/core@7.29.0) + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-transform-async-generator-functions@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-remap-async-to-generator": 8.0.0(@babel/core@8.0.1) + "@babel/traverse": 8.0.0 - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.25.7) + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-remap-async-to-generator": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-async-to-generator@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-remap-async-to-generator": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-block-scoped-functions@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-block-scoping@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-class-properties@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-class-static-block@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.25.7) - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-globals": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.0) + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-classes@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 + "@babel/helper-compilation-targets": 8.0.0 + "@babel/helper-globals": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-replace-supers": 8.0.0(@babel/core@8.0.1) + "@babel/traverse": 8.0.0 - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/template": 7.29.7 - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-computed-properties@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.25.7)': + "@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + "@babel/plugin-transform-destructuring@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-dotall-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-duplicate-keys@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.25.7)': + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-dynamic-import@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-explicit-resource-management@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-destructuring": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-exponentiation-operator@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-export-namespace-from@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-for-of@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-function-name@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-compilation-targets": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-json-strings@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-literals@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-logical-assignment-operators@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-member-expression-literals@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-modules-amd@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-module-transforms": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.25.7)': + "@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-module-transforms": 7.29.7(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': + "@babel/plugin-transform-modules-commonjs@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-module-transforms": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-modules-systemjs@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-module-transforms": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-validator-identifier": 8.0.0 + + "@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.25.7)': + "@babel/plugin-transform-modules-umd@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-module-transforms": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-named-capturing-groups-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-new-target@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-nullish-coalescing-operator@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-object-assign@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-numeric-separator@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-object-assign@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.25.7) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.25.7) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.0) + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-object-rest-spread@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.25.7) - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-compilation-targets": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-destructuring": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-parameters": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-object-super@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-replace-supers": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-optional-catch-binding@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.25.7)': + "@babel/plugin-transform-optional-chaining@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + "@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-parameters@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-private-methods@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-private-property-in-object@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-property-literals@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + "@babel/plugin-transform-react-constant-elements@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': + "@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.25.7) - '@babel/types': 7.29.0 + "@babel/core": 7.29.0 + "@babel/plugin-transform-react-jsx": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.25.7)': + "@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-transform-regenerator@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-regexp-modifiers@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.7)': + "@babel/plugin-transform-reserved-words@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.25.7) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.25.7) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)': + "@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) @@ -44662,301 +50733,226 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-runtime@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-shorthand-properties@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-spread@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 + + "@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-sticky-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-template-literals@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-typeof-symbol@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.25.7) + "@babel/core": 7.29.0 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-typescript@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@8.0.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.29.0)': + "@babel/plugin-transform-typescript@7.5.5(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-typescript@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-annotate-as-pure": 8.0.0 + "@babel/helper-create-class-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-skip-transparent-expression-wrappers": 8.0.0 + "@babel/plugin-syntax-typescript": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-unicode-escapes@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.25.7)': + "@babel/plugin-transform-unicode-property-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + "@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.25.7)': + "@babel/plugin-transform-unicode-regex@8.0.0(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) - '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': + "@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.0) + "@babel/helper-plugin-utils": 7.29.7 - '@babel/polyfill@7.12.1': + "@babel/plugin-transform-unicode-sets-regex@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-create-regexp-features-plugin": 8.0.0(@babel/core@8.0.1) + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + + "@babel/polyfill@7.12.1": dependencies: core-js: 2.6.12 regenerator-runtime: 0.13.11 - '@babel/preset-env@7.25.7(@babel/core@7.25.7)': - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.25.7 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.25.7) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.25.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.7) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.25.7) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.25.7) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.25.7) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.25.7) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.25.7) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.25.7) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.25.7) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.25.7) - '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.25.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.7) - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.25.7) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.25.7) - core-js-compat: 3.49.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-env@7.29.2(@babel/core@7.29.0)': - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + "@babel/preset-env@7.29.7(@babel/core@7.29.0)": + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-bugfix-safari-class-field-initializer-scope": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + "@babel/plugin-syntax-import-assertions": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-syntax-import-attributes": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-syntax-unicode-sets-regex": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-transform-arrow-functions": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-async-generator-functions": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-async-to-generator": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-block-scoped-functions": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-block-scoping": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-class-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-class-static-block": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-classes": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-computed-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-dotall-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-duplicate-keys": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-dynamic-import": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-explicit-resource-management": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-exponentiation-operator": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-export-namespace-from": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-for-of": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-function-name": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-json-strings": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-literals": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-logical-assignment-operators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-member-expression-literals": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-amd": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-systemjs": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-umd": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-named-capturing-groups-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-new-target": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-nullish-coalescing-operator": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-numeric-separator": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-object-rest-spread": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-object-super": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-optional-catch-binding": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-optional-chaining": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-private-methods": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-private-property-in-object": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-property-literals": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-regenerator": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-regexp-modifiers": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-reserved-words": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-shorthand-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-spread": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-sticky-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-template-literals": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typeof-symbol": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-unicode-escapes": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-unicode-property-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-unicode-regex": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-unicode-sets-regex": 7.29.7(@babel/core@7.29.0) + "@babel/preset-modules": 0.1.6-no-external-plugins(@babel/core@7.29.0) babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0) babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) @@ -44965,724 +50961,735 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-env@7.29.5(@babel/core@7.29.0)': - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.3(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + "@babel/preset-env@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/compat-data": 8.0.0 + "@babel/core": 8.0.1 + "@babel/helper-compilation-targets": 8.0.0 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-validator-option": 8.0.0 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-bugfix-safari-class-field-initializer-scope": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-arrow-functions": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-async-generator-functions": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-async-to-generator": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-block-scoped-functions": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-block-scoping": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-class-properties": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-class-static-block": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-classes": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-computed-properties": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-destructuring": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-dotall-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-duplicate-keys": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-dynamic-import": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-explicit-resource-management": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-exponentiation-operator": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-export-namespace-from": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-for-of": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-function-name": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-json-strings": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-literals": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-logical-assignment-operators": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-member-expression-literals": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-modules-amd": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-modules-commonjs": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-modules-systemjs": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-modules-umd": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-named-capturing-groups-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-new-target": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-nullish-coalescing-operator": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-numeric-separator": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-object-rest-spread": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-object-super": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-optional-catch-binding": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-optional-chaining": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-parameters": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-private-methods": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-private-property-in-object": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-property-literals": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-regenerator": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-regexp-modifiers": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-reserved-words": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-shorthand-properties": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-spread": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-sticky-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-template-literals": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-typeof-symbol": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-unicode-escapes": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-unicode-property-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-unicode-regex": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-unicode-sets-regex": 8.0.0(@babel/core@8.0.1) + "@babel/preset-modules": 0.1.6-no-external-plugins(@babel/core@8.0.1) + babel-plugin-polyfill-corejs3: 1.0.0-rc.2(@babel/core@8.0.1) core-js-compat: 3.49.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + semver: 7.8.4 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.7)': + "@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/types": 7.29.7 esutils: 2.0.3 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + "@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/types": 7.29.7 esutils: 2.0.3 - '@babel/preset-react@7.28.5(@babel/core@7.29.0)': + "@babel/preset-react@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-transform-react-display-name": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-react-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-react-jsx-development": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-react-pure-annotations": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.25.7(@babel/core@7.25.7)': + "@babel/preset-typescript@7.29.7(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.25.7) + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + "@babel/preset-typescript@7.29.7(@babel/core@8.0.1)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@8.0.1) + "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@8.0.1) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@8.0.1) transitivePeerDependencies: - supports-color - '@babel/runtime@7.12.18': + "@babel/preset-typescript@8.0.0(@babel/core@8.0.1)": + dependencies: + "@babel/core": 8.0.1 + "@babel/helper-plugin-utils": 8.0.0(@babel/core@8.0.1) + "@babel/helper-validator-option": 8.0.0 + "@babel/plugin-transform-modules-commonjs": 8.0.0(@babel/core@8.0.1) + "@babel/plugin-transform-typescript": 8.0.0(@babel/core@8.0.1) + + "@babel/runtime@7.12.18": dependencies: regenerator-runtime: 0.13.11 - '@babel/runtime@7.29.2': {} + "@babel/runtime@7.29.7": {} + + "@babel/runtime@8.0.0": {} - '@babel/template@7.28.6': + "@babel/template@7.29.7": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + "@babel/code-frame": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 - '@babel/traverse@7.29.0': + "@babel/template@8.0.0": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3(supports-color@5.5.0) + "@babel/code-frame": 8.0.0 + "@babel/parser": 8.0.0 + "@babel/types": 8.0.0 + + "@babel/traverse@7.29.7": + dependencies: + "@babel/code-frame": 7.29.7 + "@babel/generator": 7.29.7 + "@babel/helper-globals": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/template": 7.29.7 + "@babel/types": 7.29.7 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': + "@babel/traverse@8.0.0": dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + "@babel/code-frame": 8.0.0 + "@babel/generator": 8.0.0 + "@babel/helper-globals": 8.0.0 + "@babel/parser": 8.0.0 + "@babel/template": 8.0.0 + "@babel/types": 8.0.0 + obug: 2.1.3 - '@babel/types@8.0.0-rc.5': + "@babel/types@7.29.7": dependencies: - '@babel/helper-string-parser': 8.0.0-rc.5 - '@babel/helper-validator-identifier': 8.0.0-rc.5 + "@babel/helper-string-parser": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 - '@base-ui/react@1.5.0(@date-fns/tz@1.5.0)(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@babel/types@8.0.0": dependencies: - '@babel/runtime': 7.29.2 - '@base-ui/utils': 0.2.9(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@floating-ui/utils': 0.2.11 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - use-sync-external-store: 1.6.0(react@19.2.6) + "@babel/helper-string-parser": 8.0.0 + "@babel/helper-validator-identifier": 8.0.0 + + "@base-ui/react@1.5.0(@date-fns/tz@1.5.0)(@types/react@18.3.31)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": + dependencies: + "@babel/runtime": 7.29.7 + "@base-ui/utils": 0.2.9(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@floating-ui/react-dom": 2.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@floating-ui/utils": 0.2.11 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + use-sync-external-store: 1.6.0(react@19.2.7) optionalDependencies: - '@date-fns/tz': 1.5.0 - '@types/react': 18.3.29 - date-fns: 4.3.0 + "@date-fns/tz": 1.5.0 + "@types/react": 18.3.31 + date-fns: 4.4.0 - '@base-ui/utils@0.2.9(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@base-ui/utils@0.2.9(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@babel/runtime': 7.29.2 - '@floating-ui/utils': 0.2.11 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@babel/runtime": 7.29.7 + "@floating-ui/utils": 0.2.11 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) reselect: 5.2.0 - use-sync-external-store: 1.6.0(react@19.2.6) + use-sync-external-store: 1.6.0(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@bcoe/v8-coverage@0.2.3': {} + "@bcoe/v8-coverage@0.2.3": {} - '@bcoe/v8-coverage@1.0.2': {} + "@bcoe/v8-coverage@1.0.2": {} - '@bomb.sh/tab@0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0)': + "@bomb.sh/tab@0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0)": optionalDependencies: cac: 6.7.14 citty: 0.2.2 commander: 13.1.0 - '@bramus/specificity@2.4.2': + "@bramus/specificity@2.4.2": dependencies: css-tree: 3.2.1 - '@builder.io/qwik@1.19.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': - dependencies: - csstype: 3.2.3 - launch-editor: 2.13.2 - rollup: 4.60.4 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - - '@builder.io/qwik@1.19.2(vite@8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@builder.io/qwik@1.20.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: csstype: 3.2.3 - launch-editor: 2.13.2 - rollup: 4.60.4 - vite: 8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + launch-editor: 2.14.1 + rollup: 4.62.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - '@cacheable/memory@2.0.9': + "@cacheable/memory@2.0.9": dependencies: - '@cacheable/utils': 2.4.1 - '@keyv/bigmap': 1.3.1(keyv@5.6.0) + "@cacheable/utils": 2.4.1 + "@keyv/bigmap": 1.3.1(keyv@5.6.0) hookified: 1.15.1 keyv: 5.6.0 - '@cacheable/utils@2.4.1': + "@cacheable/utils@2.4.1": dependencies: hashery: 1.5.1 keyv: 5.6.0 - '@capacitor/app@8.1.0(@capacitor/core@8.3.4)': + "@capacitor/app@8.1.0(@capacitor/core@8.4.0)": dependencies: - '@capacitor/core': 8.3.4 + "@capacitor/core": 8.4.0 - '@capacitor/cli@8.3.4': + "@capacitor/cli@8.4.0(supports-color@8.1.1)": dependencies: - '@ionic/cli-framework-output': 2.2.8 - '@ionic/utils-subprocess': 3.0.1 - '@ionic/utils-terminal': 2.3.5 + "@ionic/cli-framework-output": 2.2.8(supports-color@8.1.1) + "@ionic/utils-subprocess": 3.0.1(supports-color@8.1.1) + "@ionic/utils-terminal": 2.3.5 commander: 12.1.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) env-paths: 2.2.1 fs-extra: 11.3.5 kleur: 4.1.5 - native-run: 2.0.3 + native-run: 2.0.3(supports-color@8.1.1) open: 8.4.2 plist: 3.1.1 prompts: 2.4.2 rimraf: 6.1.3 - semver: 7.8.1 - tar: 7.5.15 + semver: 7.8.4 + tar: 7.5.16 tslib: 2.8.1 xml2js: 0.6.2 transitivePeerDependencies: - supports-color - '@capacitor/core@8.3.4': + "@capacitor/core@8.4.0": dependencies: tslib: 2.8.1 - '@capacitor/haptics@8.0.2(@capacitor/core@8.3.4)': + "@capacitor/haptics@8.0.2(@capacitor/core@8.4.0)": dependencies: - '@capacitor/core': 8.3.4 + "@capacitor/core": 8.4.0 - '@capacitor/keyboard@8.0.3(@capacitor/core@8.3.4)': + "@capacitor/keyboard@8.0.5(@capacitor/core@8.4.0)": dependencies: - '@capacitor/core': 8.3.4 + "@capacitor/core": 8.4.0 - '@capacitor/status-bar@8.0.2(@capacitor/core@8.3.4)': + "@capacitor/status-bar@8.0.2(@capacitor/core@8.4.0)": dependencies: - '@capacitor/core': 8.3.4 + "@capacitor/core": 8.4.0 - '@capsizecss/unpack@4.0.0': + "@capsizecss/unpack@4.0.1": dependencies: fontkitten: 1.0.3 - '@clack/core@1.3.1': + "@clack/core@1.4.1": dependencies: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@clack/prompts@1.4.0': + "@clack/prompts@1.5.1": dependencies: - '@clack/core': 1.3.1 + "@clack/core": 1.4.1 fast-string-width: 3.0.2 fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@cloudflare/kv-asset-handler@0.4.2': {} + "@cloudflare/kv-asset-handler@0.4.2": {} - '@cnakazawa/watch@1.0.4': + "@cnakazawa/watch@1.0.4": dependencies: exec-sh: 0.3.6 minimist: 1.2.8 - '@colordx/core@5.4.3': {} + "@colordx/core@5.4.3": {} - '@colors/colors@1.5.0': {} + "@colors/colors@1.5.0": {} - '@colors/colors@1.6.0': {} + "@colors/colors@1.6.0": {} - '@commitlint/cli@21.0.2(@types/node@25.9.1)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': + "@commitlint/cli@21.0.2(@types/node@25.9.3)(conventional-commits-parser@6.4.0)(typescript@6.0.3)": dependencies: - '@commitlint/format': 21.0.1 - '@commitlint/lint': 21.0.2 - '@commitlint/load': 21.0.2(@types/node@25.9.1)(typescript@6.0.3) - '@commitlint/read': 21.0.2(conventional-commits-parser@6.4.0) - '@commitlint/types': 21.0.1 - tinyexec: 1.2.2 + "@commitlint/format": 21.0.1 + "@commitlint/lint": 21.0.2 + "@commitlint/load": 21.0.2(@types/node@25.9.3)(typescript@6.0.3) + "@commitlint/read": 21.0.2(conventional-commits-parser@6.4.0) + "@commitlint/types": 21.0.1 + tinyexec: 1.2.4 yargs: 18.0.0 transitivePeerDependencies: - - '@types/node' + - "@types/node" - conventional-commits-filter - conventional-commits-parser - typescript - '@commitlint/config-conventional@21.0.2': + "@commitlint/config-conventional@21.0.2": dependencies: - '@commitlint/types': 21.0.1 + "@commitlint/types": 21.0.1 conventional-changelog-conventionalcommits: 9.3.1 - '@commitlint/config-validator@21.0.1': + "@commitlint/config-validator@21.0.1": dependencies: - '@commitlint/types': 21.0.1 + "@commitlint/types": 21.0.1 ajv: 8.20.0 - '@commitlint/ensure@21.0.1': + "@commitlint/ensure@21.0.1": dependencies: - '@commitlint/types': 21.0.1 - es-toolkit: 1.46.1 + "@commitlint/types": 21.0.1 + es-toolkit: 1.47.1 - '@commitlint/execute-rule@21.0.1': {} + "@commitlint/execute-rule@21.0.1": {} - '@commitlint/format@21.0.1': + "@commitlint/format@21.0.1": dependencies: - '@commitlint/types': 21.0.1 + "@commitlint/types": 21.0.1 picocolors: 1.1.1 - '@commitlint/is-ignored@21.0.2': + "@commitlint/is-ignored@21.0.2": dependencies: - '@commitlint/types': 21.0.1 - semver: 7.8.1 + "@commitlint/types": 21.0.1 + semver: 7.8.4 - '@commitlint/lint@21.0.2': + "@commitlint/lint@21.0.2": dependencies: - '@commitlint/is-ignored': 21.0.2 - '@commitlint/parse': 21.0.2 - '@commitlint/rules': 21.0.2 - '@commitlint/types': 21.0.1 + "@commitlint/is-ignored": 21.0.2 + "@commitlint/parse": 21.0.2 + "@commitlint/rules": 21.0.2 + "@commitlint/types": 21.0.1 - '@commitlint/load@21.0.2(@types/node@25.9.1)(typescript@6.0.3)': + "@commitlint/load@21.0.2(@types/node@25.9.3)(typescript@6.0.3)": dependencies: - '@commitlint/config-validator': 21.0.1 - '@commitlint/execute-rule': 21.0.1 - '@commitlint/resolve-extends': 21.0.1 - '@commitlint/types': 21.0.1 - cosmiconfig: 9.0.1(typescript@6.0.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@25.9.1)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3) - es-toolkit: 1.46.1 + "@commitlint/config-validator": 21.0.1 + "@commitlint/execute-rule": 21.0.1 + "@commitlint/resolve-extends": 21.0.1 + "@commitlint/types": 21.0.1 + cosmiconfig: 9.0.2(typescript@6.0.3) + cosmiconfig-typescript-loader: 6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) + es-toolkit: 1.47.1 is-plain-obj: 4.1.0 picocolors: 1.1.1 transitivePeerDependencies: - - '@types/node' + - "@types/node" - typescript - '@commitlint/message@21.0.2': {} + "@commitlint/message@21.0.2": {} - '@commitlint/parse@21.0.2': + "@commitlint/parse@21.0.2": dependencies: - '@commitlint/types': 21.0.1 + "@commitlint/types": 21.0.1 conventional-changelog-angular: 8.3.1 conventional-commits-parser: 6.4.0 - '@commitlint/read@21.0.2(conventional-commits-parser@6.4.0)': + "@commitlint/read@21.0.2(conventional-commits-parser@6.4.0)": dependencies: - '@commitlint/top-level': 21.0.2 - '@commitlint/types': 21.0.1 + "@commitlint/top-level": 21.0.2 + "@commitlint/types": 21.0.1 git-raw-commits: 5.0.1(conventional-commits-parser@6.4.0) - tinyexec: 1.2.2 + tinyexec: 1.2.4 transitivePeerDependencies: - conventional-commits-filter - conventional-commits-parser - '@commitlint/resolve-extends@21.0.1': + "@commitlint/resolve-extends@21.0.1": dependencies: - '@commitlint/config-validator': 21.0.1 - '@commitlint/types': 21.0.1 - es-toolkit: 1.46.1 + "@commitlint/config-validator": 21.0.1 + "@commitlint/types": 21.0.1 + es-toolkit: 1.47.1 global-directory: 5.0.0 resolve-from: 5.0.0 - '@commitlint/rules@21.0.2': + "@commitlint/rules@21.0.2": dependencies: - '@commitlint/ensure': 21.0.1 - '@commitlint/message': 21.0.2 - '@commitlint/to-lines': 21.0.1 - '@commitlint/types': 21.0.1 + "@commitlint/ensure": 21.0.1 + "@commitlint/message": 21.0.2 + "@commitlint/to-lines": 21.0.1 + "@commitlint/types": 21.0.1 - '@commitlint/to-lines@21.0.1': {} + "@commitlint/to-lines@21.0.1": {} - '@commitlint/top-level@21.0.2': + "@commitlint/top-level@21.0.2": dependencies: escalade: 3.2.0 - '@commitlint/types@21.0.1': + "@commitlint/types@21.0.1": dependencies: conventional-commits-parser: 6.4.0 picocolors: 1.1.1 - '@conventional-changelog/git-client@2.7.0(conventional-commits-parser@6.4.0)': + "@conventional-changelog/git-client@2.7.0(conventional-commits-parser@6.4.0)": dependencies: - '@simple-libs/child-process-utils': 1.0.2 - '@simple-libs/stream-utils': 1.2.0 - semver: 7.8.1 + "@simple-libs/child-process-utils": 1.0.2 + "@simple-libs/stream-utils": 1.2.0 + semver: 7.8.4 optionalDependencies: conventional-commits-parser: 6.4.0 - '@cspotcode/source-map-support@0.8.1': + "@cspotcode/source-map-support@0.8.1": dependencies: - '@jridgewell/trace-mapping': 0.3.9 + "@jridgewell/trace-mapping": 0.3.9 - '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + "@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 - '@csstools/color-helpers@4.2.1': {} + "@csstools/color-helpers@4.2.1": {} - '@csstools/color-helpers@5.1.0': {} + "@csstools/color-helpers@5.1.0": {} - '@csstools/color-helpers@6.0.2': {} + "@csstools/color-helpers@6.0.2": {} - '@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + "@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 - '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + "@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)": dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 - '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + "@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)": dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 + "@csstools/css-parser-algorithms": 4.0.0(@csstools/css-tokenizer@4.0.0) + "@csstools/css-tokenizer": 4.0.0 - '@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + "@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)": dependencies: - '@csstools/color-helpers': 4.2.1 - '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/color-helpers": 4.2.1 + "@csstools/css-calc": 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 - '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + "@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)": dependencies: - '@csstools/color-helpers': 5.1.0 - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + "@csstools/color-helpers": 5.1.0 + "@csstools/css-calc": 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 - '@csstools/css-color-parser@4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + "@csstools/css-color-parser@4.1.7(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)": dependencies: - '@csstools/color-helpers': 6.0.2 - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 + "@csstools/color-helpers": 6.0.2 + "@csstools/css-calc": 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + "@csstools/css-parser-algorithms": 4.0.0(@csstools/css-tokenizer@4.0.0) + "@csstools/css-tokenizer": 4.0.0 - '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': + "@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)": dependencies: - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-tokenizer": 2.4.1 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + "@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)": dependencies: - '@csstools/css-tokenizer': 3.0.4 + "@csstools/css-tokenizer": 3.0.4 - '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + "@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)": dependencies: - '@csstools/css-tokenizer': 4.0.0 + "@csstools/css-tokenizer": 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.4(css-tree@3.2.1)': + "@csstools/css-syntax-patches-for-csstree@1.1.5(css-tree@3.2.1)": optionalDependencies: css-tree: 3.2.1 - '@csstools/css-tokenizer@2.4.1': {} + "@csstools/css-tokenizer@2.4.1": {} - '@csstools/css-tokenizer@3.0.4': {} + "@csstools/css-tokenizer@3.0.4": {} - '@csstools/css-tokenizer@4.0.0': {} + "@csstools/css-tokenizer@4.0.0": {} - '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + "@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 - '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + "@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)": dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 - '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + "@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)": dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 - '@csstools/postcss-cascade-layers@4.0.6(postcss@8.5.15)': + "@csstools/postcss-cascade-layers@4.0.6(postcss@8.5.15)": dependencies: - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) + "@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.1.4) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 - '@csstools/postcss-color-function@3.0.19(postcss@8.5.15)': + "@csstools/postcss-color-function@3.0.19(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-color-mix-function@2.0.19(postcss@8.5.15)': + "@csstools/postcss-color-mix-function@2.0.19(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-content-alt-text@1.0.0(postcss@8.5.15)': + "@csstools/postcss-content-alt-text@1.0.0(postcss@8.5.15)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-exponential-functions@1.0.9(postcss@8.5.15)': + "@csstools/postcss-exponential-functions@1.0.9(postcss@8.5.15)": dependencies: - '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-calc": 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 postcss: 8.5.15 - '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.5.15)': + "@csstools/postcss-font-format-keywords@3.0.2(postcss@8.5.15)": dependencies: - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@1.0.11(postcss@8.5.15)': + "@csstools/postcss-gamut-mapping@1.0.11(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 postcss: 8.5.15 - '@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.5.15)': + "@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-hwb-function@3.0.18(postcss@8.5.15)': + "@csstools/postcss-hwb-function@3.0.18(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-ic-unit@3.0.7(postcss@8.5.15)': + "@csstools/postcss-ic-unit@3.0.7(postcss@8.5.15)": dependencies: - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@1.0.1(postcss@8.5.15)': + "@csstools/postcss-initial@1.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.5.15)': + "@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.5.15)": dependencies: - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) + "@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.1.4) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 - '@csstools/postcss-light-dark-function@1.0.8(postcss@8.5.15)': + "@csstools/postcss-light-dark-function@1.0.8(postcss@8.5.15)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.5.15)': + "@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@csstools/postcss-logical-overflow@1.0.1(postcss@8.5.15)': + "@csstools/postcss-logical-overflow@1.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.5.15)': + "@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@csstools/postcss-logical-resize@2.0.1(postcss@8.5.15)': + "@csstools/postcss-logical-resize@2.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.5.15)': + "@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.5.15)": dependencies: - '@csstools/css-tokenizer': 2.4.1 - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-media-minmax@1.1.8(postcss@8.5.15)': + "@csstools/postcss-media-minmax@1.1.8(postcss@8.5.15)": dependencies: - '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-calc": 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/media-query-list-parser": 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.5.15 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.5.15)': + "@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.5.15)": dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/media-query-list-parser": 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.5.15 - '@csstools/postcss-nested-calc@3.0.2(postcss@8.5.15)': + "@csstools/postcss-nested-calc@3.0.2(postcss@8.5.15)": dependencies: - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@3.0.2(postcss@8.5.15)': + "@csstools/postcss-normalize-display-values@3.0.2(postcss@8.5.15)": dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@3.0.19(postcss@8.5.15)': + "@csstools/postcss-oklab-function@3.0.19(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.5.15)': + "@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.5.15)": dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.5.15)': + "@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.5.15)": dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - '@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.5.15)': + "@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 - '@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.5.15)': + "@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.5.15)": dependencies: - '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-calc": 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 postcss: 8.5.15 - '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.5.15)': + "@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.5.15)": dependencies: - '@csstools/color-helpers': 4.2.1 + "@csstools/color-helpers": 4.2.1 postcss: 8.5.15 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.5.15)': + "@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.5.15)": dependencies: - '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/css-calc": 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 postcss: 8.5.15 - '@csstools/postcss-unset-value@3.0.1(postcss@8.5.15)': + "@csstools/postcss-unset-value@3.0.1(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.2)': + "@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.4)": dependencies: - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)': + "@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.4)": dependencies: - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': + "@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.4)": dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - '@csstools/utilities@1.0.0(postcss@8.5.15)': + "@csstools/utilities@1.0.0(postcss@8.5.15)": dependencies: postcss: 8.5.15 - '@dabh/diagnostics@2.0.8': + "@dabh/diagnostics@2.0.8": dependencies: - '@so-ric/colorspace': 1.1.6 + "@so-ric/colorspace": 1.1.6 enabled: 2.0.0 kuler: 2.0.0 - '@datalust/winston-seq@3.0.1(encoding@0.1.13)(winston@3.19.0)': + "@datalust/winston-seq@3.0.1(encoding@0.1.13)(winston@3.19.0)": dependencies: seq-logging: 3.0.0(encoding@0.1.13) winston: 3.19.0 @@ -45690,162 +51697,149 @@ snapshots: transitivePeerDependencies: - encoding - '@date-fns/tz@1.5.0': {} + "@date-fns/tz@1.5.0": {} - '@date-fns/utc@2.1.1': {} + "@date-fns/utc@2.1.1": {} - '@date-vir/duration@8.3.2': + "@date-vir/duration@8.5.0": dependencies: - '@augment-vir/assert': 31.70.1 - '@types/luxon': 3.7.1 + "@augment-vir/assert": 31.73.1 + "@types/luxon": 3.7.1 luxon: 3.7.2 - type-fest: 5.6.0 + type-fest: 5.7.0 - '@discoveryjs/json-ext@0.5.7': {} + "@discoveryjs/json-ext@0.5.7": {} - '@discoveryjs/json-ext@0.6.3': {} + "@discoveryjs/json-ext@0.6.3": {} - '@discoveryjs/json-ext@1.1.0': {} + "@discoveryjs/json-ext@1.1.0": {} - '@docsearch/css@3.8.2': {} + "@docsearch/css@3.8.2": {} - '@docsearch/js@3.8.2(@algolia/client-search@5.52.1)(@types/react@18.3.29)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + "@docsearch/js@3.8.2(@algolia/client-search@5.54.1)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.52.1)(@types/react@18.3.29)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + "@docsearch/react": 3.8.2(@algolia/client-search@5.54.1)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) preact: 10.29.2 transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' + - "@algolia/client-search" + - "@types/react" - react - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.52.1)(@types/react@18.3.29)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + "@docsearch/react@3.8.2(@algolia/client-search@5.54.1)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.52.1)(algoliasearch@5.52.1) - '@docsearch/css': 3.8.2 - algoliasearch: 5.52.1 + "@algolia/autocomplete-core": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1)(search-insights@2.17.3) + "@algolia/autocomplete-preset-algolia": 1.17.7(@algolia/client-search@5.54.1)(algoliasearch@5.54.1) + "@docsearch/css": 3.8.2 + algoliasearch: 5.54.1 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) search-insights: 2.17.3 transitivePeerDependencies: - - '@algolia/client-search' + - "@algolia/client-search" - '@dual-bundle/import-meta-resolve@4.2.1': {} + "@dual-bundle/import-meta-resolve@4.2.1": {} - '@dxup/nuxt@0.4.1(magicast@0.5.3)(typescript@6.0.3)': + "@dxup/nuxt@0.4.1(magicast@0.5.3)(typescript@6.0.3)": dependencies: - '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.4.6(magicast@0.5.3) + "@dxup/unimport": 0.1.2 + "@nuxt/kit": 4.4.8(magicast@0.5.3) chokidar: 5.0.0 pathe: 2.0.3 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - magicast - '@dxup/unimport@0.1.2': {} + "@dxup/unimport@0.1.2": {} + + "@electron-internal/extract-zip@1.0.3": {} - '@electron/asar@4.2.0': + "@electron/asar@4.2.0": dependencies: commander: 13.1.0 glob: 13.0.6 minimatch: 10.2.5 - '@electron/get@2.0.3': - dependencies: - debug: 4.4.3(supports-color@5.5.0) - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.1 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@electron/get@5.0.0': + "@electron/get@5.0.0(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) env-paths: 3.0.0 graceful-fs: 4.2.11 progress: 2.0.3 - semver: 7.8.1 + semver: 7.8.4 sumchecker: 3.0.1 optionalDependencies: - undici: 7.25.0 + undici: 7.28.0 transitivePeerDependencies: - supports-color - '@electron/notarize@3.1.1': + "@electron/notarize@3.1.1(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@electron/osx-sign@2.4.0': + "@electron/osx-sign@2.4.0(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) isbinaryfile: 4.0.10 plist: 3.1.1 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - '@electron/packager@20.0.0': + "@electron/packager@20.0.1(supports-color@8.1.1)": dependencies: - '@electron/asar': 4.2.0 - '@electron/get': 5.0.0 - '@electron/notarize': 3.1.1 - '@electron/osx-sign': 2.4.0 - '@electron/universal': 3.0.4 - '@electron/windows-sign': 2.0.3 - '@malept/cross-spawn-promise': 2.0.0 - debug: 4.4.3(supports-color@5.5.0) - extract-zip: 2.0.1 + "@electron-internal/extract-zip": 1.0.3 + "@electron/asar": 4.2.0 + "@electron/get": 5.0.0(supports-color@8.1.1) + "@electron/notarize": 3.1.1(supports-color@8.1.1) + "@electron/osx-sign": 2.4.0(supports-color@8.1.1) + "@electron/universal": 3.0.4 + "@electron/windows-sign": 2.0.3 + "@malept/cross-spawn-promise": 2.0.0 + debug: 4.4.3(supports-color@8.1.1) filenamify: 6.0.0 galactus: 2.0.2 graceful-fs: 4.2.11 junk: 4.0.1 - parse-author: 2.0.0 plist: 3.1.1 resedit: 2.0.3 - semver: 7.8.1 + semver: 7.8.4 yargs-parser: 22.0.0 transitivePeerDependencies: - supports-color - '@electron/universal@3.0.4': + "@electron/universal@3.0.4": dependencies: - '@electron/asar': 4.2.0 - debug: 4.4.3(supports-color@5.5.0) + "@electron/asar": 4.2.0 + debug: 4.4.3(supports-color@8.1.1) plist: 3.1.1 transitivePeerDependencies: - supports-color - '@electron/windows-sign@2.0.3': + "@electron/windows-sign@2.0.3": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) graceful-fs: 4.2.11 postject: 1.0.0-alpha.6 transitivePeerDependencies: - supports-color - '@ember-data/rfc395-data@0.0.4': {} + "@ember-data/rfc395-data@0.0.4": {} - '@ember-tooling/blueprint-blueprint@0.2.1': {} + "@ember-tooling/blueprint-blueprint@0.3.0": {} - '@ember-tooling/blueprint-model@0.5.0': + "@ember-tooling/blueprint-model@0.6.3": dependencies: - chalk: 4.1.2 - diff: 7.0.0 + chalk: 5.6.2 + diff: 8.0.4 isbinaryfile: 5.0.7 lodash: 4.18.1 promise.hash.helper: 1.0.8 @@ -45854,9 +51848,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember-tooling/classic-build-addon-blueprint@6.12.0': + "@ember-tooling/classic-build-addon-blueprint@7.0.0": dependencies: - '@ember-tooling/blueprint-model': 0.5.0 + "@ember-tooling/blueprint-model": 0.6.3 chalk: 5.6.2 ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 @@ -45868,192 +51862,208 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember-tooling/classic-build-app-blueprint@6.12.0': + "@ember-tooling/classic-build-app-blueprint@7.0.0": dependencies: - '@ember-tooling/blueprint-model': 0.5.0 + "@ember-tooling/blueprint-model": 0.6.3 chalk: 5.6.2 ember-cli-string-utils: 1.1.0 transitivePeerDependencies: - supports-color - '@ember/app-blueprint@6.12.3': + "@ember/app-blueprint@7.0.1": dependencies: chalk: 4.1.2 ejs: 3.1.10 ember-cli-string-utils: 1.1.0 lodash: 4.18.1 - sort-package-json: 3.6.1 + sort-package-json: 3.7.1 walk-sync: 3.0.0 - '@ember/edition-utils@1.2.0': {} + "@ember/edition-utils@1.2.0": {} - '@ember/optional-features@3.0.0(@types/node@25.9.1)': + "@ember/optional-features@3.0.0(@types/node@25.9.3)": dependencies: ember-cli-version-checker: 5.1.2 - inquirer: 13.4.3(@types/node@25.9.1) + inquirer: 13.4.3(@types/node@25.9.3) silent-error: 1.1.1 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 transitivePeerDependencies: - - '@types/node' + - "@types/node" - supports-color - '@ember/test-helpers@5.4.2(@babel/core@7.29.0)': + "@ember/test-helpers@5.4.3(@babel/core@7.29.0)": dependencies: - '@ember/test-waiters': 4.1.1(@babel/core@7.29.0) - '@embroider/addon-shim': 1.10.2 - '@embroider/macros': 1.20.2(@babel/core@7.29.0) - '@simple-dom/interface': 1.4.0 + "@ember/test-waiters": 4.1.2 + "@embroider/addon-shim": 1.10.3 + "@simple-dom/interface": 1.4.0 decorator-transforms: 2.3.2(@babel/core@7.29.0) dom-element-descriptors: 0.5.1 transitivePeerDependencies: - - '@babel/core' - - '@glint/template' + - "@babel/core" - supports-color - '@ember/test-waiters@4.1.1(@babel/core@7.29.0)': + "@ember/test-waiters@4.1.2": dependencies: - '@embroider/addon-shim': 1.10.2 - '@embroider/macros': 1.20.2(@babel/core@7.29.0) + "@embroider/addon-shim": 1.10.3 transitivePeerDependencies: - - '@babel/core' - - '@glint/template' - supports-color - '@embroider/addon-shim@1.10.2': + "@embroider/addon-shim@1.10.3": dependencies: - '@embroider/shared-internals': 3.0.2 + "@embroider/shared-internals": 3.1.1 broccoli-funnel: 3.0.8 common-ancestor-path: 1.0.1 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - '@embroider/macros@1.20.2(@babel/core@7.29.0)': + "@embroider/macros@1.20.4(@babel/core@7.29.0)": dependencies: - '@embroider/shared-internals': 3.0.2 + "@embroider/shared-internals": 3.1.1 assert-never: 1.4.0 babel-import-util: 3.0.1 ember-cli-babel: 8.3.1(@babel/core@7.29.0) find-up: 5.0.0 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@embroider/reverse-exports@0.2.0': + "@embroider/reverse-exports@0.2.0": dependencies: mem: 8.1.1 resolve.exports: 2.0.3 - '@embroider/shared-internals@2.9.2': + "@embroider/shared-internals@2.9.2(supports-color@8.1.1)": dependencies: babel-import-util: 2.1.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 is-subdir: 1.2.0 js-string-escape: 1.0.1 lodash: 4.18.1 minimatch: 3.1.5 - pkg-entry-points: 1.1.1 + pkg-entry-points: 1.1.2 resolve-package-path: 4.0.3 - semver: 7.8.1 + semver: 7.8.4 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color - '@embroider/shared-internals@3.0.2': + "@embroider/shared-internals@3.1.1": dependencies: babel-import-util: 3.0.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 is-subdir: 1.2.0 js-string-escape: 1.0.1 lodash: 4.18.1 minimatch: 3.1.5 - pkg-entry-points: 1.1.1 + pkg-entry-points: 1.1.2 resolve-package-path: 4.0.3 resolve.exports: 2.0.3 - semver: 7.8.1 + semver: 7.8.4 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color - '@embroider/test-setup@4.0.0': + "@embroider/test-setup@4.0.0": dependencies: lodash: 4.18.1 resolve: 1.22.12 - '@emmetio/abbreviation@2.3.3': + "@emmetio/abbreviation@2.3.3": dependencies: - '@emmetio/scanner': 1.0.4 + "@emmetio/scanner": 1.0.4 - '@emmetio/css-abbreviation@2.1.8': + "@emmetio/css-abbreviation@2.1.8": dependencies: - '@emmetio/scanner': 1.0.4 + "@emmetio/scanner": 1.0.4 - '@emmetio/css-parser@0.4.1': + "@emmetio/css-parser@0.4.1": dependencies: - '@emmetio/stream-reader': 2.2.0 - '@emmetio/stream-reader-utils': 0.1.0 + "@emmetio/stream-reader": 2.2.0 + "@emmetio/stream-reader-utils": 0.1.0 - '@emmetio/html-matcher@1.3.0': + "@emmetio/html-matcher@1.3.0": dependencies: - '@emmetio/scanner': 1.0.4 + "@emmetio/scanner": 1.0.4 + + "@emmetio/scanner@1.0.4": {} - '@emmetio/scanner@1.0.4': {} + "@emmetio/stream-reader-utils@0.1.0": {} + + "@emmetio/stream-reader@2.2.0": {} + + "@emnapi/core@1.10.0": + dependencies: + "@emnapi/wasi-threads": 1.2.1 + tslib: 2.8.1 + optional: true - '@emmetio/stream-reader-utils@0.1.0': {} + "@emnapi/core@1.11.0": + dependencies: + "@emnapi/wasi-threads": 1.2.2 + tslib: 2.8.1 - '@emmetio/stream-reader@2.2.0': {} + "@emnapi/core@1.4.5": + dependencies: + "@emnapi/wasi-threads": 1.0.4 + tslib: 2.8.1 - '@emnapi/core@1.10.0': + "@emnapi/core@1.9.2": dependencies: - '@emnapi/wasi-threads': 1.2.1 + "@emnapi/wasi-threads": 1.2.1 tslib: 2.8.1 + optional: true - '@emnapi/core@1.4.5': + "@emnapi/runtime@1.10.0": dependencies: - '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 + optional: true - '@emnapi/core@1.9.2': + "@emnapi/runtime@1.11.0": dependencies: - '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.10.0': + "@emnapi/runtime@1.11.1": dependencies: tslib: 2.8.1 - '@emnapi/runtime@1.4.5': + "@emnapi/runtime@1.4.5": dependencies: tslib: 2.8.1 - '@emnapi/runtime@1.9.2': + "@emnapi/runtime@1.9.2": dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.4': + "@emnapi/wasi-threads@1.0.4": + dependencies: + tslib: 2.8.1 + + "@emnapi/wasi-threads@1.2.1": dependencies: tslib: 2.8.1 + optional: true - '@emnapi/wasi-threads@1.2.1': + "@emnapi/wasi-threads@1.2.2": dependencies: tslib: 2.8.1 - '@emotion/babel-plugin@11.13.5': + "@emotion/babel-plugin@11.13.5": dependencies: - '@babel/helper-module-imports': 7.28.6 - '@babel/runtime': 7.29.2 - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.3 + "@babel/helper-module-imports": 7.29.7 + "@babel/runtime": 7.29.7 + "@emotion/hash": 0.9.2 + "@emotion/memoize": 0.9.0 + "@emotion/serialize": 1.3.3 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 @@ -46063,610 +52073,609 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/cache@11.14.0': + "@emotion/cache@11.14.0": dependencies: - '@emotion/memoize': 0.9.0 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 + "@emotion/memoize": 0.9.0 + "@emotion/sheet": 1.4.0 + "@emotion/utils": 1.4.2 + "@emotion/weak-memoize": 0.4.0 stylis: 4.2.0 - '@emotion/css@11.13.5': + "@emotion/css@11.13.5": dependencies: - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 + "@emotion/babel-plugin": 11.13.5 + "@emotion/cache": 11.14.0 + "@emotion/serialize": 1.3.3 + "@emotion/sheet": 1.4.0 + "@emotion/utils": 1.4.2 transitivePeerDependencies: - supports-color - '@emotion/hash@0.9.2': {} + "@emotion/hash@0.9.2": {} - '@emotion/is-prop-valid@1.4.0': + "@emotion/is-prop-valid@1.4.0": dependencies: - '@emotion/memoize': 0.9.0 + "@emotion/memoize": 0.9.0 - '@emotion/memoize@0.9.0': {} + "@emotion/memoize@0.9.0": {} - '@emotion/react@11.14.0(@types/react@18.3.29)(react@19.2.6)': + "@emotion/react@11.14.0(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@babel/runtime': 7.29.2 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.6) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 + "@babel/runtime": 7.29.7 + "@emotion/babel-plugin": 11.13.5 + "@emotion/cache": 11.14.0 + "@emotion/serialize": 1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": 1.2.0(react@19.2.7) + "@emotion/utils": 1.4.2 + "@emotion/weak-memoize": 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 transitivePeerDependencies: - supports-color - '@emotion/serialize@1.3.3': + "@emotion/serialize@1.3.3": dependencies: - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.2 + "@emotion/hash": 0.9.2 + "@emotion/memoize": 0.9.0 + "@emotion/unitless": 0.10.0 + "@emotion/utils": 1.4.2 csstype: 3.2.3 - '@emotion/sheet@1.4.0': {} + "@emotion/sheet@1.4.0": {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.29)(react@19.2.6))(@types/react@18.3.29)(react@19.2.6)': + "@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@19.2.7))(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@babel/runtime': 7.29.2 - '@emotion/babel-plugin': 11.13.5 - '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@18.3.29)(react@19.2.6) - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.6) - '@emotion/utils': 1.4.2 - react: 19.2.6 + "@babel/runtime": 7.29.7 + "@emotion/babel-plugin": 11.13.5 + "@emotion/is-prop-valid": 1.4.0 + "@emotion/react": 11.14.0(@types/react@18.3.31)(react@19.2.7) + "@emotion/serialize": 1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": 1.2.0(react@19.2.7) + "@emotion/utils": 1.4.2 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 transitivePeerDependencies: - supports-color - '@emotion/unitless@0.10.0': {} + "@emotion/unitless@0.10.0": {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.6)': + "@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.7)": dependencies: - react: 19.2.6 + react: 19.2.7 - '@emotion/utils@1.4.2': {} + "@emotion/utils@1.4.2": {} - '@emotion/weak-memoize@0.4.0': {} + "@emotion/weak-memoize@0.4.0": {} - '@epic-web/invariant@1.0.0': {} + "@epic-web/invariant@1.0.0": {} - '@es-joy/jsdoccomment@0.50.2': + "@es-joy/jsdoccomment@0.50.2": dependencies: - '@types/estree': 1.0.9 - '@typescript-eslint/types': 8.60.0 + "@types/estree": 1.0.9 + "@typescript-eslint/types": 8.61.1 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 - '@es-joy/jsdoccomment@0.86.0': + "@es-joy/jsdoccomment@0.87.0": dependencies: - '@types/estree': 1.0.9 - '@typescript-eslint/types': 8.60.0 - comment-parser: 1.4.6 + "@types/estree": 1.0.9 + "@typescript-eslint/types": 8.61.1 + comment-parser: 1.4.7 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.2.0 - '@es-joy/resolve.exports@1.2.0': {} + "@es-joy/resolve.exports@1.2.0": {} - '@esbuild/aix-ppc64@0.21.5': + "@esbuild/aix-ppc64@0.21.5": optional: true - '@esbuild/aix-ppc64@0.25.12': + "@esbuild/aix-ppc64@0.25.12": optional: true - '@esbuild/aix-ppc64@0.27.3': + "@esbuild/aix-ppc64@0.27.7": optional: true - '@esbuild/aix-ppc64@0.27.7': + "@esbuild/aix-ppc64@0.28.0": optional: true - '@esbuild/aix-ppc64@0.28.0': + "@esbuild/aix-ppc64@0.28.1": optional: true - '@esbuild/android-arm64@0.21.5': + "@esbuild/android-arm64@0.21.5": optional: true - '@esbuild/android-arm64@0.25.12': + "@esbuild/android-arm64@0.25.12": optional: true - '@esbuild/android-arm64@0.27.3': + "@esbuild/android-arm64@0.27.7": optional: true - '@esbuild/android-arm64@0.27.7': + "@esbuild/android-arm64@0.28.0": optional: true - '@esbuild/android-arm64@0.28.0': + "@esbuild/android-arm64@0.28.1": optional: true - '@esbuild/android-arm@0.21.5': + "@esbuild/android-arm@0.21.5": optional: true - '@esbuild/android-arm@0.25.12': + "@esbuild/android-arm@0.25.12": optional: true - '@esbuild/android-arm@0.27.3': + "@esbuild/android-arm@0.27.7": optional: true - '@esbuild/android-arm@0.27.7': + "@esbuild/android-arm@0.28.0": optional: true - '@esbuild/android-arm@0.28.0': + "@esbuild/android-arm@0.28.1": optional: true - '@esbuild/android-x64@0.21.5': + "@esbuild/android-x64@0.21.5": optional: true - '@esbuild/android-x64@0.25.12': + "@esbuild/android-x64@0.25.12": optional: true - '@esbuild/android-x64@0.27.3': + "@esbuild/android-x64@0.27.7": optional: true - '@esbuild/android-x64@0.27.7': + "@esbuild/android-x64@0.28.0": optional: true - '@esbuild/android-x64@0.28.0': + "@esbuild/android-x64@0.28.1": optional: true - '@esbuild/darwin-arm64@0.21.5': + "@esbuild/darwin-arm64@0.21.5": optional: true - '@esbuild/darwin-arm64@0.25.12': + "@esbuild/darwin-arm64@0.25.12": optional: true - '@esbuild/darwin-arm64@0.27.3': + "@esbuild/darwin-arm64@0.27.7": optional: true - '@esbuild/darwin-arm64@0.27.7': + "@esbuild/darwin-arm64@0.28.0": optional: true - '@esbuild/darwin-arm64@0.28.0': + "@esbuild/darwin-arm64@0.28.1": optional: true - '@esbuild/darwin-x64@0.21.5': + "@esbuild/darwin-x64@0.21.5": optional: true - '@esbuild/darwin-x64@0.25.12': + "@esbuild/darwin-x64@0.25.12": optional: true - '@esbuild/darwin-x64@0.27.3': + "@esbuild/darwin-x64@0.27.7": optional: true - '@esbuild/darwin-x64@0.27.7': + "@esbuild/darwin-x64@0.28.0": optional: true - '@esbuild/darwin-x64@0.28.0': + "@esbuild/darwin-x64@0.28.1": optional: true - '@esbuild/freebsd-arm64@0.21.5': + "@esbuild/freebsd-arm64@0.21.5": optional: true - '@esbuild/freebsd-arm64@0.25.12': + "@esbuild/freebsd-arm64@0.25.12": optional: true - '@esbuild/freebsd-arm64@0.27.3': + "@esbuild/freebsd-arm64@0.27.7": optional: true - '@esbuild/freebsd-arm64@0.27.7': + "@esbuild/freebsd-arm64@0.28.0": optional: true - '@esbuild/freebsd-arm64@0.28.0': + "@esbuild/freebsd-arm64@0.28.1": optional: true - '@esbuild/freebsd-x64@0.21.5': + "@esbuild/freebsd-x64@0.21.5": optional: true - '@esbuild/freebsd-x64@0.25.12': + "@esbuild/freebsd-x64@0.25.12": optional: true - '@esbuild/freebsd-x64@0.27.3': + "@esbuild/freebsd-x64@0.27.7": optional: true - '@esbuild/freebsd-x64@0.27.7': + "@esbuild/freebsd-x64@0.28.0": optional: true - '@esbuild/freebsd-x64@0.28.0': + "@esbuild/freebsd-x64@0.28.1": optional: true - '@esbuild/linux-arm64@0.21.5': + "@esbuild/linux-arm64@0.21.5": optional: true - '@esbuild/linux-arm64@0.25.12': + "@esbuild/linux-arm64@0.25.12": optional: true - '@esbuild/linux-arm64@0.27.3': + "@esbuild/linux-arm64@0.27.7": optional: true - '@esbuild/linux-arm64@0.27.7': + "@esbuild/linux-arm64@0.28.0": optional: true - '@esbuild/linux-arm64@0.28.0': + "@esbuild/linux-arm64@0.28.1": optional: true - '@esbuild/linux-arm@0.21.5': + "@esbuild/linux-arm@0.21.5": optional: true - '@esbuild/linux-arm@0.25.12': + "@esbuild/linux-arm@0.25.12": optional: true - '@esbuild/linux-arm@0.27.3': + "@esbuild/linux-arm@0.27.7": optional: true - '@esbuild/linux-arm@0.27.7': + "@esbuild/linux-arm@0.28.0": optional: true - '@esbuild/linux-arm@0.28.0': + "@esbuild/linux-arm@0.28.1": optional: true - '@esbuild/linux-ia32@0.21.5': + "@esbuild/linux-ia32@0.21.5": optional: true - '@esbuild/linux-ia32@0.25.12': + "@esbuild/linux-ia32@0.25.12": optional: true - '@esbuild/linux-ia32@0.27.3': + "@esbuild/linux-ia32@0.27.7": optional: true - '@esbuild/linux-ia32@0.27.7': + "@esbuild/linux-ia32@0.28.0": optional: true - '@esbuild/linux-ia32@0.28.0': + "@esbuild/linux-ia32@0.28.1": optional: true - '@esbuild/linux-loong64@0.21.5': + "@esbuild/linux-loong64@0.21.5": optional: true - '@esbuild/linux-loong64@0.25.12': + "@esbuild/linux-loong64@0.25.12": optional: true - '@esbuild/linux-loong64@0.27.3': + "@esbuild/linux-loong64@0.27.7": optional: true - '@esbuild/linux-loong64@0.27.7': + "@esbuild/linux-loong64@0.28.0": optional: true - '@esbuild/linux-loong64@0.28.0': + "@esbuild/linux-loong64@0.28.1": optional: true - '@esbuild/linux-mips64el@0.21.5': + "@esbuild/linux-mips64el@0.21.5": optional: true - '@esbuild/linux-mips64el@0.25.12': + "@esbuild/linux-mips64el@0.25.12": optional: true - '@esbuild/linux-mips64el@0.27.3': + "@esbuild/linux-mips64el@0.27.7": optional: true - '@esbuild/linux-mips64el@0.27.7': + "@esbuild/linux-mips64el@0.28.0": optional: true - '@esbuild/linux-mips64el@0.28.0': + "@esbuild/linux-mips64el@0.28.1": optional: true - '@esbuild/linux-ppc64@0.21.5': + "@esbuild/linux-ppc64@0.21.5": optional: true - '@esbuild/linux-ppc64@0.25.12': + "@esbuild/linux-ppc64@0.25.12": optional: true - '@esbuild/linux-ppc64@0.27.3': + "@esbuild/linux-ppc64@0.27.7": optional: true - '@esbuild/linux-ppc64@0.27.7': + "@esbuild/linux-ppc64@0.28.0": optional: true - '@esbuild/linux-ppc64@0.28.0': + "@esbuild/linux-ppc64@0.28.1": optional: true - '@esbuild/linux-riscv64@0.21.5': + "@esbuild/linux-riscv64@0.21.5": optional: true - '@esbuild/linux-riscv64@0.25.12': + "@esbuild/linux-riscv64@0.25.12": optional: true - '@esbuild/linux-riscv64@0.27.3': + "@esbuild/linux-riscv64@0.27.7": optional: true - '@esbuild/linux-riscv64@0.27.7': + "@esbuild/linux-riscv64@0.28.0": optional: true - '@esbuild/linux-riscv64@0.28.0': + "@esbuild/linux-riscv64@0.28.1": optional: true - '@esbuild/linux-s390x@0.21.5': + "@esbuild/linux-s390x@0.21.5": optional: true - '@esbuild/linux-s390x@0.25.12': + "@esbuild/linux-s390x@0.25.12": optional: true - '@esbuild/linux-s390x@0.27.3': + "@esbuild/linux-s390x@0.27.7": optional: true - '@esbuild/linux-s390x@0.27.7': + "@esbuild/linux-s390x@0.28.0": optional: true - '@esbuild/linux-s390x@0.28.0': + "@esbuild/linux-s390x@0.28.1": optional: true - '@esbuild/linux-x64@0.21.5': + "@esbuild/linux-x64@0.21.5": optional: true - '@esbuild/linux-x64@0.25.12': + "@esbuild/linux-x64@0.25.12": optional: true - '@esbuild/linux-x64@0.27.3': + "@esbuild/linux-x64@0.27.7": optional: true - '@esbuild/linux-x64@0.27.7': + "@esbuild/linux-x64@0.28.0": optional: true - '@esbuild/linux-x64@0.28.0': + "@esbuild/linux-x64@0.28.1": optional: true - '@esbuild/netbsd-arm64@0.25.12': + "@esbuild/netbsd-arm64@0.25.12": optional: true - '@esbuild/netbsd-arm64@0.27.3': + "@esbuild/netbsd-arm64@0.27.7": optional: true - '@esbuild/netbsd-arm64@0.27.7': + "@esbuild/netbsd-arm64@0.28.0": optional: true - '@esbuild/netbsd-arm64@0.28.0': + "@esbuild/netbsd-arm64@0.28.1": optional: true - '@esbuild/netbsd-x64@0.21.5': + "@esbuild/netbsd-x64@0.21.5": optional: true - '@esbuild/netbsd-x64@0.25.12': + "@esbuild/netbsd-x64@0.25.12": optional: true - '@esbuild/netbsd-x64@0.27.3': + "@esbuild/netbsd-x64@0.27.7": optional: true - '@esbuild/netbsd-x64@0.27.7': + "@esbuild/netbsd-x64@0.28.0": optional: true - '@esbuild/netbsd-x64@0.28.0': + "@esbuild/netbsd-x64@0.28.1": optional: true - '@esbuild/openbsd-arm64@0.25.12': + "@esbuild/openbsd-arm64@0.25.12": optional: true - '@esbuild/openbsd-arm64@0.27.3': + "@esbuild/openbsd-arm64@0.27.7": optional: true - '@esbuild/openbsd-arm64@0.27.7': + "@esbuild/openbsd-arm64@0.28.0": optional: true - '@esbuild/openbsd-arm64@0.28.0': + "@esbuild/openbsd-arm64@0.28.1": optional: true - '@esbuild/openbsd-x64@0.21.5': + "@esbuild/openbsd-x64@0.21.5": optional: true - '@esbuild/openbsd-x64@0.25.12': + "@esbuild/openbsd-x64@0.25.12": optional: true - '@esbuild/openbsd-x64@0.27.3': + "@esbuild/openbsd-x64@0.27.7": optional: true - '@esbuild/openbsd-x64@0.27.7': + "@esbuild/openbsd-x64@0.28.0": optional: true - '@esbuild/openbsd-x64@0.28.0': + "@esbuild/openbsd-x64@0.28.1": optional: true - '@esbuild/openharmony-arm64@0.25.12': + "@esbuild/openharmony-arm64@0.25.12": optional: true - '@esbuild/openharmony-arm64@0.27.3': + "@esbuild/openharmony-arm64@0.27.7": optional: true - '@esbuild/openharmony-arm64@0.27.7': + "@esbuild/openharmony-arm64@0.28.0": optional: true - '@esbuild/openharmony-arm64@0.28.0': + "@esbuild/openharmony-arm64@0.28.1": optional: true - '@esbuild/sunos-x64@0.21.5': + "@esbuild/sunos-x64@0.21.5": optional: true - '@esbuild/sunos-x64@0.25.12': + "@esbuild/sunos-x64@0.25.12": optional: true - '@esbuild/sunos-x64@0.27.3': + "@esbuild/sunos-x64@0.27.7": optional: true - '@esbuild/sunos-x64@0.27.7': + "@esbuild/sunos-x64@0.28.0": optional: true - '@esbuild/sunos-x64@0.28.0': + "@esbuild/sunos-x64@0.28.1": optional: true - '@esbuild/win32-arm64@0.21.5': + "@esbuild/win32-arm64@0.21.5": optional: true - '@esbuild/win32-arm64@0.25.12': + "@esbuild/win32-arm64@0.25.12": optional: true - '@esbuild/win32-arm64@0.27.3': + "@esbuild/win32-arm64@0.27.7": optional: true - '@esbuild/win32-arm64@0.27.7': + "@esbuild/win32-arm64@0.28.0": optional: true - '@esbuild/win32-arm64@0.28.0': + "@esbuild/win32-arm64@0.28.1": optional: true - '@esbuild/win32-ia32@0.21.5': + "@esbuild/win32-ia32@0.21.5": optional: true - '@esbuild/win32-ia32@0.25.12': + "@esbuild/win32-ia32@0.25.12": optional: true - '@esbuild/win32-ia32@0.27.3': + "@esbuild/win32-ia32@0.27.7": optional: true - '@esbuild/win32-ia32@0.27.7': + "@esbuild/win32-ia32@0.28.0": optional: true - '@esbuild/win32-ia32@0.28.0': + "@esbuild/win32-ia32@0.28.1": optional: true - '@esbuild/win32-x64@0.21.5': + "@esbuild/win32-x64@0.21.5": optional: true - '@esbuild/win32-x64@0.25.12': + "@esbuild/win32-x64@0.25.12": optional: true - '@esbuild/win32-x64@0.27.3': + "@esbuild/win32-x64@0.27.7": optional: true - '@esbuild/win32-x64@0.27.7': + "@esbuild/win32-x64@0.28.0": optional: true - '@esbuild/win32-x64@0.28.0': + "@esbuild/win32-x64@0.28.1": optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@10.4.1(jiti@2.7.0))': + "@eslint-community/eslint-plugin-eslint-comments@4.7.2(eslint@10.5.0(jiti@2.7.0))": dependencies: escape-string-regexp: 4.0.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) ignore: 7.0.5 - '@eslint-community/eslint-utils@4.9.1(eslint@10.4.1(jiti@2.7.0))': + "@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))": + dependencies: + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + eslint-visitor-keys: 3.4.3 + + "@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0))": dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} + "@eslint-community/regexpp@4.12.2": {} - '@eslint/compat@2.1.0(eslint@10.4.1(jiti@2.7.0))': + "@eslint/compat@2.1.0(eslint@10.5.0(jiti@2.7.0))": dependencies: - '@eslint/core': 1.2.1 + "@eslint/core": 1.2.1 optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - '@eslint/config-array@0.23.5': + "@eslint/config-array@0.23.5(supports-color@8.1.1)": dependencies: - '@eslint/object-schema': 3.0.5 - debug: 4.4.3(supports-color@5.5.0) + "@eslint/object-schema": 3.0.5 + debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.6.0': + "@eslint/config-helpers@0.6.0": dependencies: - '@eslint/core': 1.2.1 + "@eslint/core": 1.2.1 - '@eslint/core@1.2.1': + "@eslint/core@1.2.1": dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 - '@eslint/js@10.0.1(eslint@10.4.1(jiti@2.7.0))': + "@eslint/js@10.0.1(eslint@10.5.0(jiti@2.7.0))": optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - '@eslint/object-schema@3.0.5': {} + "@eslint/js@9.39.4": {} - '@eslint/plugin-kit@0.7.2': + "@eslint/object-schema@3.0.5": {} + + "@eslint/plugin-kit@0.7.2": dependencies: - '@eslint/core': 1.2.1 + "@eslint/core": 1.2.1 levn: 0.4.1 - '@esm-bundle/chai@4.3.4-fix.0': + "@esm-bundle/chai@4.3.4-fix.0": dependencies: - '@types/chai': 4.3.20 + "@types/chai": 4.3.20 - '@exodus/bytes@1.15.1(@noble/hashes@2.2.0)': + "@exodus/bytes@1.15.1(@noble/hashes@2.2.0)": optionalDependencies: - '@noble/hashes': 2.2.0 - - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 + "@noble/hashes": 2.2.0 - '@floating-ui/dom@1.7.6': + "@floating-ui/core@1.7.5": dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 + "@floating-ui/utils": 0.2.11 - '@floating-ui/react-dom@2.0.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@floating-ui/dom@1.7.6": dependencies: - '@floating-ui/dom': 1.7.6 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@floating-ui/core": 1.7.5 + "@floating-ui/utils": 0.2.11 - '@floating-ui/react-dom@2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@floating-ui/react-dom@2.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@floating-ui/dom': 1.7.6 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@floating-ui/dom": 1.7.6 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - '@floating-ui/utils@0.2.11': {} + "@floating-ui/utils@0.2.11": {} - '@fontsource/fira-mono@5.2.7': {} + "@fontsource/fira-mono@5.2.7": {} - '@formatjs/ecma402-abstract@2.3.6': + "@formatjs/ecma402-abstract@2.3.6": dependencies: - '@formatjs/fast-memoize': 2.2.7 - '@formatjs/intl-localematcher': 0.6.2 + "@formatjs/fast-memoize": 2.2.7 + "@formatjs/intl-localematcher": 0.6.2 decimal.js: 10.6.0 tslib: 2.8.1 - '@formatjs/fast-memoize@2.2.7': + "@formatjs/fast-memoize@2.2.7": dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.11.4': + "@formatjs/icu-messageformat-parser@2.11.4": dependencies: - '@formatjs/ecma402-abstract': 2.3.6 - '@formatjs/icu-skeleton-parser': 1.8.16 + "@formatjs/ecma402-abstract": 2.3.6 + "@formatjs/icu-skeleton-parser": 1.8.16 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.16': + "@formatjs/icu-skeleton-parser@1.8.16": dependencies: - '@formatjs/ecma402-abstract': 2.3.6 + "@formatjs/ecma402-abstract": 2.3.6 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.6.2': + "@formatjs/intl-localematcher@0.6.2": dependencies: tslib: 2.8.1 - '@fortawesome/fontawesome-free@6.7.2': {} + "@fortawesome/fontawesome-free@7.2.0": {} - '@fortawesome/fontawesome-free@7.2.0': {} + "@gar/promise-retry@1.0.3": {} - '@gar/promise-retry@1.0.3': {} + "@gar/promisify@1.1.3": {} - '@gar/promisify@1.1.3': {} - - '@gerrit0/mini-shiki@3.23.0': + "@gerrit0/mini-shiki@3.23.0": dependencies: - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/engine-oniguruma": 3.23.0 + "@shikijs/langs": 3.23.0 + "@shikijs/themes": 3.23.0 + "@shikijs/types": 3.23.0 + "@shikijs/vscode-textmate": 10.0.2 - '@glimmer/component@1.1.2(@babel/core@7.29.0)': + "@glimmer/component@1.1.2(@babel/core@7.29.0)": dependencies: - '@glimmer/di': 0.1.11 - '@glimmer/env': 0.1.7 - '@glimmer/util': 0.44.0 + "@glimmer/di": 0.1.11 + "@glimmer/env": 0.1.7 + "@glimmer/util": 0.44.0 broccoli-file-creator: 2.1.1 broccoli-merge-trees: 3.0.2 ember-cli-babel: 7.26.11 @@ -46679,548 +52688,568 @@ snapshots: ember-cli-version-checker: 3.1.3 ember-compatibility-helpers: 1.2.7(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@glimmer/component@2.1.1': + "@glimmer/component@2.1.1": dependencies: - '@embroider/addon-shim': 1.10.2 - '@glimmer/env': 0.1.7 + "@embroider/addon-shim": 1.10.3 + "@glimmer/env": 0.1.7 transitivePeerDependencies: - supports-color - '@glimmer/di@0.1.11': {} + "@glimmer/di@0.1.11": {} - '@glimmer/env@0.1.7': {} + "@glimmer/env@0.1.7": {} - '@glimmer/interfaces@0.94.6': + "@glimmer/interfaces@0.94.6": dependencies: - '@simple-dom/interface': 1.4.0 + "@simple-dom/interface": 1.4.0 type-fest: 4.41.0 - '@glimmer/syntax@0.95.0': + "@glimmer/syntax@0.95.0": dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/util': 0.94.8 - '@glimmer/wire-format': 0.94.8 - '@handlebars/parser': 2.2.2 + "@glimmer/interfaces": 0.94.6 + "@glimmer/util": 0.94.8 + "@glimmer/wire-format": 0.94.8 + "@handlebars/parser": 2.2.2 simple-html-tokenizer: 0.5.11 - '@glimmer/tracking@1.1.2': + "@glimmer/tracking@1.1.2": dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/validator': 0.44.0 + "@glimmer/env": 0.1.7 + "@glimmer/validator": 0.44.0 - '@glimmer/util@0.44.0': {} + "@glimmer/util@0.44.0": {} - '@glimmer/util@0.94.8': + "@glimmer/util@0.94.8": dependencies: - '@glimmer/interfaces': 0.94.6 + "@glimmer/interfaces": 0.94.6 - '@glimmer/validator@0.44.0': {} + "@glimmer/validator@0.44.0": {} - '@glimmer/wire-format@0.94.8': + "@glimmer/wire-format@0.94.8": dependencies: - '@glimmer/interfaces': 0.94.6 + "@glimmer/interfaces": 0.94.6 - '@gulpjs/messages@1.1.0': {} + "@gulpjs/messages@1.1.0": {} - '@gulpjs/to-absolute-glob@4.0.0': + "@gulpjs/to-absolute-glob@4.0.0": dependencies: is-negated-glob: 1.0.0 - '@handlebars/parser@2.2.2': {} + "@handlebars/parser@2.2.2": {} - '@hapi/address@5.1.1': + "@hapi/address@5.1.1": dependencies: - '@hapi/hoek': 11.0.7 + "@hapi/hoek": 11.0.7 - '@hapi/bourne@3.0.0': {} + "@hapi/bourne@3.0.0": {} - '@hapi/formula@3.0.2': {} + "@hapi/formula@3.0.2": {} - '@hapi/hoek@11.0.7': {} + "@hapi/hoek@11.0.7": {} - '@hapi/hoek@9.3.0': {} + "@hapi/hoek@9.3.0": {} - '@hapi/pinpoint@2.0.1': {} + "@hapi/pinpoint@2.0.1": {} - '@hapi/tlds@1.1.6': {} + "@hapi/tlds@1.1.7": {} - '@hapi/topo@5.1.0': + "@hapi/topo@5.1.0": dependencies: - '@hapi/hoek': 9.3.0 + "@hapi/hoek": 9.3.0 - '@hapi/topo@6.0.2': + "@hapi/topo@6.0.2": dependencies: - '@hapi/hoek': 11.0.7 + "@hapi/hoek": 11.0.7 - '@harperfast/extended-iterable@1.0.3': + "@harperfast/extended-iterable@1.0.3": optional: true - '@hono/node-server@1.19.14(hono@4.12.22)': + "@hono/node-server@1.19.14(hono@4.12.25)": dependencies: - hono: 4.12.22 + hono: 4.12.25 - '@humanfs/core@0.19.2': + "@humanfs/core@0.19.2": dependencies: - '@humanfs/types': 0.15.0 + "@humanfs/types": 0.15.0 - '@humanfs/node@0.16.8': + "@humanfs/node@0.16.8": dependencies: - '@humanfs/core': 0.19.2 - '@humanfs/types': 0.15.0 - '@humanwhocodes/retry': 0.4.3 - - '@humanfs/types@0.15.0': {} + "@humanfs/core": 0.19.2 + "@humanfs/types": 0.15.0 + "@humanwhocodes/retry": 0.4.3 - '@humanwhocodes/module-importer@1.0.1': {} + "@humanfs/types@0.15.0": {} - '@humanwhocodes/retry@0.4.3': {} + "@humanwhocodes/module-importer@1.0.1": {} - '@hutson/parse-repository-url@3.0.2': {} + "@humanwhocodes/retry@0.4.3": {} - '@iarna/toml@2.2.5': {} + "@hutson/parse-repository-url@3.0.2": {} - '@iconify-json/simple-icons@1.2.83': + "@iconify-json/simple-icons@1.2.86": dependencies: - '@iconify/types': 2.0.0 + "@iconify/types": 2.0.0 - '@iconify/types@2.0.0': {} + "@iconify/types@2.0.0": {} - '@img/colour@1.1.0': + "@img/colour@1.1.0": optional: true - '@img/sharp-darwin-arm64@0.34.5': + "@img/sharp-darwin-arm64@0.34.5": optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + "@img/sharp-libvips-darwin-arm64": 1.2.4 optional: true - '@img/sharp-darwin-x64@0.34.5': + "@img/sharp-darwin-x64@0.34.5": optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 + "@img/sharp-libvips-darwin-x64": 1.2.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': + "@img/sharp-libvips-darwin-arm64@1.2.4": optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': + "@img/sharp-libvips-darwin-x64@1.2.4": optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': + "@img/sharp-libvips-linux-arm64@1.2.4": optional: true - '@img/sharp-libvips-linux-arm@1.2.4': + "@img/sharp-libvips-linux-arm@1.2.4": optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + "@img/sharp-libvips-linux-ppc64@1.2.4": optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + "@img/sharp-libvips-linux-riscv64@1.2.4": optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + "@img/sharp-libvips-linux-s390x@1.2.4": optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + "@img/sharp-libvips-linux-x64@1.2.4": optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + "@img/sharp-libvips-linuxmusl-arm64@1.2.4": optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + "@img/sharp-libvips-linuxmusl-x64@1.2.4": optional: true - '@img/sharp-linux-arm64@0.34.5': + "@img/sharp-linux-arm64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + "@img/sharp-libvips-linux-arm64": 1.2.4 optional: true - '@img/sharp-linux-arm@0.34.5': + "@img/sharp-linux-arm@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + "@img/sharp-libvips-linux-arm": 1.2.4 optional: true - '@img/sharp-linux-ppc64@0.34.5': + "@img/sharp-linux-ppc64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + "@img/sharp-libvips-linux-ppc64": 1.2.4 optional: true - '@img/sharp-linux-riscv64@0.34.5': + "@img/sharp-linux-riscv64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + "@img/sharp-libvips-linux-riscv64": 1.2.4 optional: true - '@img/sharp-linux-s390x@0.34.5': + "@img/sharp-linux-s390x@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + "@img/sharp-libvips-linux-s390x": 1.2.4 optional: true - '@img/sharp-linux-x64@0.34.5': + "@img/sharp-linux-x64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + "@img/sharp-libvips-linux-x64": 1.2.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + "@img/sharp-linuxmusl-arm64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + "@img/sharp-linuxmusl-x64@0.34.5": optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 optional: true - '@img/sharp-wasm32@0.34.5': + "@img/sharp-wasm32@0.34.5": dependencies: - '@emnapi/runtime': 1.10.0 + "@emnapi/runtime": 1.11.1 optional: true - '@img/sharp-win32-arm64@0.34.5': + "@img/sharp-win32-arm64@0.34.5": optional: true - '@img/sharp-win32-ia32@0.34.5': + "@img/sharp-win32-ia32@0.34.5": optional: true - '@img/sharp-win32-x64@0.34.5': + "@img/sharp-win32-x64@0.34.5": optional: true - '@inquirer/ansi@1.0.2': {} + "@inquirer/ansi@1.0.2": {} - '@inquirer/ansi@2.0.5': {} + "@inquirer/ansi@2.0.7": {} - '@inquirer/checkbox@4.3.2(@types/node@25.9.1)': + "@inquirer/checkbox@4.3.2(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/ansi": 1.0.2 + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/figures": 1.0.15 + "@inquirer/type": 3.0.10(@types/node@25.9.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 + + "@inquirer/checkbox@5.2.1(@types/node@25.9.3)": + dependencies: + "@inquirer/ansi": 2.0.7 + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/figures": 2.0.7 + "@inquirer/type": 4.0.7(@types/node@25.9.3) + optionalDependencies: + "@types/node": 25.9.3 - '@inquirer/checkbox@5.1.5(@types/node@25.9.1)': + "@inquirer/confirm@5.1.21(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 2.0.5 - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/confirm@5.1.21(@types/node@25.9.1)': + "@inquirer/confirm@6.0.12(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/confirm@6.0.13(@types/node@25.9.1)': + "@inquirer/confirm@6.1.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/core@10.3.2(@types/node@25.9.1)': + "@inquirer/core@10.3.2(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/ansi": 1.0.2 + "@inquirer/figures": 1.0.15 + "@inquirer/type": 3.0.10(@types/node@25.9.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/core@11.1.10(@types/node@25.9.1)': + "@inquirer/core@11.2.1(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 2.0.5 - '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/ansi": 2.0.7 + "@inquirer/figures": 2.0.7 + "@inquirer/type": 4.0.7(@types/node@25.9.3) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/editor@4.2.23(@types/node@25.9.1)': + "@inquirer/editor@4.2.23(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/external-editor': 1.0.3(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/external-editor": 1.0.3(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/editor@5.1.2(@types/node@25.9.1)': + "@inquirer/editor@5.2.2(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/external-editor': 3.0.0(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/external-editor": 3.0.3(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/expand@4.0.23(@types/node@25.9.1)': + "@inquirer/expand@4.0.23(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/expand@5.0.14(@types/node@25.9.1)': + "@inquirer/expand@5.1.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/external-editor@1.0.3(@types/node@25.9.1)': + "@inquirer/external-editor@1.0.3(@types/node@25.9.3)": dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/external-editor@3.0.0(@types/node@25.9.1)': + "@inquirer/external-editor@3.0.3(@types/node@25.9.3)": dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/figures@1.0.15': {} + "@inquirer/figures@1.0.15": {} - '@inquirer/figures@2.0.5': {} + "@inquirer/figures@2.0.7": {} - '@inquirer/input@4.3.1(@types/node@25.9.1)': + "@inquirer/input@4.3.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/input@5.0.13(@types/node@25.9.1)': + "@inquirer/input@5.1.2(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/number@3.0.23(@types/node@25.9.1)': + "@inquirer/number@3.0.23(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/number@4.0.13(@types/node@25.9.1)': + "@inquirer/number@4.1.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/password@4.0.23(@types/node@25.9.1)': + "@inquirer/password@4.0.23(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/ansi": 1.0.2 + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/password@5.0.13(@types/node@25.9.1)': + "@inquirer/password@5.1.1(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 2.0.5 - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/ansi": 2.0.7 + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) + optionalDependencies: + "@types/node": 25.9.3 + + "@inquirer/prompts@7.10.1(@types/node@25.9.3)": + dependencies: + "@inquirer/checkbox": 4.3.2(@types/node@25.9.3) + "@inquirer/confirm": 5.1.21(@types/node@25.9.3) + "@inquirer/editor": 4.2.23(@types/node@25.9.3) + "@inquirer/expand": 4.0.23(@types/node@25.9.3) + "@inquirer/input": 4.3.1(@types/node@25.9.3) + "@inquirer/number": 3.0.23(@types/node@25.9.3) + "@inquirer/password": 4.0.23(@types/node@25.9.3) + "@inquirer/rawlist": 4.1.11(@types/node@25.9.3) + "@inquirer/search": 3.2.2(@types/node@25.9.3) + "@inquirer/select": 4.4.2(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 - - '@inquirer/prompts@7.10.1(@types/node@25.9.1)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.9.1) - '@inquirer/confirm': 5.1.21(@types/node@25.9.1) - '@inquirer/editor': 4.2.23(@types/node@25.9.1) - '@inquirer/expand': 4.0.23(@types/node@25.9.1) - '@inquirer/input': 4.3.1(@types/node@25.9.1) - '@inquirer/number': 3.0.23(@types/node@25.9.1) - '@inquirer/password': 4.0.23(@types/node@25.9.1) - '@inquirer/rawlist': 4.1.11(@types/node@25.9.1) - '@inquirer/search': 3.2.2(@types/node@25.9.1) - '@inquirer/select': 4.4.2(@types/node@25.9.1) + "@types/node": 25.9.3 + + "@inquirer/prompts@8.4.2(@types/node@25.9.3)": + dependencies: + "@inquirer/checkbox": 5.2.1(@types/node@25.9.3) + "@inquirer/confirm": 6.1.1(@types/node@25.9.3) + "@inquirer/editor": 5.2.2(@types/node@25.9.3) + "@inquirer/expand": 5.1.1(@types/node@25.9.3) + "@inquirer/input": 5.1.2(@types/node@25.9.3) + "@inquirer/number": 4.1.1(@types/node@25.9.3) + "@inquirer/password": 5.1.1(@types/node@25.9.3) + "@inquirer/rawlist": 5.3.1(@types/node@25.9.3) + "@inquirer/search": 4.2.1(@types/node@25.9.3) + "@inquirer/select": 5.2.1(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 - - '@inquirer/prompts@8.4.3(@types/node@25.9.1)': - dependencies: - '@inquirer/checkbox': 5.1.5(@types/node@25.9.1) - '@inquirer/confirm': 6.0.13(@types/node@25.9.1) - '@inquirer/editor': 5.1.2(@types/node@25.9.1) - '@inquirer/expand': 5.0.14(@types/node@25.9.1) - '@inquirer/input': 5.0.13(@types/node@25.9.1) - '@inquirer/number': 4.0.13(@types/node@25.9.1) - '@inquirer/password': 5.0.13(@types/node@25.9.1) - '@inquirer/rawlist': 5.2.9(@types/node@25.9.1) - '@inquirer/search': 4.1.9(@types/node@25.9.1) - '@inquirer/select': 5.1.5(@types/node@25.9.1) + "@types/node": 25.9.3 + + "@inquirer/prompts@8.5.2(@types/node@25.9.3)": + dependencies: + "@inquirer/checkbox": 5.2.1(@types/node@25.9.3) + "@inquirer/confirm": 6.1.1(@types/node@25.9.3) + "@inquirer/editor": 5.2.2(@types/node@25.9.3) + "@inquirer/expand": 5.1.1(@types/node@25.9.3) + "@inquirer/input": 5.1.2(@types/node@25.9.3) + "@inquirer/number": 4.1.1(@types/node@25.9.3) + "@inquirer/password": 5.1.1(@types/node@25.9.3) + "@inquirer/rawlist": 5.3.1(@types/node@25.9.3) + "@inquirer/search": 4.2.1(@types/node@25.9.3) + "@inquirer/select": 5.2.1(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/rawlist@4.1.11(@types/node@25.9.1)': + "@inquirer/rawlist@4.1.11(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/rawlist@5.2.9(@types/node@25.9.1)': + "@inquirer/rawlist@5.3.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/search@3.2.2(@types/node@25.9.1)': + "@inquirer/search@3.2.2(@types/node@25.9.3)": dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/figures": 1.0.15 + "@inquirer/type": 3.0.10(@types/node@25.9.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/search@4.1.9(@types/node@25.9.1)': + "@inquirer/search@4.2.1(@types/node@25.9.3)": dependencies: - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/figures": 2.0.7 + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/select@4.4.2(@types/node@25.9.1)': + "@inquirer/select@4.4.2(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/ansi": 1.0.2 + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/figures": 1.0.15 + "@inquirer/type": 3.0.10(@types/node@25.9.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/select@5.1.5(@types/node@25.9.1)': + "@inquirer/select@5.2.1(@types/node@25.9.3)": dependencies: - '@inquirer/ansi': 2.0.5 - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/ansi": 2.0.7 + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/figures": 2.0.7 + "@inquirer/type": 4.0.7(@types/node@25.9.3) optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/type@3.0.10(@types/node@25.9.1)': + "@inquirer/type@3.0.10(@types/node@25.9.3)": optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@inquirer/type@4.0.5(@types/node@25.9.1)': + "@inquirer/type@4.0.7(@types/node@25.9.3)": optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@ionic/angular-toolkit@12.3.0': + "@ionic/angular-toolkit@12.3.0": dependencies: - '@angular-devkit/core': 20.3.26 - '@angular-devkit/schematics': 20.3.26 - '@schematics/angular': 20.3.26 + "@angular-devkit/core": 20.3.28 + "@angular-devkit/schematics": 20.3.28 + "@schematics/angular": 20.3.28 transitivePeerDependencies: - chokidar - '@ionic/angular@8.8.8(6ed375bf6d5de9ead2534b663d339729)': + "@ionic/angular@8.8.10(92bf5dfa8546ec0706234bf8611545e3)": dependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/router': 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@ionic/core': 8.8.8 + "@angular/core": 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + "@angular/forms": 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@angular/router": 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + "@ionic/core": 8.8.10 ionicons: 8.0.13 jsonc-parser: 3.3.1 rxjs: 7.8.2 tslib: 2.8.1 zone.js: 0.16.2 - '@ionic/cli-framework-output@2.2.8': + "@ionic/cli-framework-output@2.2.8(supports-color@8.1.1)": dependencies: - '@ionic/utils-terminal': 2.3.5 - debug: 4.4.3(supports-color@5.5.0) + "@ionic/utils-terminal": 2.3.5 + debug: 4.4.3(supports-color@8.1.1) tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/core@8.8.8': + "@ionic/core@8.8.10": dependencies: - '@stencil/core': 4.43.0 + "@stencil/core": 4.43.5 ionicons: 8.0.13 tslib: 2.8.1 - '@ionic/utils-array@2.1.6': + "@ionic/utils-array@2.1.6(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-fs@3.1.7': + "@ionic/utils-fs@3.1.7(supports-color@8.1.1)": dependencies: - '@types/fs-extra': 8.1.5 - debug: 4.4.3(supports-color@5.5.0) + "@types/fs-extra": 8.1.5 + debug: 4.4.3(supports-color@8.1.1) fs-extra: 9.1.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-object@2.1.6': + "@ionic/utils-object@2.1.6(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-process@2.1.12': + "@ionic/utils-process@2.1.12(supports-color@8.1.1)": dependencies: - '@ionic/utils-object': 2.1.6 - '@ionic/utils-terminal': 2.3.5 - debug: 4.4.3(supports-color@5.5.0) + "@ionic/utils-object": 2.1.6(supports-color@8.1.1) + "@ionic/utils-terminal": 2.3.5 + debug: 4.4.3(supports-color@8.1.1) signal-exit: 3.0.7 tree-kill: 1.2.2 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-stream@3.1.7': + "@ionic/utils-stream@3.1.7(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-subprocess@3.0.1': + "@ionic/utils-subprocess@3.0.1(supports-color@8.1.1)": dependencies: - '@ionic/utils-array': 2.1.6 - '@ionic/utils-fs': 3.1.7 - '@ionic/utils-process': 2.1.12 - '@ionic/utils-stream': 3.1.7 - '@ionic/utils-terminal': 2.3.5 + "@ionic/utils-array": 2.1.6(supports-color@8.1.1) + "@ionic/utils-fs": 3.1.7(supports-color@8.1.1) + "@ionic/utils-process": 2.1.12(supports-color@8.1.1) + "@ionic/utils-stream": 3.1.7(supports-color@8.1.1) + "@ionic/utils-terminal": 2.3.5 cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@ionic/utils-terminal@2.3.5': + "@ionic/utils-terminal@2.3.5": dependencies: - '@types/slice-ansi': 4.0.0 - debug: 4.4.3(supports-color@5.5.0) + "@types/slice-ansi": 4.0.0 + debug: 4.4.3(supports-color@8.1.1) signal-exit: 3.0.7 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -47231,9 +53260,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@ioredis/commands@1.5.1': {} + "@ioredis/commands@1.10.0": {} - '@isaacs/cliui@8.0.2': + "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 @@ -47242,15 +53271,15 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/cliui@9.0.0': {} + "@isaacs/cliui@9.0.0": {} - '@isaacs/fs-minipass@4.0.1': + "@isaacs/fs-minipass@4.0.1": dependencies: minipass: 7.1.3 - '@isaacs/string-locale-compare@1.1.0': {} + "@isaacs/string-locale-compare@1.1.0": {} - '@istanbuljs/load-nyc-config@1.1.0': + "@istanbuljs/load-nyc-config@1.1.0": dependencies: camelcase: 5.3.1 find-up: 4.1.0 @@ -47258,32 +53287,32 @@ snapshots: js-yaml: 3.14.2 resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.6': {} + "@istanbuljs/schema@0.1.6": {} - '@jest/console@29.7.0': + "@jest/console@29.7.0": dependencies: - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3))': + "@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))": dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0(node-notifier@10.0.1) - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/console": 29.7.0 + "@jest/reporters": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -47299,102 +53328,100 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 - optionalDependencies: - node-notifier: 10.0.1 transitivePeerDependencies: - babel-plugin-macros - supports-color - ts-node - '@jest/diff-sequences@30.0.1': {} + "@jest/diff-sequences@30.0.1": {} - '@jest/diff-sequences@30.4.0': {} + "@jest/diff-sequences@30.4.0": {} - '@jest/environment-jsdom-abstract@30.4.1(canvas@3.2.3)(jsdom@26.1.0(canvas@3.2.3))': + "@jest/environment-jsdom-abstract@30.4.1(canvas@3.2.3)(jsdom@26.1.0(canvas@3.2.3))": dependencies: - '@jest/environment': 30.4.1 - '@jest/fake-timers': 30.4.1 - '@jest/types': 30.4.1 - '@types/jsdom': 21.1.7 - '@types/node': 25.9.1 + "@jest/environment": 30.4.1 + "@jest/fake-timers": 30.4.1 + "@jest/types": 30.4.1 + "@types/jsdom": 21.1.7 + "@types/node": 25.9.3 jest-mock: 30.4.1 jest-util: 30.4.1 jsdom: 26.1.0(canvas@3.2.3) optionalDependencies: canvas: 3.2.3 - '@jest/environment@29.7.0': + "@jest/environment@29.7.0": dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 jest-mock: 29.7.0 - '@jest/environment@30.4.1': + "@jest/environment@30.4.1": dependencies: - '@jest/fake-timers': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 25.9.1 + "@jest/fake-timers": 30.4.1 + "@jest/types": 30.4.1 + "@types/node": 25.9.3 jest-mock: 30.4.1 - '@jest/expect-utils@29.7.0': + "@jest/expect-utils@29.7.0": dependencies: jest-get-type: 29.6.3 - '@jest/expect-utils@30.4.1': + "@jest/expect-utils@30.4.1": dependencies: - '@jest/get-type': 30.1.0 + "@jest/get-type": 30.1.0 - '@jest/expect@29.7.0': + "@jest/expect@29.7.0": dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + "@jest/fake-timers@29.7.0": dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 25.9.1 + "@jest/types": 29.6.3 + "@sinonjs/fake-timers": 10.3.0 + "@types/node": 25.9.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 - '@jest/fake-timers@30.4.1': + "@jest/fake-timers@30.4.1": dependencies: - '@jest/types': 30.4.1 - '@sinonjs/fake-timers': 15.4.0 - '@types/node': 25.9.1 + "@jest/types": 30.4.1 + "@sinonjs/fake-timers": 15.4.0 + "@types/node": 25.9.3 jest-message-util: 30.4.1 jest-mock: 30.4.1 jest-util: 30.4.1 - '@jest/get-type@30.1.0': {} + "@jest/get-type@30.1.0": {} - '@jest/globals@29.7.0': + "@jest/globals@29.7.0": dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/types": 29.6.3 jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - '@jest/pattern@30.4.0': + "@jest/pattern@30.4.0": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 jest-regex-util: 30.4.0 - '@jest/reporters@29.7.0(node-notifier@10.0.1)': + "@jest/reporters@29.7.0": dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 25.9.1 + "@bcoe/v8-coverage": 0.2.3 + "@jest/console": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.31 + "@types/node": 25.9.3 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit: 0.1.2 @@ -47403,7 +53430,7 @@ snapshots: istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1) istanbul-reports: 3.2.0 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -47412,44 +53439,42 @@ snapshots: string-length: 4.0.2 strip-ansi: 6.0.1 v8-to-istanbul: 9.3.0 - optionalDependencies: - node-notifier: 10.0.1 transitivePeerDependencies: - supports-color - '@jest/schemas@29.6.3': + "@jest/schemas@29.6.3": dependencies: - '@sinclair/typebox': 0.27.10 + "@sinclair/typebox": 0.27.10 - '@jest/schemas@30.4.1': + "@jest/schemas@30.4.1": dependencies: - '@sinclair/typebox': 0.34.49 + "@sinclair/typebox": 0.34.49 - '@jest/source-map@29.6.3': + "@jest/source-map@29.6.3": dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + "@jest/test-result@29.7.0": dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 + "@jest/console": 29.7.0 + "@jest/types": 29.6.3 + "@types/istanbul-lib-coverage": 2.0.6 collect-v8-coverage: 1.0.3 - '@jest/test-sequencer@29.7.0': + "@jest/test-sequencer@29.7.0": dependencies: - '@jest/test-result': 29.7.0 + "@jest/test-result": 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 - '@jest/transform@29.7.0': + "@jest/transform@29.7.0": dependencies: - '@babel/core': 7.29.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.31 + "@babel/core": 7.29.0 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.31 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -47465,206 +53490,206 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/types@29.6.3': + "@jest/types@29.6.3": dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 25.9.1 - '@types/yargs': 17.0.35 + "@jest/schemas": 29.6.3 + "@types/istanbul-lib-coverage": 2.0.6 + "@types/istanbul-reports": 3.0.4 + "@types/node": 25.9.3 + "@types/yargs": 17.0.35 chalk: 4.1.2 - '@jest/types@30.4.1': + "@jest/types@30.4.1": dependencies: - '@jest/pattern': 30.4.0 - '@jest/schemas': 30.4.1 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 25.9.1 - '@types/yargs': 17.0.35 + "@jest/pattern": 30.4.0 + "@jest/schemas": 30.4.1 + "@types/istanbul-lib-coverage": 2.0.6 + "@types/istanbul-reports": 3.0.4 + "@types/node": 25.9.3 + "@types/yargs": 17.0.35 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.13': + "@jridgewell/gen-mapping@0.3.13": dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/sourcemap-codec": 1.5.5 + "@jridgewell/trace-mapping": 0.3.31 - '@jridgewell/remapping@2.3.5': + "@jridgewell/remapping@2.3.5": dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 - '@jridgewell/resolve-uri@3.1.2': {} + "@jridgewell/resolve-uri@3.1.2": {} - '@jridgewell/source-map@0.3.11': + "@jridgewell/source-map@0.3.11": dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 - '@jridgewell/sourcemap-codec@1.5.5': {} + "@jridgewell/sourcemap-codec@1.5.5": {} - '@jridgewell/trace-mapping@0.3.31': + "@jridgewell/trace-mapping@0.3.31": dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.5 - '@jridgewell/trace-mapping@0.3.9': + "@jridgewell/trace-mapping@0.3.9": dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.5 - '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + "@jsonjoy.com/base64@1.1.2(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/base64@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/base64@17.67.0(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': + "@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/buffers@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/buffers@17.67.0(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': + "@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/codegen@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/codegen@17.67.0(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-core@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-core@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-fsa@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-fsa@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-core": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-builtins@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-node-builtins@4.57.7(tslib@2.8.1)": dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-node-to-fsa@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-node-to-fsa@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-fsa": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-utils@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-node-utils@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-node@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-core": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-print": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-snapshot": 4.57.7(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-print@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-print@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-snapshot@4.57.2(tslib@2.8.1)': + "@jsonjoy.com/fs-snapshot@4.57.7(tslib@2.8.1)": dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/json-pack': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/json-pack": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': + "@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)": dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + "@jsonjoy.com/base64": 1.1.2(tslib@2.8.1) + "@jsonjoy.com/buffers": 1.2.1(tslib@2.8.1) + "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) + "@jsonjoy.com/json-pointer": 1.0.2(tslib@2.8.1) + "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 2.6.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pack@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/json-pack@17.67.0(tslib@2.8.1)": dependencies: - '@jsonjoy.com/base64': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + "@jsonjoy.com/base64": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/codegen": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/json-pointer": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 2.6.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': + "@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)": dependencies: - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) + "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pointer@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/json-pointer@17.67.0(tslib@2.8.1)": dependencies: - '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': + "@jsonjoy.com/util@1.9.0(tslib@2.8.1)": dependencies: - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + "@jsonjoy.com/buffers": 1.2.1(tslib@2.8.1) + "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@17.67.0(tslib@2.8.1)': + "@jsonjoy.com/util@17.67.0(tslib@2.8.1)": dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) + "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) + "@jsonjoy.com/codegen": 17.67.0(tslib@2.8.1) tslib: 2.8.1 - '@keyv/bigmap@1.3.1(keyv@5.6.0)': + "@keyv/bigmap@1.3.1(keyv@5.6.0)": dependencies: hashery: 1.5.1 hookified: 1.15.1 keyv: 5.6.0 - '@keyv/serialize@1.1.1': {} + "@keyv/serialize@1.1.1": {} - '@koa/cors@3.4.3': + "@koa/cors@3.4.3": dependencies: vary: 1.1.2 - '@kwsites/file-exists@1.1.1': + "@kwsites/file-exists@1.1.1(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@kwsites/promise-deferred@1.1.1': {} + "@kwsites/promise-deferred@1.1.1": {} - '@leichtgewicht/ip-codec@2.0.5': {} + "@leichtgewicht/ip-codec@2.0.5": {} - '@lint-todo/utils@13.1.1': + "@lint-todo/utils@13.1.1": dependencies: - '@types/eslint': 8.56.12 + "@types/eslint": 8.56.12 find-up: 5.0.0 fs-extra: 9.1.0 proper-lockfile: 4.1.2 @@ -47672,513 +53697,538 @@ snapshots: tslib: 2.8.1 upath: 2.0.1 - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@25.9.1))(@types/node@25.9.1)(listr2@9.0.5)': + "@listr2/prompt-adapter-inquirer@4.2.3(@inquirer/prompts@8.4.2(@types/node@25.9.3))(@types/node@25.9.3)(listr2@10.2.1)": dependencies: - '@inquirer/prompts': 7.10.1(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) - listr2: 9.0.5 + "@inquirer/prompts": 8.4.2(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) + listr2: 10.2.1 transitivePeerDependencies: - - '@types/node' + - "@types/node" - '@lit-labs/ssr-dom-shim@1.6.0': {} + "@lit-labs/ssr-dom-shim@1.6.0": {} - '@lit/reactive-element@2.1.2': + "@lit/reactive-element@2.1.2": dependencies: - '@lit-labs/ssr-dom-shim': 1.6.0 + "@lit-labs/ssr-dom-shim": 1.6.0 - '@lmdb/lmdb-darwin-arm64@3.5.1': + "@lmdb/lmdb-darwin-arm64@3.5.4": optional: true - '@lmdb/lmdb-darwin-x64@3.5.1': + "@lmdb/lmdb-darwin-x64@3.5.4": optional: true - '@lmdb/lmdb-linux-arm64@3.5.1': + "@lmdb/lmdb-linux-arm64@3.5.4": optional: true - '@lmdb/lmdb-linux-arm@3.5.1': + "@lmdb/lmdb-linux-arm@3.5.4": optional: true - '@lmdb/lmdb-linux-x64@3.5.1': + "@lmdb/lmdb-linux-x64@3.5.4": optional: true - '@lmdb/lmdb-win32-arm64@3.5.1': + "@lmdb/lmdb-win32-arm64@3.5.4": optional: true - '@lmdb/lmdb-win32-x64@3.5.1': + "@lmdb/lmdb-win32-x64@3.5.4": optional: true - '@malept/cross-spawn-promise@2.0.0': + "@malept/cross-spawn-promise@2.0.0": dependencies: cross-spawn: 7.0.6 - '@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)': + "@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)": dependencies: consola: 3.4.2 detect-libc: 2.1.2 https-proxy-agent: 7.0.6 node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 - semver: 7.8.1 - tar: 7.5.15 + semver: 7.8.4 + tar: 7.5.16 transitivePeerDependencies: - encoding - supports-color - '@mdn/browser-compat-data@5.7.6': {} + "@mdn/browser-compat-data@5.7.6": {} + + "@mdn/browser-compat-data@6.1.5": {} - '@microsoft/tsdoc-config@0.18.1': + "@microsoft/tsdoc-config@0.18.1": dependencies: - '@microsoft/tsdoc': 0.16.0 + "@microsoft/tsdoc": 0.16.0 ajv: 8.18.0 jju: 1.4.0 resolve: 1.22.12 - '@microsoft/tsdoc@0.16.0': {} + "@microsoft/tsdoc@0.16.0": {} - '@modelcontextprotocol/sdk@1.26.0(zod@4.3.6)': + "@modelcontextprotocol/sdk@1.29.0(zod@4.4.2)": dependencies: - '@hono/node-server': 1.19.14(hono@4.12.22) + "@hono/node-server": 1.19.14(hono@4.12.25) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.8 + eventsource-parser: 3.1.0 express: 5.2.1 express-rate-limit: 8.5.2(express@5.2.1) - hono: 4.12.22 + hono: 4.12.25 jose: 6.2.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.3.6 - zod-to-json-schema: 3.25.2(zod@4.3.6) + zod: 4.4.2 + zod-to-json-schema: 3.25.2(zod@4.4.2) transitivePeerDependencies: - supports-color - '@mrmlnc/readdir-enhanced@2.2.1': + "@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)": dependencies: - call-me-maybe: 1.0.2 - glob-to-regexp: 0.3.0 + "@hono/node-server": 1.19.14(hono@4.12.25) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.1.0 + express: 5.2.1 + express-rate-limit: 8.5.2(express@5.2.1) + hono: 4.12.25 + jose: 6.2.3 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.4.3 + zod-to-json-schema: 3.25.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4": optional: true - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4": optional: true - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4": optional: true - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4": optional: true - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4": optional: true - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4": optional: true - '@napi-rs/nice-android-arm-eabi@1.1.1': + "@napi-rs/nice-android-arm-eabi@1.1.1": optional: true - '@napi-rs/nice-android-arm64@1.1.1': + "@napi-rs/nice-android-arm64@1.1.1": optional: true - '@napi-rs/nice-darwin-arm64@1.1.1': + "@napi-rs/nice-darwin-arm64@1.1.1": optional: true - '@napi-rs/nice-darwin-x64@1.1.1': + "@napi-rs/nice-darwin-x64@1.1.1": optional: true - '@napi-rs/nice-freebsd-x64@1.1.1': + "@napi-rs/nice-freebsd-x64@1.1.1": optional: true - '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + "@napi-rs/nice-linux-arm-gnueabihf@1.1.1": optional: true - '@napi-rs/nice-linux-arm64-gnu@1.1.1': + "@napi-rs/nice-linux-arm64-gnu@1.1.1": optional: true - '@napi-rs/nice-linux-arm64-musl@1.1.1': + "@napi-rs/nice-linux-arm64-musl@1.1.1": optional: true - '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + "@napi-rs/nice-linux-ppc64-gnu@1.1.1": optional: true - '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + "@napi-rs/nice-linux-riscv64-gnu@1.1.1": optional: true - '@napi-rs/nice-linux-s390x-gnu@1.1.1': + "@napi-rs/nice-linux-s390x-gnu@1.1.1": optional: true - '@napi-rs/nice-linux-x64-gnu@1.1.1': + "@napi-rs/nice-linux-x64-gnu@1.1.1": optional: true - '@napi-rs/nice-linux-x64-musl@1.1.1': + "@napi-rs/nice-linux-x64-musl@1.1.1": optional: true - '@napi-rs/nice-openharmony-arm64@1.1.1': + "@napi-rs/nice-openharmony-arm64@1.1.1": optional: true - '@napi-rs/nice-win32-arm64-msvc@1.1.1': + "@napi-rs/nice-win32-arm64-msvc@1.1.1": optional: true - '@napi-rs/nice-win32-ia32-msvc@1.1.1': + "@napi-rs/nice-win32-ia32-msvc@1.1.1": optional: true - '@napi-rs/nice-win32-x64-msvc@1.1.1': + "@napi-rs/nice-win32-x64-msvc@1.1.1": optional: true - '@napi-rs/nice@1.1.1': + "@napi-rs/nice@1.1.1": optionalDependencies: - '@napi-rs/nice-android-arm-eabi': 1.1.1 - '@napi-rs/nice-android-arm64': 1.1.1 - '@napi-rs/nice-darwin-arm64': 1.1.1 - '@napi-rs/nice-darwin-x64': 1.1.1 - '@napi-rs/nice-freebsd-x64': 1.1.1 - '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 - '@napi-rs/nice-linux-arm64-gnu': 1.1.1 - '@napi-rs/nice-linux-arm64-musl': 1.1.1 - '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 - '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 - '@napi-rs/nice-linux-s390x-gnu': 1.1.1 - '@napi-rs/nice-linux-x64-gnu': 1.1.1 - '@napi-rs/nice-linux-x64-musl': 1.1.1 - '@napi-rs/nice-openharmony-arm64': 1.1.1 - '@napi-rs/nice-win32-arm64-msvc': 1.1.1 - '@napi-rs/nice-win32-ia32-msvc': 1.1.1 - '@napi-rs/nice-win32-x64-msvc': 1.1.1 + "@napi-rs/nice-android-arm-eabi": 1.1.1 + "@napi-rs/nice-android-arm64": 1.1.1 + "@napi-rs/nice-darwin-arm64": 1.1.1 + "@napi-rs/nice-darwin-x64": 1.1.1 + "@napi-rs/nice-freebsd-x64": 1.1.1 + "@napi-rs/nice-linux-arm-gnueabihf": 1.1.1 + "@napi-rs/nice-linux-arm64-gnu": 1.1.1 + "@napi-rs/nice-linux-arm64-musl": 1.1.1 + "@napi-rs/nice-linux-ppc64-gnu": 1.1.1 + "@napi-rs/nice-linux-riscv64-gnu": 1.1.1 + "@napi-rs/nice-linux-s390x-gnu": 1.1.1 + "@napi-rs/nice-linux-x64-gnu": 1.1.1 + "@napi-rs/nice-linux-x64-musl": 1.1.1 + "@napi-rs/nice-openharmony-arm64": 1.1.1 + "@napi-rs/nice-win32-arm64-msvc": 1.1.1 + "@napi-rs/nice-win32-ia32-msvc": 1.1.1 + "@napi-rs/nice-win32-x64-msvc": 1.1.1 optional: true - '@napi-rs/wasm-runtime@0.2.4': + "@napi-rs/wasm-runtime@0.2.4": + dependencies: + "@emnapi/core": 1.11.0 + "@emnapi/runtime": 1.11.1 + "@tybys/wasm-util": 0.9.0 + + "@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.9.0 + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@tybys/wasm-util": 0.10.2 + optional: true + + "@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)": + dependencies: + "@emnapi/core": 1.11.0 + "@emnapi/runtime": 1.11.0 + "@tybys/wasm-util": 0.10.2 + optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + "@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 + "@emnapi/core": 1.11.0 + "@emnapi/runtime": 1.11.1 + "@tybys/wasm-util": 0.10.2 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + "@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)": dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@tybys/wasm-util': 0.10.2 + "@emnapi/core": 1.9.2 + "@emnapi/runtime": 1.9.2 + "@tybys/wasm-util": 0.10.2 optional: true - '@next/env@16.2.6': {} + "@next/env@16.2.9": {} - '@next/eslint-plugin-next@16.2.6': + "@next/eslint-plugin-next@16.2.9": dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.6': + "@next/swc-darwin-arm64@16.2.9": optional: true - '@next/swc-darwin-x64@16.2.6': + "@next/swc-darwin-x64@16.2.9": optional: true - '@next/swc-linux-arm64-gnu@16.2.6': + "@next/swc-linux-arm64-gnu@16.2.9": optional: true - '@next/swc-linux-arm64-musl@16.2.6': + "@next/swc-linux-arm64-musl@16.2.9": optional: true - '@next/swc-linux-x64-gnu@16.2.6': + "@next/swc-linux-x64-gnu@16.2.9": optional: true - '@next/swc-linux-x64-musl@16.2.6': + "@next/swc-linux-x64-musl@16.2.9": optional: true - '@next/swc-win32-arm64-msvc@16.2.6': + "@next/swc-win32-arm64-msvc@16.2.9": optional: true - '@next/swc-win32-x64-msvc@16.2.6': + "@next/swc-win32-x64-msvc@16.2.9": optional: true - '@ngtools/webpack@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': - dependencies: - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": dependencies: eslint-scope: 5.1.1 - '@noble/hashes@1.4.0': {} + "@noble/hashes@1.4.0": {} - '@noble/hashes@2.2.0': {} + "@noble/hashes@2.2.0": {} - '@node-ipc/js-queue@2.0.3': + "@node-ipc/js-queue@2.0.3": dependencies: easy-stack: 1.0.1 - '@nodelib/fs.scandir@2.1.5': + "@nodelib/fs.scandir@2.1.5": dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@1.1.3': {} - - '@nodelib/fs.stat@2.0.5': {} + "@nodelib/fs.stat@2.0.5": {} - '@nodelib/fs.walk@1.2.8': + "@nodelib/fs.walk@1.2.8": dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.20.1 - '@nolyfill/is-core-module@1.0.39': {} + "@nolyfill/is-core-module@1.0.39": {} - '@nothing-but/utils@0.12.1': {} + "@nothing-but/utils@0.17.0": {} - '@npmcli/agent@4.0.0': + "@npmcli/agent@4.0.2": dependencies: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.5.0 + lru-cache: 11.5.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color - '@npmcli/arborist@9.1.6': + "@npmcli/arborist@9.1.6": dependencies: - '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 4.0.0 - '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/map-workspaces': 5.0.3 - '@npmcli/metavuln-calculator': 9.0.3 - '@npmcli/name-from-folder': 3.0.0 - '@npmcli/node-gyp': 4.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/query': 4.0.1 - '@npmcli/redact': 3.2.2 - '@npmcli/run-script': 10.0.3 + "@isaacs/string-locale-compare": 1.1.0 + "@npmcli/fs": 4.0.0 + "@npmcli/installed-package-contents": 3.0.0 + "@npmcli/map-workspaces": 5.0.3 + "@npmcli/metavuln-calculator": 9.0.3 + "@npmcli/name-from-folder": 3.0.0 + "@npmcli/node-gyp": 4.0.0 + "@npmcli/package-json": 7.0.2 + "@npmcli/query": 4.0.1 + "@npmcli/redact": 3.2.2 + "@npmcli/run-script": 10.0.3 bin-links: 5.0.0 cacache: 20.0.4 common-ancestor-path: 1.0.1 hosted-git-info: 9.0.3 json-stringify-nice: 1.1.4 - lru-cache: 11.5.0 + lru-cache: 11.5.1 minimatch: 10.2.5 nopt: 8.1.0 npm-install-checks: 7.1.2 - npm-package-arg: 13.0.1 + npm-package-arg: 13.0.2 npm-pick-manifest: 11.0.3 npm-registry-fetch: 19.1.0 - pacote: 21.5.0 + pacote: 21.5.1 parse-conflict-json: 4.0.0 proc-log: 5.0.0 proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - semver: 7.8.1 + semver: 7.8.4 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 4.0.0 transitivePeerDependencies: - supports-color - '@npmcli/fs@1.1.1': + "@npmcli/fs@1.1.1": dependencies: - '@gar/promisify': 1.1.3 - semver: 7.8.1 + "@gar/promisify": 1.1.3 + semver: 7.8.4 - '@npmcli/fs@2.1.2': + "@npmcli/fs@2.1.2": dependencies: - '@gar/promisify': 1.1.3 - semver: 7.8.1 + "@gar/promisify": 1.1.3 + semver: 7.8.4 - '@npmcli/fs@3.1.1': + "@npmcli/fs@3.1.1": dependencies: - semver: 7.8.1 + semver: 7.8.4 - '@npmcli/fs@4.0.0': + "@npmcli/fs@4.0.0": dependencies: - semver: 7.8.1 + semver: 7.8.4 - '@npmcli/fs@5.0.0': + "@npmcli/fs@5.0.0": dependencies: - semver: 7.8.1 + semver: 7.8.4 - '@npmcli/git@4.1.0': + "@npmcli/git@4.1.0(bluebird@3.7.2)": dependencies: - '@npmcli/promise-spawn': 6.0.2 + "@npmcli/promise-spawn": 6.0.2 lru-cache: 7.18.3 npm-pick-manifest: 8.0.2 proc-log: 3.0.0 promise-inflight: 1.0.1(bluebird@3.7.2) promise-retry: 2.0.1 - semver: 7.8.1 + semver: 7.8.4 which: 3.0.1 transitivePeerDependencies: - bluebird - '@npmcli/git@6.0.3': + "@npmcli/git@6.0.3": dependencies: - '@npmcli/promise-spawn': 8.0.3 + "@npmcli/promise-spawn": 8.0.3 ini: 5.0.0 lru-cache: 10.4.3 npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.8.1 + semver: 7.8.4 which: 5.0.0 - '@npmcli/git@7.0.2': + "@npmcli/git@7.0.2": dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/promise-spawn': 9.0.1 + "@gar/promise-retry": 1.0.3 + "@npmcli/promise-spawn": 9.0.1 ini: 6.0.0 - lru-cache: 11.5.0 + lru-cache: 11.5.1 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.8.4 which: 6.0.1 - '@npmcli/installed-package-contents@2.1.0': + "@npmcli/installed-package-contents@2.1.0": dependencies: npm-bundled: 3.0.1 npm-normalize-package-bin: 3.0.1 - '@npmcli/installed-package-contents@3.0.0': + "@npmcli/installed-package-contents@3.0.0": dependencies: npm-bundled: 4.0.0 npm-normalize-package-bin: 4.0.0 - '@npmcli/installed-package-contents@4.0.0': + "@npmcli/installed-package-contents@4.0.0": dependencies: npm-bundled: 5.0.0 npm-normalize-package-bin: 5.0.0 - '@npmcli/map-workspaces@5.0.3': + "@npmcli/map-workspaces@5.0.3": dependencies: - '@npmcli/name-from-folder': 4.0.0 - '@npmcli/package-json': 7.0.2 + "@npmcli/name-from-folder": 4.0.0 + "@npmcli/package-json": 7.0.2 glob: 13.0.6 minimatch: 10.2.5 - '@npmcli/metavuln-calculator@9.0.3': + "@npmcli/metavuln-calculator@9.0.3": dependencies: cacache: 20.0.4 json-parse-even-better-errors: 5.0.0 - pacote: 21.5.0 + pacote: 21.5.1 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - '@npmcli/move-file@1.1.2': + "@npmcli/move-file@1.1.2": dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/move-file@2.0.1': + "@npmcli/move-file@2.0.1": dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/name-from-folder@3.0.0': {} + "@npmcli/name-from-folder@3.0.0": {} - '@npmcli/name-from-folder@4.0.0': {} + "@npmcli/name-from-folder@4.0.0": {} - '@npmcli/node-gyp@3.0.0': {} + "@npmcli/node-gyp@3.0.0": {} - '@npmcli/node-gyp@4.0.0': {} + "@npmcli/node-gyp@4.0.0": {} - '@npmcli/node-gyp@5.0.0': {} + "@npmcli/node-gyp@5.0.0": {} - '@npmcli/package-json@7.0.2': + "@npmcli/package-json@7.0.2": dependencies: - '@npmcli/git': 7.0.2 + "@npmcli/git": 7.0.2 glob: 11.1.0 hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-license: 3.0.4 - '@npmcli/package-json@7.0.5': + "@npmcli/package-json@7.0.5": dependencies: - '@npmcli/git': 7.0.2 + "@npmcli/git": 7.0.2 glob: 13.0.6 hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.8.4 spdx-expression-parse: 4.0.0 - '@npmcli/promise-spawn@6.0.2': + "@npmcli/promise-spawn@6.0.2": dependencies: which: 3.0.1 - '@npmcli/promise-spawn@8.0.3': + "@npmcli/promise-spawn@8.0.3": dependencies: which: 5.0.0 - '@npmcli/promise-spawn@9.0.1': + "@npmcli/promise-spawn@9.0.1": dependencies: which: 6.0.1 - '@npmcli/query@4.0.1': + "@npmcli/query@4.0.1": dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - '@npmcli/redact@3.2.2': {} + "@npmcli/redact@3.2.2": {} - '@npmcli/redact@4.0.0': {} + "@npmcli/redact@4.0.0": {} - '@npmcli/run-script@10.0.3': + "@npmcli/run-script@10.0.3": dependencies: - '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 9.0.1 - node-gyp: 12.3.0 + "@npmcli/node-gyp": 5.0.0 + "@npmcli/package-json": 7.0.2 + "@npmcli/promise-spawn": 9.0.1 + node-gyp: 12.4.0 proc-log: 6.1.0 which: 6.0.1 - '@npmcli/run-script@10.0.4': + "@npmcli/run-script@10.0.4": dependencies: - '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.5 - '@npmcli/promise-spawn': 9.0.1 - node-gyp: 12.3.0 + "@npmcli/node-gyp": 5.0.0 + "@npmcli/package-json": 7.0.5 + "@npmcli/promise-spawn": 9.0.1 + node-gyp: 12.4.0 proc-log: 6.1.0 - '@npmcli/run-script@6.0.2': + "@npmcli/run-script@6.0.2(bluebird@3.7.2)": dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/promise-spawn': 6.0.2 - node-gyp: 9.4.1 + "@npmcli/node-gyp": 3.0.0 + "@npmcli/promise-spawn": 6.0.2 + node-gyp: 9.4.1(bluebird@3.7.2) read-package-json-fast: 3.0.2 which: 3.0.1 transitivePeerDependencies: - bluebird - supports-color - '@nuxt/babel-preset-app@2.18.1(vue@2.7.16)': - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-imports': 7.28.6 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.29.0)(vue@2.7.16) + "@nuxt/babel-preset-app@2.18.1(vue@2.7.16)": + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-optional-chaining": 7.21.0(@babel/core@7.29.0) + "@babel/plugin-proposal-private-methods": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-private-property-in-object": 7.21.11(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.29.7 + "@vue/babel-preset-jsx": 1.4.0(@babel/core@7.29.0)(vue@2.7.16) core-js: 3.49.0 core-js-compat: 3.49.0 regenerator-runtime: 0.14.1 @@ -48186,12 +54236,12 @@ snapshots: - supports-color - vue - '@nuxt/builder@2.18.1(@vue/compiler-sfc@3.5.34)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@nuxt/builder@2.18.1(@vue/compiler-sfc@3.5.38)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/utils': 2.18.1 - '@nuxt/vue-app': 2.18.1 - '@nuxt/webpack': 2.18.1(@vue/compiler-sfc@3.5.34)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + "@nuxt/devalue": 2.0.2 + "@nuxt/utils": 2.18.1 + "@nuxt/vue-app": 2.18.1 + "@nuxt/webpack": 2.18.1(@vue/compiler-sfc@3.5.38)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) chalk: 4.1.2 chokidar: 3.6.0 consola: 3.4.2 @@ -48204,7 +54254,7 @@ snapshots: serialize-javascript: 6.0.2 upath: 2.0.1 transitivePeerDependencies: - - '@vue/compiler-sfc' + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -48268,12 +54318,12 @@ snapshots: - webpack-command - whiskers - '@nuxt/builder@2.18.1(@vue/compiler-sfc@3.5.34)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@nuxt/builder@2.18.1(@vue/compiler-sfc@3.5.38)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/utils': 2.18.1 - '@nuxt/vue-app': 2.18.1 - '@nuxt/webpack': 2.18.1(@vue/compiler-sfc@3.5.34)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + "@nuxt/devalue": 2.0.2 + "@nuxt/utils": 2.18.1 + "@nuxt/vue-app": 2.18.1 + "@nuxt/webpack": 2.18.1(@vue/compiler-sfc@3.5.38)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) chalk: 4.1.2 chokidar: 3.6.0 consola: 3.4.2 @@ -48286,7 +54336,7 @@ snapshots: serialize-javascript: 6.0.2 upath: 2.0.1 transitivePeerDependencies: - - '@vue/compiler-sfc' + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -48350,10 +54400,10 @@ snapshots: - webpack-command - whiskers - '@nuxt/cli@2.18.1(buffer@6.0.3)': + "@nuxt/cli@2.18.1(buffer@6.0.3)": dependencies: - '@nuxt/config': 2.18.1 - '@nuxt/utils': 2.18.1 + "@nuxt/config": 2.18.1 + "@nuxt/utils": 2.18.1 boxen: 5.1.2 chalk: 4.1.2 compression: 1.8.1 @@ -48371,7 +54421,7 @@ snapshots: minimist: 1.2.8 opener: 1.5.2 pretty-bytes: 5.6.0 - semver: 7.8.1 + semver: 7.8.4 serve-static: 1.16.3 std-env: 3.10.0 upath: 2.0.1 @@ -48380,83 +54430,83 @@ snapshots: - buffer - supports-color - '@nuxt/cli@3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)': + "@nuxt/cli@3.35.2(@nuxt/schema@3.21.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)(supports-color@8.1.1)": dependencies: - '@bomb.sh/tab': 0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0) - '@clack/prompts': 1.4.0 + "@bomb.sh/tab": 0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0) + "@clack/prompts": 1.5.1 c12: 3.3.4(magicast@0.5.3) citty: 0.2.2 confbox: 0.2.4 consola: 3.4.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) defu: 6.1.7 exsolve: 1.0.8 - fuse.js: 7.3.0 + fuse.js: 7.4.2 fzf: 0.5.2 - giget: 3.2.0 + giget: 3.3.0 jiti: 2.7.0 listhen: 1.10.0(srvx@0.11.16) - nypm: 0.6.6 + nypm: 0.6.7 ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 srvx: 0.11.16 std-env: 4.1.0 - tinyclip: 0.1.12 - tinyexec: 1.2.2 + tinyclip: 0.1.14 + tinyexec: 1.2.4 ufo: 1.6.4 youch: 4.1.1 optionalDependencies: - '@nuxt/schema': 3.21.6 + "@nuxt/schema": 3.21.8 transitivePeerDependencies: - cac - commander - magicast - supports-color - '@nuxt/cli@3.35.2(@nuxt/schema@4.4.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)': + "@nuxt/cli@3.35.2(@nuxt/schema@4.4.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)": dependencies: - '@bomb.sh/tab': 0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0) - '@clack/prompts': 1.4.0 + "@bomb.sh/tab": 0.0.15(cac@6.7.14)(citty@0.2.2)(commander@13.1.0) + "@clack/prompts": 1.5.1 c12: 3.3.4(magicast@0.5.3) citty: 0.2.2 confbox: 0.2.4 consola: 3.4.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) defu: 6.1.7 exsolve: 1.0.8 - fuse.js: 7.3.0 + fuse.js: 7.4.2 fzf: 0.5.2 - giget: 3.2.0 + giget: 3.3.0 jiti: 2.7.0 listhen: 1.10.0(srvx@0.11.16) - nypm: 0.6.6 + nypm: 0.6.7 ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 srvx: 0.11.16 std-env: 4.1.0 - tinyclip: 0.1.12 - tinyexec: 1.2.2 + tinyclip: 0.1.14 + tinyexec: 1.2.4 ufo: 1.6.4 youch: 4.1.1 optionalDependencies: - '@nuxt/schema': 4.4.6 + "@nuxt/schema": 4.4.8 transitivePeerDependencies: - cac - commander - magicast - supports-color - '@nuxt/components@2.2.1(consola@3.4.2)': + "@nuxt/components@2.2.1(consola@3.4.2)": dependencies: chalk: 4.1.2 chokidar: 3.6.0 @@ -48464,13 +54514,13 @@ snapshots: glob: 7.2.3 globby: 11.1.0 scule: 0.2.1 - semver: 7.8.1 + semver: 7.8.4 upath: 2.0.1 vue-template-compiler: 2.7.16 - '@nuxt/config@2.18.1': + "@nuxt/config@2.18.1": dependencies: - '@nuxt/utils': 2.18.1 + "@nuxt/utils": 2.18.1 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -48480,11 +54530,11 @@ snapshots: std-env: 3.10.0 ufo: 1.6.4 - '@nuxt/core@2.18.1': + "@nuxt/core@2.18.1": dependencies: - '@nuxt/config': 2.18.1 - '@nuxt/server': 2.18.1 - '@nuxt/utils': 2.18.1 + "@nuxt/config": 2.18.1 + "@nuxt/server": 2.18.1 + "@nuxt/utils": 2.18.1 consola: 3.4.2 fs-extra: 11.3.5 hash-sum: 2.0.0 @@ -48493,34 +54543,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@nuxt/devalue@2.0.2': {} + "@nuxt/devalue@2.0.2": {} - '@nuxt/devtools-kit@3.2.4(magicast@0.5.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@nuxt/devtools-kit@3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@nuxt/kit': 4.4.6(magicast@0.5.3) + "@nuxt/kit": 4.4.8(magicast@0.5.3) execa: 8.0.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-wizard@3.2.4': + "@nuxt/devtools-wizard@3.2.4": dependencies: - '@clack/prompts': 1.4.0 + "@clack/prompts": 1.5.1 consola: 3.4.2 diff: 8.0.4 execa: 8.0.1 magicast: 0.5.3 pathe: 2.0.3 pkg-types: 2.3.1 - semver: 7.8.1 + semver: 7.8.4 - '@nuxt/devtools@3.2.4(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3))': + "@nuxt/devtools@3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@nuxt/devtools-wizard': 3.2.4 - '@nuxt/kit': 4.4.6(magicast@0.5.3) - '@vue/devtools-core': 8.1.2(vue@3.5.34(typescript@6.0.3)) - '@vue/devtools-kit': 8.1.2 + "@nuxt/devtools-kit": 3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@nuxt/devtools-wizard": 3.2.4 + "@nuxt/kit": 4.4.8(magicast@0.5.3) + "@vue/devtools-core": 8.1.3(vue@3.5.38(typescript@6.0.3)) + "@vue/devtools-kit": 8.1.3 birpc: 4.0.0 consola: 3.4.2 destr: 2.0.5 @@ -48531,22 +54581,22 @@ snapshots: hookable: 6.1.1 image-meta: 0.2.2 is-installed-globally: 1.0.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 local-pkg: 1.2.1 magicast: 0.5.3 - nypm: 0.6.6 + nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 - semver: 7.8.1 - simple-git: 3.36.0 + semver: 7.8.4 + simple-git: 3.36.0(supports-color@8.1.1) sirv: 3.0.2 structured-clone-es: 2.0.0 - tinyglobby: 0.2.16 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.6(magicast@0.5.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.4.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) + tinyglobby: 0.2.17 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.4.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) which: 6.0.1 ws: 8.21.0 transitivePeerDependencies: @@ -48555,17 +54605,17 @@ snapshots: - utf-8-validate - vue - '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': + "@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))": dependencies: chalk: 2.4.2 consola: 3.4.2 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - '@nuxt/generator@2.18.1': + "@nuxt/generator@2.18.1": dependencies: - '@nuxt/utils': 2.18.1 + "@nuxt/utils": 2.18.1 chalk: 4.1.2 consola: 3.4.2 defu: 6.1.7 @@ -48575,7 +54625,7 @@ snapshots: node-html-parser: 6.1.13 ufo: 1.6.4 - '@nuxt/kit@3.21.6(magicast@0.5.3)': + "@nuxt/kit@3.21.8(magicast@0.5.3)": dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -48593,15 +54643,15 @@ snapshots: pkg-types: 2.3.1 rc9: 3.0.1 scule: 1.3.0 - semver: 7.8.1 - tinyglobby: 0.2.16 + semver: 7.8.4 + tinyglobby: 0.2.17 ufo: 1.6.4 unctx: 2.5.0 untyped: 2.0.0 transitivePeerDependencies: - magicast - '@nuxt/kit@4.4.6(magicast@0.5.3)': + "@nuxt/kit@4.4.8(magicast@0.5.3)": dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -48618,15 +54668,15 @@ snapshots: pkg-types: 2.3.1 rc9: 3.0.1 scule: 1.3.0 - semver: 7.8.1 - tinyglobby: 0.2.16 + semver: 7.8.4 + tinyglobby: 0.2.17 ufo: 1.6.4 unctx: 2.5.0 untyped: 2.0.0 transitivePeerDependencies: - magicast - '@nuxt/loading-screen@2.0.4': + "@nuxt/loading-screen@2.0.4": dependencies: connect: 3.7.0 defu: 5.0.1 @@ -48636,12 +54686,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@nuxt/nitro-server@3.21.6(db0@0.3.4)(encoding@0.1.13)(ioredis@5.10.1)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2)': + "@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2)": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + "@nuxt/devalue": 2.0.2 + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -48653,8 +54703,8 @@ snapshots: impound: 1.1.5 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(xml2js@0.6.2) - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(xml2js@0.6.2) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -48662,27 +54712,27 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unctx: 2.5.0 - unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) - vue: 3.5.34(typescript@6.0.3) + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" - aws4fetch - bare-abort-controller - bare-buffer @@ -48704,12 +54754,12 @@ snapshots: - uploadthing - xml2js - '@nuxt/nitro-server@3.21.6(db0@0.3.4)(encoding@0.1.13)(ioredis@5.10.1)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(typescript@6.0.3)(xml2js@0.6.2)': + "@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2)": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + "@nuxt/devalue": 2.0.2 + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -48721,8 +54771,8 @@ snapshots: impound: 1.1.5 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(xml2js@0.6.2) - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(xml2js@0.6.2) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -48730,27 +54780,27 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unctx: 2.5.0 - unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) - vue: 3.5.34(typescript@6.0.3) + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" - aws4fetch - bare-abort-controller - bare-buffer @@ -48772,12 +54822,12 @@ snapshots: - uploadthing - xml2js - '@nuxt/nitro-server@4.4.6(55238389370ad2821931107119bc4c3a)': + "@nuxt/nitro-server@4.4.8(c4ff195fe9034f1d7cb8c0ada1da132d)": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.4.6(magicast@0.5.3) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + "@nuxt/devalue": 2.0.2 + "@nuxt/kit": 4.4.8(magicast@0.5.3) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -48789,40 +54839,40 @@ snapshots: impound: 1.1.5 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(xml2js@0.6.2) - nuxt: 4.4.6(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4))(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) - nypm: 0.6.6 + nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.133.0)(rolldown@1.1.1)(xml2js@0.6.2) + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 rou3: 0.8.1 std-env: 4.1.0 ufo: 1.6.4 unctx: 2.5.0 - unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) - vue: 3.5.34(typescript@6.0.3) + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 optionalDependencies: - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@rollup/plugin-babel': 7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@8.0.1) + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@8.0.1) + "@rollup/plugin-babel": 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0) + transitivePeerDependencies: + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" - aws4fetch - bare-abort-controller - bare-buffer @@ -48844,31 +54894,31 @@ snapshots: - uploadthing - xml2js - '@nuxt/opencollective@0.4.1': + "@nuxt/opencollective@0.4.1": dependencies: consola: 3.4.2 - '@nuxt/schema@3.21.6': + "@nuxt/schema@3.21.8": dependencies: - '@vue/shared': 3.5.34 + "@vue/shared": 3.5.38 defu: 6.1.7 pathe: 2.0.3 pkg-types: 2.3.1 std-env: 4.1.0 - '@nuxt/schema@4.4.6': + "@nuxt/schema@4.4.8": dependencies: - '@vue/shared': 3.5.34 + "@vue/shared": 3.5.38 defu: 6.1.7 pathe: 2.0.3 pkg-types: 2.3.1 std-env: 4.1.0 - '@nuxt/server@2.18.1': + "@nuxt/server@2.18.1": dependencies: - '@nuxt/utils': 2.18.1 - '@nuxt/vue-renderer': 2.18.1 - '@nuxtjs/youch': 4.2.3 + "@nuxt/utils": 2.18.1 + "@nuxt/vue-renderer": 2.18.1 + "@nuxtjs/youch": 4.2.3 compression: 1.8.1 connect: 3.7.0 consola: 3.4.2 @@ -48876,7 +54926,7 @@ snapshots: fresh: 0.5.2 fs-extra: 11.3.5 ip: 2.0.1 - launch-editor-middleware: 2.13.2 + launch-editor-middleware: 2.14.1 on-headers: 1.1.0 pify: 5.0.0 serve-placeholder: 2.0.2 @@ -48886,7 +54936,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@nuxt/telemetry@1.5.0(encoding@0.1.13)': + "@nuxt/telemetry@1.5.0(encoding@0.1.13)": dependencies: arg: 5.0.2 chalk: 4.1.2 @@ -48908,56 +54958,56 @@ snapshots: transitivePeerDependencies: - encoding - '@nuxt/telemetry@2.8.0(@nuxt/kit@3.21.6(magicast@0.5.3))': + "@nuxt/telemetry@2.8.0(@nuxt/kit@3.21.8(magicast@0.5.3))": dependencies: - '@nuxt/kit': 3.21.6(magicast@0.5.3) + "@nuxt/kit": 3.21.8(magicast@0.5.3) citty: 0.2.2 consola: 3.4.2 ofetch: 2.0.0-alpha.3 rc9: 3.0.1 std-env: 4.1.0 - '@nuxt/telemetry@2.8.0(@nuxt/kit@4.4.6(magicast@0.5.3))': + "@nuxt/telemetry@2.8.0(@nuxt/kit@4.4.8(magicast@0.5.3))": dependencies: - '@nuxt/kit': 4.4.6(magicast@0.5.3) + "@nuxt/kit": 4.4.8(magicast@0.5.3) citty: 0.2.2 consola: 3.4.2 ofetch: 2.0.0-alpha.3 rc9: 3.0.1 std-env: 4.1.0 - '@nuxt/types@2.18.1': - dependencies: - '@types/babel__core': 7.20.5 - '@types/compression': 1.7.5 - '@types/connect': 3.4.38 - '@types/etag': 1.8.3 - '@types/file-loader': 5.0.4 - '@types/html-minifier-terser': 7.0.2 - '@types/less': 3.0.6 - '@types/node': 16.18.126 - '@types/optimize-css-assets-webpack-plugin': 5.0.8 - '@types/pug': 2.0.10 - '@types/serve-static': 1.15.7 - '@types/terser-webpack-plugin': 4.2.1 - '@types/webpack': 4.41.40 - '@types/webpack-bundle-analyzer': 3.9.5 - '@types/webpack-hot-middleware': 2.25.5 - - '@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': - dependencies: - '@nuxt/types': 2.18.1 + "@nuxt/types@2.18.1": + dependencies: + "@types/babel__core": 7.20.5 + "@types/compression": 1.7.5 + "@types/connect": 3.4.38 + "@types/etag": 1.8.3 + "@types/file-loader": 5.0.4 + "@types/html-minifier-terser": 7.0.2 + "@types/less": 3.0.6 + "@types/node": 16.18.126 + "@types/optimize-css-assets-webpack-plugin": 5.0.8 + "@types/pug": 2.0.10 + "@types/serve-static": 1.15.7 + "@types/terser-webpack-plugin": 4.2.1 + "@types/webpack": 4.41.40 + "@types/webpack-bundle-analyzer": 3.9.5 + "@types/webpack-hot-middleware": 2.25.5 + + "@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))": + dependencies: + "@nuxt/types": 2.18.1 consola: 3.4.2 defu: 6.1.7 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ts-loader: 8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + ts-loader: 8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) typescript: 6.0.3 transitivePeerDependencies: - eslint - vue-template-compiler - webpack - '@nuxt/utils@2.18.1': + "@nuxt/utils@2.18.1": dependencies: consola: 3.4.2 create-require: 1.1.1 @@ -48966,18 +55016,18 @@ snapshots: jiti: 1.21.7 lodash: 4.18.1 proper-lockfile: 4.1.2 - semver: 7.8.1 + semver: 7.8.4 serialize-javascript: 6.0.2 signal-exit: 4.1.0 ua-parser-js: 1.0.41 ufo: 1.6.4 - '@nuxt/vite-builder@3.21.6(a814d6651e761b9225bd9f861d7a3641)': + "@nuxt/vite-builder@3.21.8(7107088f52ca05d3b951cdb5018e32bb)": dependencies: - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) - '@vitejs/plugin-vue': 6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@rollup/plugin-replace": 6.0.3(rollup@4.62.0) + "@vitejs/plugin-vue": 6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vitejs/plugin-vue-jsx": 5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) autoprefixer: 10.5.0(postcss@8.5.15) consola: 3.4.2 cssnano: 7.1.9(postcss@8.5.15) @@ -48991,8 +55041,8 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) - nypm: 0.6.6 + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 @@ -49002,17 +55052,17 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-node: 5.3.0(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-checker: 0.13.0(eslint@10.4.1(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3)) - vue: 3.5.34(typescript@6.0.3) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-node: 5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-checker: 0.13.0(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 optionalDependencies: - rolldown: 1.0.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + rolldown: 1.1.1 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' + - "@biomejs/biome" + - "@types/node" - eslint - less - lightningcss @@ -49035,12 +55085,12 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@3.21.6(af0c9bed837661d268aa6459792fb775)': + "@nuxt/vite-builder@3.21.8(9a2ba7ad2787a68a46599744ee88c30c)": dependencies: - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) - '@vitejs/plugin-vue': 6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@rollup/plugin-replace": 6.0.3(rollup@4.62.0) + "@vitejs/plugin-vue": 6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vitejs/plugin-vue-jsx": 5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) autoprefixer: 10.5.0(postcss@8.5.15) consola: 3.4.2 cssnano: 7.1.9(postcss@8.5.15) @@ -49054,8 +55104,8 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) - nypm: 0.6.6 + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 @@ -49065,17 +55115,17 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-node: 5.3.0(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-checker: 0.13.0(eslint@10.4.1(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3)) - vue: 3.5.34(typescript@6.0.3) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-node: 5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-checker: 0.13.0(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 optionalDependencies: - rolldown: 1.0.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + rolldown: 1.1.1 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' + - "@biomejs/biome" + - "@types/node" - eslint - less - lightningcss @@ -49098,15 +55148,15 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.4.6(15c818e1e29bbe73447d2c89c14cd368)': + "@nuxt/vite-builder@4.4.8(3f3fa0b1816a1dc51b95898b17635868)": dependencies: - '@nuxt/kit': 4.4.6(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) - '@vitejs/plugin-vue': 6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) + "@nuxt/kit": 4.4.8(magicast@0.5.3) + "@rollup/plugin-replace": 6.0.3(rollup@4.62.0) + "@vitejs/plugin-vue": 6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@vitejs/plugin-vue-jsx": 5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) autoprefixer: 10.5.0(postcss@8.5.15) consola: 3.4.2 - cssnano: 8.0.1(postcss@8.5.15) + cssnano: 8.0.2(postcss@8.5.15) defu: 6.1.7 escape-string-regexp: 5.0.0 exsolve: 1.0.8 @@ -49116,8 +55166,8 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.4.6(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4))(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) - nypm: 0.6.6 + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 pathe: 2.0.3 pkg-types: 2.3.1 postcss: 8.5.15 @@ -49125,19 +55175,19 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-node: 5.3.0(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-checker: 0.13.0(eslint@10.4.1(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3)) - vue: 3.5.34(typescript@6.0.3) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-node: 5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-checker: 0.14.1(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) vue-bundle-renderer: 2.2.0 optionalDependencies: - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - rolldown: 1.0.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@8.0.1) + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@8.0.1) + rolldown: 1.1.1 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' + - "@biomejs/biome" + - "@types/node" - eslint - less - lightningcss @@ -49155,12 +55205,10 @@ snapshots: - terser - tsx - typescript - - vls - - vti - vue-tsc - yaml - '@nuxt/vue-app@2.18.1': + "@nuxt/vue-app@2.18.1": dependencies: node-fetch-native: 1.6.7 ufo: 1.6.4 @@ -49173,10 +55221,10 @@ snapshots: vue-template-compiler: 2.7.16 vuex: 3.6.2(vue@2.7.16) - '@nuxt/vue-renderer@2.18.1': + "@nuxt/vue-renderer@2.18.1": dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/utils': 2.18.1 + "@nuxt/devalue": 2.0.2 + "@nuxt/utils": 2.18.1 consola: 3.4.2 defu: 6.1.7 fs-extra: 11.3.5 @@ -49187,58 +55235,58 @@ snapshots: vue-meta: 2.4.0 vue-server-renderer: 2.7.16(patch_hash=7374e4bf5b7956d7097feec494aaea43bf8f6a02e2b64e8a3cc57e19c2f65132) - '@nuxt/webpack@2.18.1(@vue/compiler-sfc@3.5.34)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@nuxt/webpack@2.18.1(@vue/compiler-sfc@3.5.38)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@babel/core': 7.29.0 - '@nuxt/babel-preset-app': 2.18.1(vue@2.7.16) - '@nuxt/friendly-errors-webpack-plugin': 2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@nuxt/utils': 2.18.1 - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - caniuse-lite: 1.0.30001793 + "@babel/core": 7.29.0 + "@nuxt/babel-preset-app": 2.18.1(vue@2.7.16) + "@nuxt/friendly-errors-webpack-plugin": 2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@nuxt/utils": 2.18.1 + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + caniuse-lite: 1.0.30001799 consola: 3.4.2 - css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) cssnano: 7.1.9(postcss@8.5.15) eventsource-polyfill: 0.9.6 - extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) glob: 8.1.0 - hard-source-webpack-plugin: 0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + hard-source-webpack-plugin: 0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 2.0.0 - html-webpack-plugin: 4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + html-webpack-plugin: 4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) lodash: 4.18.1 - memfs: 4.57.2(tslib@2.8.1) + memfs: 4.57.7(tslib@2.8.1) mkdirp: 0.5.6 - optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) pify: 5.0.0 pnp-webpack-plugin: 1.7.0(typescript@6.0.3) postcss: 8.5.15 postcss-import: 15.1.0(postcss@8.5.15) postcss-import-resolver: 2.0.0 - postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) postcss-preset-env: 9.6.0(postcss@8.5.15) postcss-url: 10.1.4(postcss@8.5.15) - semver: 7.8.1 + semver: 7.8.4 std-env: 3.10.0 - style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - thread-loader: 3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - time-fix-plugin: 2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + thread-loader: 3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + time-fix-plugin: 2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ufo: 1.6.4 upath: 2.0.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - vue-loader: 15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + vue-loader: 15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-style-loader: 4.1.3 vue-template-compiler: 2.7.16 - watchpack: 2.5.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + watchpack: 2.5.2 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-bundle-analyzer: 4.10.2 - webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) webpack-hot-middleware: 2.26.1 webpack-node-externals: 3.0.0 - webpackbar: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpackbar: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) transitivePeerDependencies: - - '@vue/compiler-sfc' + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -49302,58 +55350,58 @@ snapshots: - webpack-command - whiskers - '@nuxt/webpack@2.18.1(@vue/compiler-sfc@3.5.34)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@nuxt/webpack@2.18.1(@vue/compiler-sfc@3.5.38)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@babel/core': 7.29.0 - '@nuxt/babel-preset-app': 2.18.1(vue@2.7.16) - '@nuxt/friendly-errors-webpack-plugin': 2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@nuxt/utils': 2.18.1 - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - caniuse-lite: 1.0.30001793 + "@babel/core": 7.29.0 + "@nuxt/babel-preset-app": 2.18.1(vue@2.7.16) + "@nuxt/friendly-errors-webpack-plugin": 2.6.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@nuxt/utils": 2.18.1 + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + caniuse-lite: 1.0.30001799 consola: 3.4.2 - css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) cssnano: 7.1.9(postcss@8.5.15) eventsource-polyfill: 0.9.6 - extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) glob: 8.1.0 - hard-source-webpack-plugin: 0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + hard-source-webpack-plugin: 0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 2.0.0 - html-webpack-plugin: 4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + html-webpack-plugin: 4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) lodash: 4.18.1 - memfs: 4.57.2(tslib@2.8.1) + memfs: 4.57.7(tslib@2.8.1) mkdirp: 0.5.6 - optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) pify: 5.0.0 pnp-webpack-plugin: 1.7.0(typescript@6.0.3) postcss: 8.5.15 postcss-import: 15.1.0(postcss@8.5.15) postcss-import-resolver: 2.0.0 - postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) postcss-preset-env: 9.6.0(postcss@8.5.15) postcss-url: 10.1.4(postcss@8.5.15) - semver: 7.8.1 + semver: 7.8.4 std-env: 3.10.0 - style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - thread-loader: 3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - time-fix-plugin: 2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + thread-loader: 3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + time-fix-plugin: 2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ufo: 1.6.4 upath: 2.0.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - vue-loader: 15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(lodash@4.18.1)(prettier@3.8.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + vue-loader: 15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(lodash@4.18.1)(prettier@3.8.4)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-style-loader: 4.1.3 vue-template-compiler: 2.7.16 - watchpack: 2.5.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + watchpack: 2.5.2 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-bundle-analyzer: 4.10.2 - webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) webpack-hot-middleware: 2.26.1 webpack-node-externals: 3.0.0 - webpackbar: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpackbar: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) transitivePeerDependencies: - - '@vue/compiler-sfc' + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -49417,266 +55465,266 @@ snapshots: - webpack-command - whiskers - '@nuxtjs/eslint-config-typescript@12.1.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@nuxtjs/eslint-config-typescript@12.1.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-vue: 9.33.0(eslint@10.4.1(jiti@2.7.0)) + "@nuxtjs/eslint-config": 12.0.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/eslint-plugin": 6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": 6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-vue: 9.33.0(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - typescript - '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0))': + "@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0))": dependencies: - eslint: 10.4.1(jiti@2.7.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@10.4.1(jiti@2.7.0)))(eslint-plugin-promise@6.6.0(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-n: 15.7.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-node: 11.1.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-promise: 6.6.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-unicorn: 44.0.2(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-vue: 9.33.0(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@10.5.0(jiti@2.7.0)))(eslint-plugin-promise@6.6.0(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-n: 15.7.0(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-node: 11.1.0(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-promise: 6.6.0(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-unicorn: 44.0.2(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-vue: 9.33.0(eslint@10.5.0(jiti@2.7.0)) local-pkg: 0.4.3 transitivePeerDependencies: - - '@typescript-eslint/parser' + - "@typescript-eslint/parser" - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - '@nuxtjs/eslint-module@4.1.0(eslint@10.4.1(jiti@2.7.0))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': + "@nuxtjs/eslint-module@4.1.0(eslint@10.5.0(jiti@2.7.0))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))": dependencies: - '@nuxt/kit': 3.21.6(magicast@0.5.3) + "@nuxt/kit": 3.21.8(magicast@0.5.3) chokidar: 3.6.0 - eslint: 10.4.1(jiti@2.7.0) - eslint-webpack-plugin: 4.2.0(eslint@10.4.1(jiti@2.7.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + eslint: 10.5.0(jiti@2.7.0) + eslint-webpack-plugin: 4.2.0(eslint@10.5.0(jiti@2.7.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) pathe: 1.1.2 - vite-plugin-eslint: 1.8.1(eslint@10.4.1(jiti@2.7.0))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite-plugin-eslint: 1.8.1(eslint@10.5.0(jiti@2.7.0))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) transitivePeerDependencies: - magicast - vite - webpack - '@nuxtjs/youch@4.2.3': + "@nuxtjs/youch@4.2.3": dependencies: cookie: 0.3.1 mustache: 2.3.2 stack-trace: 0.0.10 - '@nx/devkit@22.7.4(nx@22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40))': + "@nx/devkit@22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41))": dependencies: - '@zkochan/js-yaml': 0.0.7 + "@zkochan/js-yaml": 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.5 - nx: 22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) - semver: 7.8.1 + nx: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) + semver: 7.8.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/devkit@22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40))': + "@nx/devkit@23.0.0(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41))": dependencies: - '@zkochan/js-yaml': 0.0.7 + "@zkochan/js-yaml": 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.5 - nx: 22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) - semver: 7.8.1 + nx: 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) + semver: 7.8.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/js@22.7.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40))': - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@nx/devkit': 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@nx/workspace': 22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) - '@zkochan/js-yaml': 0.0.7 + "@nx/js@23.0.0(@babel/traverse@7.29.7)(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41))": + dependencies: + "@babel/core": 7.29.0 + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-class-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.29.7 + "@nx/devkit": 23.0.0(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)) + "@nx/workspace": 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) + "@zkochan/js-yaml": 0.0.7 babel-plugin-const-enum: 1.2.0(@babel/core@7.29.0) babel-plugin-macros: 3.1.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.29.0)(@babel/traverse@7.29.0) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.29.0)(@babel/traverse@7.29.7) chalk: 4.1.2 columnify: 1.6.0 detect-port: 2.1.0 ignore: 7.0.5 js-tokens: 4.0.0 - jsonc-parser: 3.2.0 + jsonc-parser: 3.3.1 npm-run-path: 4.0.1 picocolors: 1.1.1 picomatch: 4.0.4 - semver: 7.8.1 + semver: 7.8.4 source-map-support: 0.5.19 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tslib: 2.8.1 transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' + - "@babel/traverse" + - "@swc-node/register" + - "@swc/core" - debug - nx - supports-color - '@nx/nx-darwin-arm64@22.7.4': + "@nx/nx-darwin-arm64@22.7.5": optional: true - '@nx/nx-darwin-arm64@22.7.5': + "@nx/nx-darwin-arm64@23.0.0": optional: true - '@nx/nx-darwin-x64@22.7.4': + "@nx/nx-darwin-x64@22.7.5": optional: true - '@nx/nx-darwin-x64@22.7.5': + "@nx/nx-darwin-x64@23.0.0": optional: true - '@nx/nx-freebsd-x64@22.7.4': + "@nx/nx-freebsd-x64@22.7.5": optional: true - '@nx/nx-freebsd-x64@22.7.5': + "@nx/nx-freebsd-x64@23.0.0": optional: true - '@nx/nx-linux-arm-gnueabihf@22.7.4': + "@nx/nx-linux-arm-gnueabihf@22.7.5": optional: true - '@nx/nx-linux-arm-gnueabihf@22.7.5': + "@nx/nx-linux-arm-gnueabihf@23.0.0": optional: true - '@nx/nx-linux-arm64-gnu@22.7.4': + "@nx/nx-linux-arm64-gnu@22.7.5": optional: true - '@nx/nx-linux-arm64-gnu@22.7.5': + "@nx/nx-linux-arm64-gnu@23.0.0": optional: true - '@nx/nx-linux-arm64-musl@22.7.4': + "@nx/nx-linux-arm64-musl@22.7.5": optional: true - '@nx/nx-linux-arm64-musl@22.7.5': + "@nx/nx-linux-arm64-musl@23.0.0": optional: true - '@nx/nx-linux-x64-gnu@22.7.4': + "@nx/nx-linux-x64-gnu@22.7.5": optional: true - '@nx/nx-linux-x64-gnu@22.7.5': + "@nx/nx-linux-x64-gnu@23.0.0": optional: true - '@nx/nx-linux-x64-musl@22.7.4': + "@nx/nx-linux-x64-musl@22.7.5": optional: true - '@nx/nx-linux-x64-musl@22.7.5': + "@nx/nx-linux-x64-musl@23.0.0": optional: true - '@nx/nx-win32-arm64-msvc@22.7.4': + "@nx/nx-win32-arm64-msvc@22.7.5": optional: true - '@nx/nx-win32-arm64-msvc@22.7.5': + "@nx/nx-win32-arm64-msvc@23.0.0": optional: true - '@nx/nx-win32-x64-msvc@22.7.4': + "@nx/nx-win32-x64-msvc@22.7.5": optional: true - '@nx/nx-win32-x64-msvc@22.7.5': + "@nx/nx-win32-x64-msvc@23.0.0": optional: true - '@nx/workspace@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)': + "@nx/workspace@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)": dependencies: - '@nx/devkit': 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@zkochan/js-yaml': 0.0.7 + "@nx/devkit": 23.0.0(nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)) + "@zkochan/js-yaml": 0.0.7 chalk: 4.1.2 enquirer: 2.3.6 - nx: 22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) + nx: 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) picomatch: 4.0.4 - semver: 7.8.1 + semver: 7.8.4 tslib: 2.8.1 yargs-parser: 21.1.1 transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' + - "@swc-node/register" + - "@swc/core" - debug - '@octokit/auth-token@4.0.0': {} + "@octokit/auth-token@4.0.0": {} - '@octokit/core@5.2.2': + "@octokit/core@5.2.2": dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 + "@octokit/auth-token": 4.0.0 + "@octokit/graphql": 7.1.1 + "@octokit/request": 8.4.1 + "@octokit/request-error": 5.1.1 + "@octokit/types": 13.10.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 - '@octokit/endpoint@9.0.6': + "@octokit/endpoint@9.0.6": dependencies: - '@octokit/types': 13.10.0 + "@octokit/types": 13.10.0 universal-user-agent: 6.0.1 - '@octokit/graphql@7.1.1': + "@octokit/graphql@7.1.1": dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.10.0 + "@octokit/request": 8.4.1 + "@octokit/types": 13.10.0 universal-user-agent: 6.0.1 - '@octokit/openapi-types@24.2.0': {} + "@octokit/openapi-types@24.2.0": {} - '@octokit/plugin-enterprise-rest@6.0.1': {} + "@octokit/plugin-enterprise-rest@6.0.1": {} - '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': + "@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)": dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 + "@octokit/core": 5.2.2 + "@octokit/types": 13.10.0 - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': + "@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)": dependencies: - '@octokit/core': 5.2.2 + "@octokit/core": 5.2.2 - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': + "@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)": dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 + "@octokit/core": 5.2.2 + "@octokit/types": 13.10.0 - '@octokit/request-error@5.1.1': + "@octokit/request-error@5.1.1": dependencies: - '@octokit/types': 13.10.0 + "@octokit/types": 13.10.0 deprecation: 2.3.1 once: 1.4.0 - '@octokit/request@8.4.1': + "@octokit/request@8.4.1": dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 + "@octokit/endpoint": 9.0.6 + "@octokit/request-error": 5.1.1 + "@octokit/types": 13.10.0 universal-user-agent: 6.0.1 - '@octokit/rest@20.1.2': + "@octokit/rest@20.1.2": dependencies: - '@octokit/core': 5.2.2 - '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) - '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) + "@octokit/core": 5.2.2 + "@octokit/plugin-paginate-rest": 11.4.4-cjs.2(@octokit/core@5.2.2) + "@octokit/plugin-request-log": 4.0.1(@octokit/core@5.2.2) + "@octokit/plugin-rest-endpoint-methods": 13.3.2-cjs.1(@octokit/core@5.2.2) - '@octokit/types@13.10.0': + "@octokit/types@13.10.0": dependencies: - '@octokit/openapi-types': 24.2.0 + "@octokit/openapi-types": 24.2.0 - '@one-ini/wasm@0.1.1': {} + "@one-ini/wasm@0.1.1": {} - '@one-ini/wasm@0.2.1': {} + "@one-ini/wasm@0.2.1": {} - '@open-wc/building-utils@2.21.1': + "@open-wc/building-utils@2.21.1": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) - '@webcomponents/shadycss': 1.11.2 - '@webcomponents/webcomponentsjs': 2.8.0 + "@babel/core": 7.29.0 + "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.29.0) + "@webcomponents/shadycss": 1.11.2 + "@webcomponents/webcomponentsjs": 2.8.0 arrify: 2.0.1 browserslist: 4.28.2 chokidar: 3.6.0 @@ -49702,11 +55750,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@open-wc/dedupe-mixin@1.4.0': {} + "@open-wc/dedupe-mixin@2.0.1": {} - '@open-wc/karma-esm@3.0.9(encoding@0.1.13)': + "@open-wc/karma-esm@3.0.9(encoding@0.1.13)": dependencies: - '@open-wc/building-utils': 2.21.1 + "@open-wc/building-utils": 2.21.1 babel-plugin-istanbul: 5.2.0 chokidar: 3.6.0 deepmerge: 4.3.1 @@ -49714,43 +55762,43 @@ snapshots: minimatch: 3.1.5 node-fetch: 2.7.0(encoding@0.1.13) polyfills-loader: 1.7.6 - portfinder: 1.0.38 + portfinder: 1.0.38(supports-color@8.1.1) request: 2.88.2 transitivePeerDependencies: - encoding - supports-color - '@open-wc/scoped-elements@2.2.4': + "@open-wc/scoped-elements@3.0.10": dependencies: - '@lit/reactive-element': 2.1.2 - '@open-wc/dedupe-mixin': 1.4.0 + "@open-wc/dedupe-mixin": 2.0.1 + lit: 3.3.3 - '@open-wc/semantic-dom-diff@0.20.1': + "@open-wc/semantic-dom-diff@0.20.1": dependencies: - '@types/chai': 4.3.20 - '@web/test-runner-commands': 0.9.0 + "@types/chai": 4.3.20 + "@web/test-runner-commands": 0.9.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@open-wc/testing-helpers@2.3.2': + "@open-wc/testing-helpers@3.0.1": dependencies: - '@open-wc/scoped-elements': 2.2.4 + "@open-wc/scoped-elements": 3.0.10 lit: 3.3.3 lit-html: 3.3.3 - '@open-wc/testing-karma@4.0.9(encoding@0.1.13)': + "@open-wc/testing-karma@4.0.9(encoding@0.1.13)(supports-color@8.1.1)": dependencies: - '@open-wc/karma-esm': 3.0.9(encoding@0.1.13) - '@types/karma': 5.0.1 - '@types/karma-coverage-istanbul-reporter': 2.1.4 - '@types/karma-mocha': 1.3.4 - '@types/karma-mocha-reporter': 2.2.4 - axe-core: 4.11.4 + "@open-wc/karma-esm": 3.0.9(encoding@0.1.13) + "@types/karma": 5.0.1(supports-color@8.1.1) + "@types/karma-coverage-istanbul-reporter": 2.1.4 + "@types/karma-mocha": 1.3.4 + "@types/karma-mocha-reporter": 2.2.4 + axe-core: 4.12.1 karma: 5.2.3 karma-chrome-launcher: 3.2.0 - karma-coverage: 2.2.1 + karma-coverage: 2.2.1(supports-color@8.1.1) karma-mocha: 1.3.0 karma-mocha-reporter: 2.2.5(karma@5.2.3) karma-mocha-snapshot: 0.2.1 @@ -49764,840 +55812,1026 @@ snapshots: - supports-color - utf-8-validate - '@open-wc/testing@3.2.2': + "@open-wc/testing@4.0.0": dependencies: - '@esm-bundle/chai': 4.3.4-fix.0 - '@open-wc/semantic-dom-diff': 0.20.1 - '@open-wc/testing-helpers': 2.3.2 - '@types/chai-dom': 1.11.3 - '@types/sinon-chai': 3.2.12 + "@esm-bundle/chai": 4.3.4-fix.0 + "@open-wc/semantic-dom-diff": 0.20.1 + "@open-wc/testing-helpers": 3.0.1 + "@types/chai-dom": 1.11.3 + "@types/sinon-chai": 3.2.12 chai-a11y-axe: 1.5.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@opentelemetry/api-logs@0.57.2': + "@opentelemetry/api-logs@0.57.2": dependencies: - '@opentelemetry/api': 1.9.1 + "@opentelemetry/api": 1.9.1 - '@opentelemetry/api@1.9.1': {} + "@opentelemetry/api@1.9.1": {} - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 + "@opentelemetry/api": 1.9.1 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.28.0 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/semantic-conventions": 1.28.0 - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@types/connect': 3.4.38 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@types/connect": 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.28.0 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.28.0 forwarded-parse: 2.1.2 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/redis-common": 0.36.2 + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@opentelemetry/sql-common": 0.40.1(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@types/mysql': 2.15.26 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@types/mysql": 2.15.26 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.1) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.6 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@opentelemetry/sql-common": 0.40.1(@opentelemetry/api@1.9.1) + "@types/pg": 8.6.1 + "@types/pg-pool": 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.41.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/redis-common": 0.36.2 + "@opentelemetry/semantic-conventions": 1.41.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@types/tedious': 4.0.14 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@types/tedious": 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1)': + "@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.57.2 - '@types/shimmer': 1.2.0 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/api-logs": 0.57.2 + "@types/shimmer": 1.2.0 import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 - semver: 7.8.1 + require-in-the-middle: 7.5.2(supports-color@8.1.1) + semver: 7.8.4 shimmer: 1.2.1 transitivePeerDependencies: - supports-color - '@opentelemetry/redis-common@0.36.2': {} + "@opentelemetry/redis-common@0.36.2": {} - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.28.0 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/semantic-conventions": 1.28.0 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.28.0 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/semantic-conventions": 1.28.0 - '@opentelemetry/semantic-conventions@1.28.0': {} + "@opentelemetry/semantic-conventions@1.28.0": {} - '@opentelemetry/semantic-conventions@1.41.1': {} + "@opentelemetry/semantic-conventions@1.41.1": {} - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.1)': + "@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) - '@oslojs/encoding@1.1.0': {} + "@oslojs/encoding@1.1.0": {} + + "@oxc-minify/binding-android-arm-eabi@0.125.0": + optional: true + + "@oxc-minify/binding-android-arm-eabi@0.132.0": + optional: true - '@oxc-minify/binding-android-arm-eabi@0.125.0': + "@oxc-minify/binding-android-arm-eabi@0.133.0": optional: true - '@oxc-minify/binding-android-arm-eabi@0.131.0': + "@oxc-minify/binding-android-arm64@0.125.0": optional: true - '@oxc-minify/binding-android-arm64@0.125.0': + "@oxc-minify/binding-android-arm64@0.132.0": optional: true - '@oxc-minify/binding-android-arm64@0.131.0': + "@oxc-minify/binding-android-arm64@0.133.0": optional: true - '@oxc-minify/binding-darwin-arm64@0.125.0': + "@oxc-minify/binding-darwin-arm64@0.125.0": optional: true - '@oxc-minify/binding-darwin-arm64@0.131.0': + "@oxc-minify/binding-darwin-arm64@0.132.0": optional: true - '@oxc-minify/binding-darwin-x64@0.125.0': + "@oxc-minify/binding-darwin-arm64@0.133.0": optional: true - '@oxc-minify/binding-darwin-x64@0.131.0': + "@oxc-minify/binding-darwin-x64@0.125.0": optional: true - '@oxc-minify/binding-freebsd-x64@0.125.0': + "@oxc-minify/binding-darwin-x64@0.132.0": optional: true - '@oxc-minify/binding-freebsd-x64@0.131.0': + "@oxc-minify/binding-darwin-x64@0.133.0": optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.125.0': + "@oxc-minify/binding-freebsd-x64@0.125.0": optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.131.0': + "@oxc-minify/binding-freebsd-x64@0.132.0": optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.125.0': + "@oxc-minify/binding-freebsd-x64@0.133.0": optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.131.0': + "@oxc-minify/binding-linux-arm-gnueabihf@0.125.0": optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.125.0': + "@oxc-minify/binding-linux-arm-gnueabihf@0.132.0": optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.131.0': + "@oxc-minify/binding-linux-arm-gnueabihf@0.133.0": optional: true - '@oxc-minify/binding-linux-arm64-musl@0.125.0': + "@oxc-minify/binding-linux-arm-musleabihf@0.125.0": optional: true - '@oxc-minify/binding-linux-arm64-musl@0.131.0': + "@oxc-minify/binding-linux-arm-musleabihf@0.132.0": optional: true - '@oxc-minify/binding-linux-ppc64-gnu@0.125.0': + "@oxc-minify/binding-linux-arm-musleabihf@0.133.0": optional: true - '@oxc-minify/binding-linux-ppc64-gnu@0.131.0': + "@oxc-minify/binding-linux-arm64-gnu@0.125.0": optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.125.0': + "@oxc-minify/binding-linux-arm64-gnu@0.132.0": optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.131.0': + "@oxc-minify/binding-linux-arm64-gnu@0.133.0": optional: true - '@oxc-minify/binding-linux-riscv64-musl@0.125.0': + "@oxc-minify/binding-linux-arm64-musl@0.125.0": optional: true - '@oxc-minify/binding-linux-riscv64-musl@0.131.0': + "@oxc-minify/binding-linux-arm64-musl@0.132.0": optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.125.0': + "@oxc-minify/binding-linux-arm64-musl@0.133.0": optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.131.0': + "@oxc-minify/binding-linux-ppc64-gnu@0.125.0": optional: true - '@oxc-minify/binding-linux-x64-gnu@0.125.0': + "@oxc-minify/binding-linux-ppc64-gnu@0.132.0": optional: true - '@oxc-minify/binding-linux-x64-gnu@0.131.0': + "@oxc-minify/binding-linux-ppc64-gnu@0.133.0": optional: true - '@oxc-minify/binding-linux-x64-musl@0.125.0': + "@oxc-minify/binding-linux-riscv64-gnu@0.125.0": optional: true - '@oxc-minify/binding-linux-x64-musl@0.131.0': + "@oxc-minify/binding-linux-riscv64-gnu@0.132.0": optional: true - '@oxc-minify/binding-openharmony-arm64@0.125.0': + "@oxc-minify/binding-linux-riscv64-gnu@0.133.0": optional: true - '@oxc-minify/binding-openharmony-arm64@0.131.0': + "@oxc-minify/binding-linux-riscv64-musl@0.125.0": optional: true - '@oxc-minify/binding-wasm32-wasi@0.125.0': + "@oxc-minify/binding-linux-riscv64-musl@0.132.0": + optional: true + + "@oxc-minify/binding-linux-riscv64-musl@0.133.0": + optional: true + + "@oxc-minify/binding-linux-s390x-gnu@0.125.0": + optional: true + + "@oxc-minify/binding-linux-s390x-gnu@0.132.0": + optional: true + + "@oxc-minify/binding-linux-s390x-gnu@0.133.0": + optional: true + + "@oxc-minify/binding-linux-x64-gnu@0.125.0": + optional: true + + "@oxc-minify/binding-linux-x64-gnu@0.132.0": + optional: true + + "@oxc-minify/binding-linux-x64-gnu@0.133.0": + optional: true + + "@oxc-minify/binding-linux-x64-musl@0.125.0": + optional: true + + "@oxc-minify/binding-linux-x64-musl@0.132.0": + optional: true + + "@oxc-minify/binding-linux-x64-musl@0.133.0": + optional: true + + "@oxc-minify/binding-openharmony-arm64@0.125.0": + optional: true + + "@oxc-minify/binding-openharmony-arm64@0.132.0": + optional: true + + "@oxc-minify/binding-openharmony-arm64@0.133.0": + optional: true + + "@oxc-minify/binding-wasm32-wasi@0.125.0": + dependencies: + "@emnapi/core": 1.9.2 + "@emnapi/runtime": 1.9.2 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + "@oxc-minify/binding-wasm32-wasi@0.132.0": dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-minify/binding-wasm32-wasi@0.131.0': + "@oxc-minify/binding-wasm32-wasi@0.133.0": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@oxc-minify/binding-win32-arm64-msvc@0.125.0": optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.125.0': + "@oxc-minify/binding-win32-arm64-msvc@0.132.0": optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.131.0': + "@oxc-minify/binding-win32-arm64-msvc@0.133.0": optional: true - '@oxc-minify/binding-win32-ia32-msvc@0.125.0': + "@oxc-minify/binding-win32-ia32-msvc@0.125.0": optional: true - '@oxc-minify/binding-win32-ia32-msvc@0.131.0': + "@oxc-minify/binding-win32-ia32-msvc@0.132.0": optional: true - '@oxc-minify/binding-win32-x64-msvc@0.125.0': + "@oxc-minify/binding-win32-ia32-msvc@0.133.0": optional: true - '@oxc-minify/binding-win32-x64-msvc@0.131.0': + "@oxc-minify/binding-win32-x64-msvc@0.125.0": optional: true - '@oxc-parser/binding-android-arm-eabi@0.130.0': + "@oxc-minify/binding-win32-x64-msvc@0.132.0": optional: true - '@oxc-parser/binding-android-arm-eabi@0.131.0': + "@oxc-minify/binding-win32-x64-msvc@0.133.0": optional: true - '@oxc-parser/binding-android-arm64@0.130.0': + "@oxc-parser/binding-android-arm-eabi@0.130.0": optional: true - '@oxc-parser/binding-android-arm64@0.131.0': + "@oxc-parser/binding-android-arm-eabi@0.132.0": optional: true - '@oxc-parser/binding-darwin-arm64@0.130.0': + "@oxc-parser/binding-android-arm-eabi@0.133.0": optional: true - '@oxc-parser/binding-darwin-arm64@0.131.0': + "@oxc-parser/binding-android-arm64@0.130.0": optional: true - '@oxc-parser/binding-darwin-x64@0.130.0': + "@oxc-parser/binding-android-arm64@0.132.0": optional: true - '@oxc-parser/binding-darwin-x64@0.131.0': + "@oxc-parser/binding-android-arm64@0.133.0": optional: true - '@oxc-parser/binding-freebsd-x64@0.130.0': + "@oxc-parser/binding-darwin-arm64@0.130.0": optional: true - '@oxc-parser/binding-freebsd-x64@0.131.0': + "@oxc-parser/binding-darwin-arm64@0.132.0": optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': + "@oxc-parser/binding-darwin-arm64@0.133.0": optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0': + "@oxc-parser/binding-darwin-x64@0.130.0": optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': + "@oxc-parser/binding-darwin-x64@0.132.0": optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.131.0': + "@oxc-parser/binding-darwin-x64@0.133.0": optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.130.0': + "@oxc-parser/binding-freebsd-x64@0.130.0": optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.131.0': + "@oxc-parser/binding-freebsd-x64@0.132.0": optional: true - '@oxc-parser/binding-linux-arm64-musl@0.130.0': + "@oxc-parser/binding-freebsd-x64@0.133.0": optional: true - '@oxc-parser/binding-linux-arm64-musl@0.131.0': + "@oxc-parser/binding-linux-arm-gnueabihf@0.130.0": optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': + "@oxc-parser/binding-linux-arm-gnueabihf@0.132.0": optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.131.0': + "@oxc-parser/binding-linux-arm-gnueabihf@0.133.0": optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': + "@oxc-parser/binding-linux-arm-musleabihf@0.130.0": optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.131.0': + "@oxc-parser/binding-linux-arm-musleabihf@0.132.0": optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.130.0': + "@oxc-parser/binding-linux-arm-musleabihf@0.133.0": optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.131.0': + "@oxc-parser/binding-linux-arm64-gnu@0.130.0": optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.130.0': + "@oxc-parser/binding-linux-arm64-gnu@0.132.0": optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.131.0': + "@oxc-parser/binding-linux-arm64-gnu@0.133.0": optional: true - '@oxc-parser/binding-linux-x64-gnu@0.130.0': + "@oxc-parser/binding-linux-arm64-musl@0.130.0": optional: true - '@oxc-parser/binding-linux-x64-gnu@0.131.0': + "@oxc-parser/binding-linux-arm64-musl@0.132.0": optional: true - '@oxc-parser/binding-linux-x64-musl@0.130.0': + "@oxc-parser/binding-linux-arm64-musl@0.133.0": optional: true - '@oxc-parser/binding-linux-x64-musl@0.131.0': + "@oxc-parser/binding-linux-ppc64-gnu@0.130.0": optional: true - '@oxc-parser/binding-openharmony-arm64@0.130.0': + "@oxc-parser/binding-linux-ppc64-gnu@0.132.0": optional: true - '@oxc-parser/binding-openharmony-arm64@0.131.0': + "@oxc-parser/binding-linux-ppc64-gnu@0.133.0": optional: true - '@oxc-parser/binding-wasm32-wasi@0.130.0': + "@oxc-parser/binding-linux-riscv64-gnu@0.130.0": + optional: true + + "@oxc-parser/binding-linux-riscv64-gnu@0.132.0": + optional: true + + "@oxc-parser/binding-linux-riscv64-gnu@0.133.0": + optional: true + + "@oxc-parser/binding-linux-riscv64-musl@0.130.0": + optional: true + + "@oxc-parser/binding-linux-riscv64-musl@0.132.0": + optional: true + + "@oxc-parser/binding-linux-riscv64-musl@0.133.0": + optional: true + + "@oxc-parser/binding-linux-s390x-gnu@0.130.0": + optional: true + + "@oxc-parser/binding-linux-s390x-gnu@0.132.0": + optional: true + + "@oxc-parser/binding-linux-s390x-gnu@0.133.0": + optional: true + + "@oxc-parser/binding-linux-x64-gnu@0.130.0": + optional: true + + "@oxc-parser/binding-linux-x64-gnu@0.132.0": + optional: true + + "@oxc-parser/binding-linux-x64-gnu@0.133.0": + optional: true + + "@oxc-parser/binding-linux-x64-musl@0.130.0": + optional: true + + "@oxc-parser/binding-linux-x64-musl@0.132.0": + optional: true + + "@oxc-parser/binding-linux-x64-musl@0.133.0": + optional: true + + "@oxc-parser/binding-openharmony-arm64@0.130.0": + optional: true + + "@oxc-parser/binding-openharmony-arm64@0.132.0": + optional: true + + "@oxc-parser/binding-openharmony-arm64@0.133.0": + optional: true + + "@oxc-parser/binding-wasm32-wasi@0.130.0": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-wasm32-wasi@0.131.0': + "@oxc-parser/binding-wasm32-wasi@0.132.0": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.130.0': + "@oxc-parser/binding-wasm32-wasi@0.133.0": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.131.0': + "@oxc-parser/binding-win32-arm64-msvc@0.130.0": optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.130.0': + "@oxc-parser/binding-win32-arm64-msvc@0.132.0": optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.131.0': + "@oxc-parser/binding-win32-arm64-msvc@0.133.0": optional: true - '@oxc-parser/binding-win32-x64-msvc@0.130.0': + "@oxc-parser/binding-win32-ia32-msvc@0.130.0": optional: true - '@oxc-parser/binding-win32-x64-msvc@0.131.0': + "@oxc-parser/binding-win32-ia32-msvc@0.132.0": optional: true - '@oxc-project/types@0.113.0': {} + "@oxc-parser/binding-win32-ia32-msvc@0.133.0": + optional: true - '@oxc-project/types@0.124.0': {} + "@oxc-parser/binding-win32-x64-msvc@0.130.0": + optional: true + + "@oxc-parser/binding-win32-x64-msvc@0.132.0": + optional: true + + "@oxc-parser/binding-win32-x64-msvc@0.133.0": + optional: true - '@oxc-project/types@0.130.0': {} + "@oxc-project/types@0.122.0": {} - '@oxc-project/types@0.131.0': {} + "@oxc-project/types@0.130.0": {} - '@oxc-project/types@0.132.0': {} + "@oxc-project/types@0.132.0": {} - '@oxc-resolver/binding-android-arm-eabi@11.19.1': + "@oxc-project/types@0.133.0": {} + + "@oxc-project/types@0.135.0": {} + + "@oxc-resolver/binding-android-arm-eabi@11.20.0": optional: true - '@oxc-resolver/binding-android-arm64@11.19.1': + "@oxc-resolver/binding-android-arm64@11.20.0": optional: true - '@oxc-resolver/binding-darwin-arm64@11.19.1': + "@oxc-resolver/binding-darwin-arm64@11.20.0": optional: true - '@oxc-resolver/binding-darwin-x64@11.19.1': + "@oxc-resolver/binding-darwin-x64@11.20.0": optional: true - '@oxc-resolver/binding-freebsd-x64@11.19.1': + "@oxc-resolver/binding-freebsd-x64@11.20.0": optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + "@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0": optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + "@oxc-resolver/binding-linux-arm-musleabihf@11.20.0": optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + "@oxc-resolver/binding-linux-arm64-gnu@11.20.0": optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + "@oxc-resolver/binding-linux-arm64-musl@11.20.0": optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + "@oxc-resolver/binding-linux-ppc64-gnu@11.20.0": optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + "@oxc-resolver/binding-linux-riscv64-gnu@11.20.0": optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + "@oxc-resolver/binding-linux-riscv64-musl@11.20.0": optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + "@oxc-resolver/binding-linux-s390x-gnu@11.20.0": optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + "@oxc-resolver/binding-linux-x64-gnu@11.20.0": optional: true - '@oxc-resolver/binding-linux-x64-musl@11.19.1': + "@oxc-resolver/binding-linux-x64-musl@11.20.0": optional: true - '@oxc-resolver/binding-openharmony-arm64@11.19.1': + "@oxc-resolver/binding-openharmony-arm64@11.20.0": optional: true - '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + "@oxc-resolver/binding-wasm32-wasi@11.20.0": dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@oxc-resolver/binding-win32-arm64-msvc@11.20.0": + optional: true + + "@oxc-resolver/binding-win32-x64-msvc@11.20.0": + optional: true + + "@oxc-transform/binding-android-arm-eabi@0.132.0": + optional: true + + "@oxc-transform/binding-android-arm-eabi@0.133.0": + optional: true + + "@oxc-transform/binding-android-arm64@0.132.0": + optional: true + + "@oxc-transform/binding-android-arm64@0.133.0": + optional: true + + "@oxc-transform/binding-darwin-arm64@0.132.0": + optional: true + + "@oxc-transform/binding-darwin-arm64@0.133.0": + optional: true + + "@oxc-transform/binding-darwin-x64@0.132.0": + optional: true + + "@oxc-transform/binding-darwin-x64@0.133.0": + optional: true + + "@oxc-transform/binding-freebsd-x64@0.132.0": optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + "@oxc-transform/binding-freebsd-x64@0.133.0": optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + "@oxc-transform/binding-linux-arm-gnueabihf@0.132.0": optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + "@oxc-transform/binding-linux-arm-gnueabihf@0.133.0": optional: true - '@oxc-transform/binding-android-arm-eabi@0.131.0': + "@oxc-transform/binding-linux-arm-musleabihf@0.132.0": optional: true - '@oxc-transform/binding-android-arm64@0.131.0': + "@oxc-transform/binding-linux-arm-musleabihf@0.133.0": optional: true - '@oxc-transform/binding-darwin-arm64@0.131.0': + "@oxc-transform/binding-linux-arm64-gnu@0.132.0": optional: true - '@oxc-transform/binding-darwin-x64@0.131.0': + "@oxc-transform/binding-linux-arm64-gnu@0.133.0": optional: true - '@oxc-transform/binding-freebsd-x64@0.131.0': + "@oxc-transform/binding-linux-arm64-musl@0.132.0": optional: true - '@oxc-transform/binding-linux-arm-gnueabihf@0.131.0': + "@oxc-transform/binding-linux-arm64-musl@0.133.0": optional: true - '@oxc-transform/binding-linux-arm-musleabihf@0.131.0': + "@oxc-transform/binding-linux-ppc64-gnu@0.132.0": optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.131.0': + "@oxc-transform/binding-linux-ppc64-gnu@0.133.0": optional: true - '@oxc-transform/binding-linux-arm64-musl@0.131.0': + "@oxc-transform/binding-linux-riscv64-gnu@0.132.0": optional: true - '@oxc-transform/binding-linux-ppc64-gnu@0.131.0': + "@oxc-transform/binding-linux-riscv64-gnu@0.133.0": optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.131.0': + "@oxc-transform/binding-linux-riscv64-musl@0.132.0": optional: true - '@oxc-transform/binding-linux-riscv64-musl@0.131.0': + "@oxc-transform/binding-linux-riscv64-musl@0.133.0": optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.131.0': + "@oxc-transform/binding-linux-s390x-gnu@0.132.0": optional: true - '@oxc-transform/binding-linux-x64-gnu@0.131.0': + "@oxc-transform/binding-linux-s390x-gnu@0.133.0": optional: true - '@oxc-transform/binding-linux-x64-musl@0.131.0': + "@oxc-transform/binding-linux-x64-gnu@0.132.0": optional: true - '@oxc-transform/binding-openharmony-arm64@0.131.0': + "@oxc-transform/binding-linux-x64-gnu@0.133.0": optional: true - '@oxc-transform/binding-wasm32-wasi@0.131.0': + "@oxc-transform/binding-linux-x64-musl@0.132.0": + optional: true + + "@oxc-transform/binding-linux-x64-musl@0.133.0": + optional: true + + "@oxc-transform/binding-openharmony-arm64@0.132.0": + optional: true + + "@oxc-transform/binding-openharmony-arm64@0.133.0": + optional: true + + "@oxc-transform/binding-wasm32-wasi@0.132.0": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@oxc-transform/binding-wasm32-wasi@0.133.0": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@oxc-transform/binding-win32-arm64-msvc@0.132.0": + optional: true + + "@oxc-transform/binding-win32-arm64-msvc@0.133.0": + optional: true + + "@oxc-transform/binding-win32-ia32-msvc@0.132.0": optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.131.0': + "@oxc-transform/binding-win32-ia32-msvc@0.133.0": optional: true - '@oxc-transform/binding-win32-ia32-msvc@0.131.0': + "@oxc-transform/binding-win32-x64-msvc@0.132.0": optional: true - '@oxc-transform/binding-win32-x64-msvc@0.131.0': + "@oxc-transform/binding-win32-x64-msvc@0.133.0": optional: true - '@paralleldrive/cuid2@3.3.0': + "@paralleldrive/cuid2@3.3.0": dependencies: - '@noble/hashes': 2.2.0 + "@noble/hashes": 2.2.0 bignumber.js: 9.3.1 error-causes: 3.0.2 - '@parcel/watcher-android-arm64@2.5.6': + "@parcel/watcher-android-arm64@2.5.6": optional: true - '@parcel/watcher-darwin-arm64@2.5.6': + "@parcel/watcher-darwin-arm64@2.5.6": optional: true - '@parcel/watcher-darwin-x64@2.5.6': + "@parcel/watcher-darwin-x64@2.5.6": optional: true - '@parcel/watcher-freebsd-x64@2.5.6': + "@parcel/watcher-freebsd-x64@2.5.6": optional: true - '@parcel/watcher-linux-arm-glibc@2.5.6': + "@parcel/watcher-linux-arm-glibc@2.5.6": optional: true - '@parcel/watcher-linux-arm-musl@2.5.6': + "@parcel/watcher-linux-arm-musl@2.5.6": optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.6': + "@parcel/watcher-linux-arm64-glibc@2.5.6": optional: true - '@parcel/watcher-linux-arm64-musl@2.5.6': + "@parcel/watcher-linux-arm64-musl@2.5.6": optional: true - '@parcel/watcher-linux-x64-glibc@2.5.6': + "@parcel/watcher-linux-x64-glibc@2.5.6": optional: true - '@parcel/watcher-linux-x64-musl@2.5.6': + "@parcel/watcher-linux-x64-musl@2.5.6": optional: true - '@parcel/watcher-wasm@2.5.6': + "@parcel/watcher-wasm@2.5.6": dependencies: is-glob: 4.0.3 picomatch: 4.0.4 - '@parcel/watcher-win32-arm64@2.5.6': + "@parcel/watcher-win32-arm64@2.5.6": optional: true - '@parcel/watcher-win32-ia32@2.5.6': + "@parcel/watcher-win32-ia32@2.5.6": optional: true - '@parcel/watcher-win32-x64@2.5.6': + "@parcel/watcher-win32-x64@2.5.6": optional: true - '@parcel/watcher@2.5.6': + "@parcel/watcher@2.5.6": dependencies: detect-libc: 2.1.2 is-glob: 4.0.3 node-addon-api: 7.1.1 picomatch: 4.0.4 optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.6 - '@parcel/watcher-darwin-arm64': 2.5.6 - '@parcel/watcher-darwin-x64': 2.5.6 - '@parcel/watcher-freebsd-x64': 2.5.6 - '@parcel/watcher-linux-arm-glibc': 2.5.6 - '@parcel/watcher-linux-arm-musl': 2.5.6 - '@parcel/watcher-linux-arm64-glibc': 2.5.6 - '@parcel/watcher-linux-arm64-musl': 2.5.6 - '@parcel/watcher-linux-x64-glibc': 2.5.6 - '@parcel/watcher-linux-x64-musl': 2.5.6 - '@parcel/watcher-win32-arm64': 2.5.6 - '@parcel/watcher-win32-ia32': 2.5.6 - '@parcel/watcher-win32-x64': 2.5.6 - - '@paulirish/trace_engine@0.0.59': + "@parcel/watcher-android-arm64": 2.5.6 + "@parcel/watcher-darwin-arm64": 2.5.6 + "@parcel/watcher-darwin-x64": 2.5.6 + "@parcel/watcher-freebsd-x64": 2.5.6 + "@parcel/watcher-linux-arm-glibc": 2.5.6 + "@parcel/watcher-linux-arm-musl": 2.5.6 + "@parcel/watcher-linux-arm64-glibc": 2.5.6 + "@parcel/watcher-linux-arm64-musl": 2.5.6 + "@parcel/watcher-linux-x64-glibc": 2.5.6 + "@parcel/watcher-linux-x64-musl": 2.5.6 + "@parcel/watcher-win32-arm64": 2.5.6 + "@parcel/watcher-win32-ia32": 2.5.6 + "@parcel/watcher-win32-x64": 2.5.6 + + "@paulirish/trace_engine@0.0.59": dependencies: legacy-javascript: 0.0.1 third-party-web: 0.29.2 - '@peculiar/asn1-cms@2.7.0': + "@peculiar/asn1-cms@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 - '@peculiar/asn1-x509-attr': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 + "@peculiar/asn1-x509-attr": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-csr@2.7.0': + "@peculiar/asn1-csr@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-ecc@2.7.0': + "@peculiar/asn1-ecc@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pfx@2.7.0': + "@peculiar/asn1-pfx@2.8.0": dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-pkcs8': 2.7.0 - '@peculiar/asn1-rsa': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 + "@peculiar/asn1-cms": 2.8.0 + "@peculiar/asn1-pkcs8": 2.8.0 + "@peculiar/asn1-rsa": 2.8.0 + "@peculiar/asn1-schema": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pkcs8@2.7.0': + "@peculiar/asn1-pkcs8@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pkcs9@2.7.0': + "@peculiar/asn1-pkcs9@2.8.0": dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-pfx': 2.7.0 - '@peculiar/asn1-pkcs8': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 - '@peculiar/asn1-x509-attr': 2.7.0 + "@peculiar/asn1-cms": 2.8.0 + "@peculiar/asn1-pfx": 2.8.0 + "@peculiar/asn1-pkcs8": 2.8.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 + "@peculiar/asn1-x509-attr": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-rsa@2.7.0': + "@peculiar/asn1-rsa@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-schema@2.7.0': + "@peculiar/asn1-schema@2.8.0": dependencies: - '@peculiar/utils': 2.0.3 + "@peculiar/utils": 2.0.3 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-x509-attr@2.7.0': + "@peculiar/asn1-x509-attr@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-x509@2.7.0': + "@peculiar/asn1-x509@2.8.0": dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/utils': 2.0.3 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/utils": 2.0.3 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/utils@2.0.3': + "@peculiar/utils@2.0.3": dependencies: tslib: 2.8.1 - '@peculiar/x509@1.14.3': + "@peculiar/x509@1.14.3": dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-csr': 2.7.0 - '@peculiar/asn1-ecc': 2.7.0 - '@peculiar/asn1-pkcs9': 2.7.0 - '@peculiar/asn1-rsa': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + "@peculiar/asn1-cms": 2.8.0 + "@peculiar/asn1-csr": 2.8.0 + "@peculiar/asn1-ecc": 2.8.0 + "@peculiar/asn1-pkcs9": 2.8.0 + "@peculiar/asn1-rsa": 2.8.0 + "@peculiar/asn1-schema": 2.8.0 + "@peculiar/asn1-x509": 2.8.0 pvtsutils: 1.3.6 reflect-metadata: 0.2.2 tslib: 2.8.1 tsyringe: 4.10.0 - '@pkgjs/parseargs@0.11.0': + "@pkgjs/parseargs@0.11.0": optional: true - '@pkgr/core@0.2.9': {} + "@pkgr/core@0.3.6": {} - '@pkgr/core@0.3.6': {} - - '@playwright/test@1.60.0': + "@playwright/test@1.61.0": dependencies: - playwright: 1.60.0 + playwright: 1.61.0 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.107.2)': + "@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.107.2)": dependencies: ansi-html: 0.0.9 core-js-pure: 3.49.0 @@ -50607,97 +56841,97 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) optionalDependencies: - '@types/webpack': 4.41.40 + "@types/webpack": 4.41.40 type-fest: 4.41.0 - webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.107.2) webpack-hot-middleware: 2.26.1 - '@pnpm/config.env-replace@1.1.0': {} + "@pnpm/config.env-replace@1.1.0": {} - '@pnpm/constants@1001.3.1': {} + "@pnpm/constants@1001.3.1": {} - '@pnpm/error@1000.1.0': + "@pnpm/error@1000.1.0": dependencies: - '@pnpm/constants': 1001.3.1 + "@pnpm/constants": 1001.3.1 - '@pnpm/find-workspace-dir@1000.1.5': + "@pnpm/find-workspace-dir@1000.1.5": dependencies: - '@pnpm/error': 1000.1.0 + "@pnpm/error": 1000.1.0 find-up: 5.0.0 - '@pnpm/network.ca-file@1.0.2': + "@pnpm/network.ca-file@1.0.2": dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@3.0.2': + "@pnpm/npm-conf@3.0.3": dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 + "@pnpm/config.env-replace": 1.1.0 + "@pnpm/network.ca-file": 1.0.2 config-chain: 1.1.13 - '@polka/url@1.0.0-next.29': {} + "@polka/url@1.0.0-next.29": {} - '@popperjs/core@2.11.8': {} + "@popperjs/core@2.11.8": {} - '@poppinss/colors@4.1.6': + "@poppinss/colors@4.1.6": dependencies: kleur: 4.1.5 - '@poppinss/dumper@0.7.0': + "@poppinss/dumper@0.7.0": dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 + "@poppinss/colors": 4.1.6 + "@sindresorhus/is": 7.2.0 supports-color: 10.2.2 - '@poppinss/exception@1.2.3': {} + "@poppinss/exception@1.2.3": {} - '@preact/async-loader@3.0.2(preact@10.29.2)': + "@preact/async-loader@3.0.2(preact@10.29.2)": dependencies: kleur: 4.1.5 loader-utils: 2.0.4 preact: 10.29.2 - '@preact/signals-core@1.14.2': {} + "@preact/signals-core@1.14.2": {} - '@preact/signals@1.3.4(preact@10.29.2)': + "@preact/signals@1.3.4(preact@10.29.2)": dependencies: - '@preact/signals-core': 1.14.2 + "@preact/signals-core": 1.14.2 preact: 10.29.2 - '@prefresh/babel-plugin@0.4.4': {} + "@prefresh/babel-plugin@0.4.4": {} - '@prefresh/core@1.5.10(preact@10.29.2)': + "@prefresh/core@1.5.10(preact@10.29.2)": dependencies: preact: 10.29.2 - '@prefresh/utils@1.2.1': {} + "@prefresh/utils@1.2.1": {} - '@prefresh/webpack@3.3.4(@prefresh/babel-plugin@0.4.4)(preact@10.29.2)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': + "@prefresh/webpack@3.3.4(@prefresh/babel-plugin@0.4.4)(preact@10.29.2)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))": dependencies: - '@prefresh/babel-plugin': 0.4.4 - '@prefresh/core': 1.5.10(preact@10.29.2) - '@prefresh/utils': 1.2.1 + "@prefresh/babel-plugin": 0.4.4 + "@prefresh/core": 1.5.10(preact@10.29.2) + "@prefresh/utils": 1.2.1 preact: 10.29.2 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - '@prisma/instrumentation@6.11.1(@opentelemetry/api@1.9.1)': + "@prisma/instrumentation@6.11.1(@opentelemetry/api@1.9.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@publint/pack@0.1.4': {} + "@publint/pack@0.1.4": {} - '@puppeteer/browsers@2.13.2': + "@puppeteer/browsers@2.13.2(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) - extract-zip: 2.0.1 + debug: 4.4.3(supports-color@8.1.1) + extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 proxy-agent: 6.5.0 - semver: 7.8.1 + semver: 7.8.4 tar-fs: 3.1.2 yargs: 17.7.2 transitivePeerDependencies: @@ -50706,13 +56940,13 @@ snapshots: - react-native-b4a - supports-color - '@puppeteer/browsers@2.6.1': + "@puppeteer/browsers@2.6.1(supports-color@8.1.1)": dependencies: - debug: 4.4.3(supports-color@5.5.0) - extract-zip: 2.0.1 + debug: 4.4.3(supports-color@8.1.1) + extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 proxy-agent: 6.5.0 - semver: 7.8.1 + semver: 7.8.4 tar-fs: 3.1.2 unbzip2-stream: 1.4.3 yargs: 17.7.2 @@ -50722,233 +56956,216 @@ snapshots: - react-native-b4a - supports-color - '@puppeteer/browsers@3.0.4': + "@puppeteer/browsers@3.0.4": dependencies: modern-tar: 0.7.6 yargs: 17.7.2 - '@putout/minify@6.0.7': {} + "@putout/minify@6.1.0": {} - '@quansync/fs@1.0.0': + "@quansync/fs@1.0.0": dependencies: quansync: 1.0.0 - '@radix-ui/primitive@1.1.3': {} + "@radix-ui/primitive@1.1.4": {} - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-compose-refs@1.1.3(@types/react@18.3.31)(react@19.2.7)": dependencies: - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-context@1.1.2(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-context@1.1.4(@types/react@18.3.31)(react@19.2.7)": dependencies: - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 - - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.29)(react@19.2.6) + "@types/react": 18.3.31 + + "@radix-ui/react-dialog@1.1.16(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": + dependencies: + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-context": 1.1.4(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-dismissable-layer": 1.1.12(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-focus-guards": 1.1.4(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-focus-scope": 1.1.9(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-id": 1.1.2(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-portal": 1.1.11(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-presence": 1.1.6(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-primitive": 2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-slot": 1.2.5(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-use-controllable-state": 1.2.3(@types/react@18.3.31)(react@19.2.7) aria-hidden: 1.2.6 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - react-remove-scroll: 2.7.2(@types/react@18.3.29)(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + react-remove-scroll: 2.7.2(@types/react@18.3.31)(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) - - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) + + "@radix-ui/react-dismissable-layer@1.1.12(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": + dependencies: + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-primitive": 2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-use-callback-ref": 1.1.2(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-use-escape-keydown": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) - '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-focus-guards@1.1.4(@types/react@18.3.31)(react@19.2.7)": dependencies: - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@radix-ui/react-focus-scope@1.1.9(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-compose-refs": 1.1.3(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-primitive": 2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-use-callback-ref": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) - '@radix-ui/react-id@1.1.1(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-id@1.1.2(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 + "@radix-ui/react-use-layout-effect": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@radix-ui/react-portal@1.1.11(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-primitive": 2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-use-layout-effect": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@radix-ui/react-presence@1.1.6(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-use-layout-effect": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@radix-ui/react-primitive@2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-slot": 1.2.5(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 + "@types/react-dom": 19.2.3(@types/react@18.3.31) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@radix-ui/react-slot@1.2.5(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-compose-refs": 1.1.3(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 - '@types/react-dom': 19.2.3(@types/react@18.3.29) + "@types/react": 18.3.31 - '@radix-ui/react-slot@1.2.3(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-use-callback-ref@1.1.2(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-slot@1.2.4(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-use-controllable-state@1.2.3(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 + "@radix-ui/react-use-effect-event": 0.0.3(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-use-layout-effect": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-use-effect-event@0.0.3(@types/react@18.3.31)(react@19.2.7)": dependencies: - react: 19.2.6 + "@radix-ui/react-use-layout-effect": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-use-escape-keydown@1.1.2(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 + "@radix-ui/react-use-callback-ref": 1.1.2(@types/react@18.3.31)(react@19.2.7) + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.29)(react@19.2.6)': + "@radix-ui/react-use-layout-effect@1.1.2(@types/react@18.3.31)(react@19.2.7)": dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.29)(react@19.2.6)': + "@react-spring/animated@9.7.5(react@19.2.7)": dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.29)(react@19.2.6) - react: 19.2.6 - optionalDependencies: - '@types/react': 18.3.29 + "@react-spring/shared": 9.7.5(react@19.2.7) + "@react-spring/types": 9.7.5 + react: 19.2.7 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.29)(react@19.2.6)': + "@react-spring/core@9.7.5(react@19.2.7)": dependencies: - react: 19.2.6 - optionalDependencies: - '@types/react': 18.3.29 + "@react-spring/animated": 9.7.5(react@19.2.7) + "@react-spring/shared": 9.7.5(react@19.2.7) + "@react-spring/types": 9.7.5 + react: 19.2.7 - '@react-spring/animated@9.7.5(react@19.2.6)': - dependencies: - '@react-spring/shared': 9.7.5(react@19.2.6) - '@react-spring/types': 9.7.5 - react: 19.2.6 - - '@react-spring/core@9.7.5(react@19.2.6)': - dependencies: - '@react-spring/animated': 9.7.5(react@19.2.6) - '@react-spring/shared': 9.7.5(react@19.2.6) - '@react-spring/types': 9.7.5 - react: 19.2.6 - - '@react-spring/rafz@9.7.5': {} + "@react-spring/rafz@9.7.5": {} - '@react-spring/shared@9.7.5(react@19.2.6)': + "@react-spring/shared@9.7.5(react@19.2.7)": dependencies: - '@react-spring/rafz': 9.7.5 - '@react-spring/types': 9.7.5 - react: 19.2.6 + "@react-spring/rafz": 9.7.5 + "@react-spring/types": 9.7.5 + react: 19.2.7 - '@react-spring/types@9.7.5': {} + "@react-spring/types@9.7.5": {} - '@react-spring/web@9.7.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@react-spring/web@9.7.5(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@react-spring/animated': 9.7.5(react@19.2.6) - '@react-spring/core': 9.7.5(react@19.2.6) - '@react-spring/shared': 9.7.5(react@19.2.6) - '@react-spring/types': 9.7.5 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@react-spring/animated": 9.7.5(react@19.2.7) + "@react-spring/core": 9.7.5(react@19.2.7) + "@react-spring/shared": 9.7.5(react@19.2.7) + "@react-spring/types": 9.7.5 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - '@riotjs/cli@10.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)': + "@riotjs/cli@10.0.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)": dependencies: - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@riotjs/compiler': 10.0.2 - '@rollup/plugin-babel': 6.1.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4) - '@rollup/plugin-commonjs': 28.0.9(rollup@4.60.4) - '@rollup/plugin-json': 6.1.0(rollup@4.60.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.4) + "@babel/preset-typescript": 7.29.7(@babel/core@8.0.1) + "@riotjs/compiler": 10.0.2 + "@rollup/plugin-babel": 6.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0) + "@rollup/plugin-commonjs": 28.0.9(rollup@4.62.0) + "@rollup/plugin-json": 6.1.0(rollup@4.62.0) + "@rollup/plugin-node-resolve": 16.0.3(rollup@4.62.0) chalk: 5.6.2 chokidar: 4.0.3 cumpa: 2.0.1 glob: 11.1.0 optionator: 0.9.4 - rollup: 4.60.4 - rollup-plugin-riot: 10.0.0(rollup@4.60.4) + rollup: 4.62.0 + rollup-plugin-riot: 10.0.0(rollup@4.62.0) transitivePeerDependencies: - - '@babel/core' - - '@types/babel__core' + - "@babel/core" + - "@types/babel__core" - supports-color - '@riotjs/compiler@10.0.2': + "@riotjs/compiler@10.0.2": dependencies: - '@babel/parser': 7.29.3 - '@riotjs/parser': 10.0.0 - '@riotjs/util': 10.1.2 + "@babel/parser": 7.29.7 + "@riotjs/parser": 10.0.0 + "@riotjs/util": 10.1.2 css-simple-parser: 3.0.2 cssesc: 3.0.0 cumpa: 2.0.1 @@ -50958,233 +57175,287 @@ snapshots: recast: 0.23.11 source-map: 0.7.6 - '@riotjs/dom-bindings@10.0.5': + "@riotjs/dom-bindings@10.0.5": dependencies: - '@riotjs/util': 10.1.2 + "@riotjs/util": 10.1.2 - '@riotjs/hot-reload@10.0.0(riot@10.1.4)': + "@riotjs/hot-reload@10.0.0(riot@10.1.4)": dependencies: bianco.query: 1.1.4 riot: 10.1.4 - '@riotjs/lazy@10.0.0(riot@10.1.4)': + "@riotjs/lazy@10.0.0(riot@10.1.4)": dependencies: - '@riotjs/util': 10.1.2 + "@riotjs/util": 10.1.2 riot: 10.1.4 - '@riotjs/parser@10.0.0': + "@riotjs/parser@10.0.0": dependencies: curri: 2.0.3 dom-nodes: 1.1.3 - '@riotjs/register@10.0.0(@riotjs/compiler@10.0.2)': + "@riotjs/register@10.0.0(@riotjs/compiler@10.0.2)": dependencies: - '@riotjs/compiler': 10.0.2 + "@riotjs/compiler": 10.0.2 - '@riotjs/route@10.0.0': + "@riotjs/route@10.0.0": dependencies: - '@riotjs/util': 10.1.2 + "@riotjs/util": 10.1.2 bianco.attr: 1.1.1 bianco.events: 1.1.1 bianco.query: 1.1.4 cumpa: 2.0.1 rawth: 3.0.0 - '@riotjs/util@10.1.2': {} + "@riotjs/util@10.1.2": {} - '@riotjs/webpack-loader@10.0.0(@riotjs/compiler@10.0.2)(webpack@5.107.1)': + "@riotjs/webpack-loader@10.0.0(@riotjs/compiler@10.0.2)(webpack@5.107.2)": dependencies: - '@riotjs/compiler': 10.0.2 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@5.1.4) + "@riotjs/compiler": 10.0.2 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - '@rolldown/binding-android-arm64@1.0.0-rc.15': + "@rolldown/binding-android-arm64@1.0.0-rc.12": optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.4': + "@rolldown/binding-android-arm64@1.0.2": optional: true - '@rolldown/binding-android-arm64@1.0.2': + "@rolldown/binding-android-arm64@1.0.3": optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + "@rolldown/binding-android-arm64@1.1.1": optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.4': + "@rolldown/binding-darwin-arm64@1.0.0-rc.12": optional: true - '@rolldown/binding-darwin-arm64@1.0.2': + "@rolldown/binding-darwin-arm64@1.0.2": optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.15': + "@rolldown/binding-darwin-arm64@1.0.3": optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.4': + "@rolldown/binding-darwin-arm64@1.1.1": optional: true - '@rolldown/binding-darwin-x64@1.0.2': + "@rolldown/binding-darwin-x64@1.0.0-rc.12": optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + "@rolldown/binding-darwin-x64@1.0.2": optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.4': + "@rolldown/binding-darwin-x64@1.0.3": optional: true - '@rolldown/binding-freebsd-x64@1.0.2': + "@rolldown/binding-darwin-x64@1.1.1": optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + "@rolldown/binding-freebsd-x64@1.0.0-rc.12": optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4': + "@rolldown/binding-freebsd-x64@1.0.2": optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + "@rolldown/binding-freebsd-x64@1.0.3": optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + "@rolldown/binding-freebsd-x64@1.1.1": optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': + "@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12": optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.2': + "@rolldown/binding-linux-arm-gnueabihf@1.0.2": optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + "@rolldown/binding-linux-arm-gnueabihf@1.0.3": optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': + "@rolldown/binding-linux-arm-gnueabihf@1.1.1": optional: true - '@rolldown/binding-linux-arm64-musl@1.0.2': + "@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12": optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + "@rolldown/binding-linux-arm64-gnu@1.0.2": optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.2': + "@rolldown/binding-linux-arm64-gnu@1.0.3": optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + "@rolldown/binding-linux-arm64-gnu@1.1.1": optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.2': + "@rolldown/binding-linux-arm64-musl@1.0.0-rc.12": optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + "@rolldown/binding-linux-arm64-musl@1.0.2": optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': + "@rolldown/binding-linux-arm64-musl@1.0.3": optional: true - '@rolldown/binding-linux-x64-gnu@1.0.2': + "@rolldown/binding-linux-arm64-musl@1.1.1": optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + "@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12": optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': + "@rolldown/binding-linux-ppc64-gnu@1.0.2": optional: true - '@rolldown/binding-linux-x64-musl@1.0.2': + "@rolldown/binding-linux-ppc64-gnu@1.0.3": optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + "@rolldown/binding-linux-ppc64-gnu@1.1.1": optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': + "@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12": optional: true - '@rolldown/binding-openharmony-arm64@1.0.2': + "@rolldown/binding-linux-s390x-gnu@1.0.2": optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': - dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + "@rolldown/binding-linux-s390x-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-s390x-gnu@1.1.1": optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + "@rolldown/binding-linux-x64-gnu@1.0.0-rc.12": + optional: true + + "@rolldown/binding-linux-x64-gnu@1.0.2": + optional: true + + "@rolldown/binding-linux-x64-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-x64-gnu@1.1.1": + optional: true + + "@rolldown/binding-linux-x64-musl@1.0.0-rc.12": + optional: true + + "@rolldown/binding-linux-x64-musl@1.0.2": + optional: true + + "@rolldown/binding-linux-x64-musl@1.0.3": + optional: true + + "@rolldown/binding-linux-x64-musl@1.1.1": + optional: true + + "@rolldown/binding-openharmony-arm64@1.0.0-rc.12": + optional: true + + "@rolldown/binding-openharmony-arm64@1.0.2": + optional: true + + "@rolldown/binding-openharmony-arm64@1.0.3": + optional: true + + "@rolldown/binding-openharmony-arm64@1.1.1": + optional: true + + "@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)": dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1) transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + - "@emnapi/core" + - "@emnapi/runtime" + optional: true + + "@rolldown/binding-wasm32-wasi@1.0.2": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@rolldown/binding-wasm32-wasi@1.0.3": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-wasm32-wasi@1.0.2': + "@rolldown/binding-wasm32-wasi@1.1.1": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.11.0 + "@emnapi/runtime": 1.11.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + "@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12": optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4': + "@rolldown/binding-win32-arm64-msvc@1.0.2": optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.2': + "@rolldown/binding-win32-arm64-msvc@1.0.3": optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + "@rolldown/binding-win32-arm64-msvc@1.1.1": optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.4': + "@rolldown/binding-win32-x64-msvc@1.0.0-rc.12": optional: true - '@rolldown/binding-win32-x64-msvc@1.0.2': + "@rolldown/binding-win32-x64-msvc@1.0.2": optional: true - '@rolldown/pluginutils@1.0.0-rc.15': {} + "@rolldown/binding-win32-x64-msvc@1.0.3": + optional: true + + "@rolldown/binding-win32-x64-msvc@1.1.1": + optional: true - '@rolldown/pluginutils@1.0.0-rc.4': {} + "@rolldown/pluginutils@1.0.0-rc.12": {} - '@rolldown/pluginutils@1.0.1': {} + "@rolldown/pluginutils@1.0.1": {} - '@rollup/plugin-alias@6.0.0(rollup@4.60.4)': + "@rollup/plugin-alias@6.0.0(rollup@4.62.0)": optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-babel@5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0)': + "@rollup/plugin-babel@5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@rollup/pluginutils": 3.1.0(rollup@2.80.0) rollup: 2.80.0 optionalDependencies: - '@types/babel__core': 7.20.5 + "@types/babel__core": 7.20.5 transitivePeerDependencies: - supports-color - '@rollup/plugin-babel@6.1.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4)': + "@rollup/plugin-babel@6.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 7.29.7 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) optionalDependencies: - '@types/babel__core': 7.20.5 - rollup: 4.60.4 + "@types/babel__core": 7.20.5 + rollup: 4.62.0 transitivePeerDependencies: - supports-color - '@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4)': + "@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@babel/core": 8.0.1 + "@babel/helper-module-imports": 7.29.7 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + workerpool: 9.3.4 optionalDependencies: - '@types/babel__core': 7.20.5 - rollup: 4.60.4 + "@types/babel__core": 7.20.5 + rollup: 4.62.0 transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.9(rollup@4.60.4)': + "@rollup/plugin-commonjs@28.0.9(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.4) @@ -51192,11 +57463,11 @@ snapshots: magic-string: 0.30.21 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-commonjs@29.0.2(rollup@4.60.4)': + "@rollup/plugin-commonjs@29.0.3(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.4) @@ -51204,304 +57475,296 @@ snapshots: magic-string: 0.30.21 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-inject@5.0.5(rollup@4.60.4)': + "@rollup/plugin-inject@5.0.5(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) estree-walker: 2.0.2 magic-string: 0.30.21 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-json@6.1.0(rollup@4.60.4)': + "@rollup/plugin-json@6.1.0(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.80.0)': + "@rollup/plugin-node-resolve@11.2.1(rollup@2.80.0)": dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) - '@types/resolve': 1.17.1 + "@rollup/pluginutils": 3.1.0(rollup@2.80.0) + "@types/resolve": 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.12 rollup: 2.80.0 - '@rollup/plugin-node-resolve@13.3.0(rollup@2.80.0)': + "@rollup/plugin-node-resolve@15.3.1(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) - '@types/resolve': 1.17.1 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.12 - rollup: 2.80.0 - - '@rollup/plugin-node-resolve@15.3.1(rollup@4.60.4)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@types/resolve': 1.20.2 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + "@types/resolve": 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.12 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.4)': + "@rollup/plugin-node-resolve@16.0.3(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@types/resolve': 1.20.2 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + "@types/resolve": 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.12 optionalDependencies: - rollup: 4.60.4 - - '@rollup/plugin-node-resolve@6.1.0(rollup@4.60.4)': - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@4.60.4) - '@types/resolve': 0.0.8 - builtin-modules: 3.3.0 - is-module: 1.0.0 - resolve: 1.22.12 - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-node-resolve@7.1.3(rollup@2.80.0)': + "@rollup/plugin-node-resolve@7.1.3(rollup@2.80.0)": dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) - '@types/resolve': 0.0.8 + "@rollup/pluginutils": 3.1.0(rollup@2.80.0) + "@types/resolve": 0.0.8 builtin-modules: 3.3.0 is-module: 1.0.0 resolve: 1.22.12 rollup: 2.80.0 - '@rollup/plugin-replace@2.4.2(rollup@2.80.0)': + "@rollup/plugin-replace@2.4.2(rollup@2.80.0)": dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) + "@rollup/pluginutils": 3.1.0(rollup@2.80.0) magic-string: 0.25.9 rollup: 2.80.0 - '@rollup/plugin-replace@5.0.7(rollup@4.60.4)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - magic-string: 0.30.21 - optionalDependencies: - rollup: 4.60.4 - - '@rollup/plugin-replace@6.0.3(rollup@4.60.4)': + "@rollup/plugin-replace@6.0.3(rollup@4.62.0)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) magic-string: 0.30.21 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 - '@rollup/plugin-terser@0.4.4(rollup@4.60.4)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.6.2 - terser: 5.48.0 - optionalDependencies: - rollup: 4.60.4 - - '@rollup/plugin-terser@1.0.0(rollup@4.60.4)': + "@rollup/plugin-terser@1.0.0(rollup@4.62.0)": dependencies: serialize-javascript: 7.0.5 smob: 1.6.2 terser: 5.48.0 optionalDependencies: - rollup: 4.60.4 - - '@rollup/plugin-typescript@11.1.6(rollup@4.60.4)(tslib@2.8.1)(typescript@5.4.5)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - resolve: 1.22.12 - typescript: 5.4.5 - optionalDependencies: - rollup: 4.60.4 - tslib: 2.8.1 + rollup: 4.62.0 - '@rollup/plugin-typescript@12.3.0(rollup@4.60.4)(tslib@2.8.1)(typescript@5.9.3)': + "@rollup/plugin-typescript@12.3.0(rollup@4.62.0)(tslib@2.8.1)(typescript@6.0.3)": dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - resolve: 1.22.12 - typescript: 5.9.3 - optionalDependencies: - rollup: 4.60.4 - tslib: 2.8.1 - - '@rollup/plugin-typescript@12.3.0(rollup@4.60.4)(tslib@2.8.1)(typescript@6.0.3)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) resolve: 1.22.12 typescript: 6.0.3 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 tslib: 2.8.1 - '@rollup/pluginutils@3.1.0(rollup@2.80.0)': + "@rollup/pluginutils@3.1.0(rollup@2.80.0)": dependencies: - '@types/estree': 0.0.39 + "@types/estree": 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.2 rollup: 2.80.0 - '@rollup/pluginutils@3.1.0(rollup@4.60.4)': - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.2 - rollup: 4.60.4 - - '@rollup/pluginutils@4.2.1': + "@rollup/pluginutils@4.2.1": dependencies: estree-walker: 2.0.2 picomatch: 2.3.2 - '@rollup/pluginutils@5.3.0(rollup@4.60.4)': + "@rollup/pluginutils@5.4.0(rollup@4.62.0)": dependencies: - '@types/estree': 1.0.9 + "@types/estree": 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 + + "@rollup/rollup-android-arm-eabi@4.60.2": + optional: true - '@rollup/rollup-android-arm-eabi@4.60.4': + "@rollup/rollup-android-arm-eabi@4.62.0": optional: true - '@rollup/rollup-android-arm64@4.60.4': + "@rollup/rollup-android-arm64@4.60.2": optional: true - '@rollup/rollup-darwin-arm64@4.34.9': + "@rollup/rollup-android-arm64@4.62.0": optional: true - '@rollup/rollup-darwin-arm64@4.44.0': + "@rollup/rollup-darwin-arm64@4.44.0": optional: true - '@rollup/rollup-darwin-arm64@4.60.4': + "@rollup/rollup-darwin-arm64@4.60.2": optional: true - '@rollup/rollup-darwin-x64@4.34.9': + "@rollup/rollup-darwin-arm64@4.62.0": optional: true - '@rollup/rollup-darwin-x64@4.44.0': + "@rollup/rollup-darwin-x64@4.44.0": optional: true - '@rollup/rollup-darwin-x64@4.60.4': + "@rollup/rollup-darwin-x64@4.60.2": optional: true - '@rollup/rollup-freebsd-arm64@4.60.4': + "@rollup/rollup-darwin-x64@4.62.0": optional: true - '@rollup/rollup-freebsd-x64@4.60.4': + "@rollup/rollup-freebsd-arm64@4.60.2": optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + "@rollup/rollup-freebsd-arm64@4.62.0": optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.4': + "@rollup/rollup-freebsd-x64@4.60.2": optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.9': + "@rollup/rollup-freebsd-x64@4.62.0": optional: true - '@rollup/rollup-linux-arm64-gnu@4.44.0': + "@rollup/rollup-linux-arm-gnueabihf@4.60.2": optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.4': + "@rollup/rollup-linux-arm-gnueabihf@4.62.0": optional: true - '@rollup/rollup-linux-arm64-musl@4.34.9': + "@rollup/rollup-linux-arm-musleabihf@4.60.2": optional: true - '@rollup/rollup-linux-arm64-musl@4.44.0': + "@rollup/rollup-linux-arm-musleabihf@4.62.0": optional: true - '@rollup/rollup-linux-arm64-musl@4.60.4': + "@rollup/rollup-linux-arm64-gnu@4.44.0": optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.4': + "@rollup/rollup-linux-arm64-gnu@4.60.2": optional: true - '@rollup/rollup-linux-loong64-musl@4.60.4': + "@rollup/rollup-linux-arm64-gnu@4.62.0": optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.4': + "@rollup/rollup-linux-arm64-musl@4.44.0": optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.4': + "@rollup/rollup-linux-arm64-musl@4.60.2": optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.4': + "@rollup/rollup-linux-arm64-musl@4.62.0": optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.4': + "@rollup/rollup-linux-loong64-gnu@4.60.2": optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.4': + "@rollup/rollup-linux-loong64-gnu@4.62.0": optional: true - '@rollup/rollup-linux-x64-gnu@4.34.9': + "@rollup/rollup-linux-loong64-musl@4.60.2": optional: true - '@rollup/rollup-linux-x64-gnu@4.44.0': + "@rollup/rollup-linux-loong64-musl@4.62.0": optional: true - '@rollup/rollup-linux-x64-gnu@4.60.4': + "@rollup/rollup-linux-ppc64-gnu@4.60.2": optional: true - '@rollup/rollup-linux-x64-musl@4.34.9': + "@rollup/rollup-linux-ppc64-gnu@4.62.0": optional: true - '@rollup/rollup-linux-x64-musl@4.44.0': + "@rollup/rollup-linux-ppc64-musl@4.60.2": optional: true - '@rollup/rollup-linux-x64-musl@4.60.4': + "@rollup/rollup-linux-ppc64-musl@4.62.0": optional: true - '@rollup/rollup-openbsd-x64@4.60.4': + "@rollup/rollup-linux-riscv64-gnu@4.60.2": optional: true - '@rollup/rollup-openharmony-arm64@4.60.4': + "@rollup/rollup-linux-riscv64-gnu@4.62.0": optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.9': + "@rollup/rollup-linux-riscv64-musl@4.60.2": optional: true - '@rollup/rollup-win32-arm64-msvc@4.44.0': + "@rollup/rollup-linux-riscv64-musl@4.62.0": optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.4': + "@rollup/rollup-linux-s390x-gnu@4.60.2": optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.4': + "@rollup/rollup-linux-s390x-gnu@4.62.0": optional: true - '@rollup/rollup-win32-x64-gnu@4.60.4': + "@rollup/rollup-linux-x64-gnu@4.44.0": optional: true - '@rollup/rollup-win32-x64-msvc@4.34.9': + "@rollup/rollup-linux-x64-gnu@4.60.2": optional: true - '@rollup/rollup-win32-x64-msvc@4.44.0': + "@rollup/rollup-linux-x64-gnu@4.62.0": optional: true - '@rollup/rollup-win32-x64-msvc@4.60.4': + "@rollup/rollup-linux-x64-musl@4.44.0": optional: true - '@rollup/wasm-node@4.60.4': + "@rollup/rollup-linux-x64-musl@4.60.2": + optional: true + + "@rollup/rollup-linux-x64-musl@4.62.0": + optional: true + + "@rollup/rollup-openbsd-x64@4.60.2": + optional: true + + "@rollup/rollup-openbsd-x64@4.62.0": + optional: true + + "@rollup/rollup-openharmony-arm64@4.60.2": + optional: true + + "@rollup/rollup-openharmony-arm64@4.62.0": + optional: true + + "@rollup/rollup-win32-arm64-msvc@4.44.0": + optional: true + + "@rollup/rollup-win32-arm64-msvc@4.60.2": + optional: true + + "@rollup/rollup-win32-arm64-msvc@4.62.0": + optional: true + + "@rollup/rollup-win32-ia32-msvc@4.60.2": + optional: true + + "@rollup/rollup-win32-ia32-msvc@4.62.0": + optional: true + + "@rollup/rollup-win32-x64-gnu@4.60.2": + optional: true + + "@rollup/rollup-win32-x64-gnu@4.62.0": + optional: true + + "@rollup/rollup-win32-x64-msvc@4.44.0": + optional: true + + "@rollup/rollup-win32-x64-msvc@4.60.2": + optional: true + + "@rollup/rollup-win32-x64-msvc@4.62.0": + optional: true + + "@rollup/wasm-node@4.62.0": dependencies: - '@types/estree': 1.0.8 + "@types/estree": 1.0.9 optionalDependencies: fsevents: 2.3.3 - '@rtsao/scc@1.1.0': {} + "@rtsao/scc@1.1.0": {} - '@rushstack/eslint-patch@1.16.1': {} + "@rushstack/eslint-patch@1.16.1": {} - '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)': + "@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)": dependencies: any-observable: 0.3.0(rxjs@6.6.7) optionalDependencies: @@ -51509,526 +57772,479 @@ snapshots: transitivePeerDependencies: - zenObservable - '@schematics/angular@20.3.26': + "@schematics/angular@20.3.28": dependencies: - '@angular-devkit/core': 20.3.26 - '@angular-devkit/schematics': 20.3.26 + "@angular-devkit/core": 20.3.28 + "@angular-devkit/schematics": 20.3.28 jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar - '@schematics/angular@21.2.12(chokidar@5.0.0)': + "@schematics/angular@22.0.1(chokidar@5.0.0)": dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) + "@angular-devkit/core": 22.0.1(chokidar@5.0.0) + "@angular-devkit/schematics": 22.0.1(chokidar@5.0.0) jsonc-parser: 3.3.1 + typescript: 6.0.3 transitivePeerDependencies: - chokidar - '@sec-ant/readable-stream@0.4.1': {} + "@sec-ant/readable-stream@0.4.1": {} - '@sec-ant/readable-stream@0.7.0': {} + "@sec-ant/readable-stream@0.7.0": {} - '@sentry/core@9.47.1': {} + "@sentry/core@9.47.1": {} - '@sentry/node-core@9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + "@sentry/node-core@9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/core': 9.47.1 - '@sentry/opentelemetry': 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) + "@opentelemetry/api": 1.9.1 + "@opentelemetry/context-async-hooks": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@sentry/core": 9.47.1 + "@sentry/opentelemetry": 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) import-in-the-middle: 1.15.0 - '@sentry/node@9.47.1': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@prisma/instrumentation': 6.11.1(@opentelemetry/api@1.9.1) - '@sentry/core': 9.47.1 - '@sentry/node-core': 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - '@sentry/opentelemetry': 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) + "@sentry/node@9.47.1(supports-color@8.1.1)": + dependencies: + "@opentelemetry/api": 1.9.1 + "@opentelemetry/context-async-hooks": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation": 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) + "@opentelemetry/instrumentation-amqplib": 0.46.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-connect": 0.43.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-dataloader": 0.16.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-express": 0.47.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-fs": 0.19.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-generic-pool": 0.43.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-graphql": 0.47.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-hapi": 0.45.2(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-http": 0.57.2(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-ioredis": 0.47.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-kafkajs": 0.7.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-knex": 0.44.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-koa": 0.47.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-lru-memoizer": 0.44.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-mongodb": 0.52.0(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-mongoose": 0.46.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-mysql": 0.45.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-mysql2": 0.45.2(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-pg": 0.51.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-redis-4": 0.46.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-tedious": 0.18.1(@opentelemetry/api@1.9.1) + "@opentelemetry/instrumentation-undici": 0.10.1(@opentelemetry/api@1.9.1) + "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@prisma/instrumentation": 6.11.1(@opentelemetry/api@1.9.1) + "@sentry/core": 9.47.1 + "@sentry/node-core": 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) + "@sentry/opentelemetry": 9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) import-in-the-middle: 1.15.0 minimatch: 9.0.9 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + "@sentry/opentelemetry@9.47.1(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)": dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/core': 9.47.1 + "@opentelemetry/api": 1.9.1 + "@opentelemetry/context-async-hooks": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.1) + "@opentelemetry/semantic-conventions": 1.41.1 + "@sentry/core": 9.47.1 - '@shikijs/core@2.5.0': + "@shikijs/core@2.5.0": dependencies: - '@shikijs/engine-javascript': 2.5.0 - '@shikijs/engine-oniguruma': 2.5.0 - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/engine-javascript": 2.5.0 + "@shikijs/engine-oniguruma": 2.5.0 + "@shikijs/types": 2.5.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/core@4.1.0': + "@shikijs/core@4.2.0": dependencies: - '@shikijs/primitive': 4.1.0 - '@shikijs/types': 4.1.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/primitive": 4.2.0 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@2.5.0': + "@shikijs/engine-javascript@2.5.0": dependencies: - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 2.5.0 + "@shikijs/vscode-textmate": 10.0.2 oniguruma-to-es: 3.1.1 - '@shikijs/engine-javascript@4.1.0': + "@shikijs/engine-javascript@4.2.0": dependencies: - '@shikijs/types': 4.1.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": 10.0.2 oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@2.5.0': + "@shikijs/engine-oniguruma@2.5.0": dependencies: - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 2.5.0 + "@shikijs/vscode-textmate": 10.0.2 - '@shikijs/engine-oniguruma@3.23.0': + "@shikijs/engine-oniguruma@3.23.0": dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 3.23.0 + "@shikijs/vscode-textmate": 10.0.2 - '@shikijs/engine-oniguruma@4.1.0': + "@shikijs/engine-oniguruma@4.2.0": dependencies: - '@shikijs/types': 4.1.0 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": 10.0.2 - '@shikijs/langs@2.5.0': + "@shikijs/langs@2.5.0": dependencies: - '@shikijs/types': 2.5.0 + "@shikijs/types": 2.5.0 - '@shikijs/langs@3.23.0': + "@shikijs/langs@3.23.0": dependencies: - '@shikijs/types': 3.23.0 + "@shikijs/types": 3.23.0 - '@shikijs/langs@4.1.0': + "@shikijs/langs@4.2.0": dependencies: - '@shikijs/types': 4.1.0 + "@shikijs/types": 4.2.0 - '@shikijs/primitive@4.1.0': + "@shikijs/primitive@4.2.0": dependencies: - '@shikijs/types': 4.1.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 - '@shikijs/themes@2.5.0': + "@shikijs/themes@2.5.0": dependencies: - '@shikijs/types': 2.5.0 + "@shikijs/types": 2.5.0 - '@shikijs/themes@3.23.0': + "@shikijs/themes@3.23.0": dependencies: - '@shikijs/types': 3.23.0 + "@shikijs/types": 3.23.0 - '@shikijs/themes@4.1.0': + "@shikijs/themes@4.2.0": dependencies: - '@shikijs/types': 4.1.0 + "@shikijs/types": 4.2.0 - '@shikijs/transformers@2.5.0': + "@shikijs/transformers@2.5.0": dependencies: - '@shikijs/core': 2.5.0 - '@shikijs/types': 2.5.0 + "@shikijs/core": 2.5.0 + "@shikijs/types": 2.5.0 - '@shikijs/types@2.5.0': + "@shikijs/types@2.5.0": dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 - '@shikijs/types@3.23.0': + "@shikijs/types@3.23.0": dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 - '@shikijs/types@4.1.0': + "@shikijs/types@4.2.0": dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 - '@shikijs/vscode-textmate@10.0.2': {} + "@shikijs/vscode-textmate@10.0.2": {} - '@sideway/address@4.1.5': + "@sideway/address@4.1.5": dependencies: - '@hapi/hoek': 9.3.0 + "@hapi/hoek": 9.3.0 - '@sideway/formula@3.0.1': {} + "@sideway/formula@3.0.1": {} - '@sideway/pinpoint@2.0.0': {} + "@sideway/pinpoint@2.0.0": {} - '@sigstore/bundle@1.1.0': + "@sigstore/bundle@1.1.0": dependencies: - '@sigstore/protobuf-specs': 0.2.1 + "@sigstore/protobuf-specs": 0.2.1 - '@sigstore/bundle@4.0.0': + "@sigstore/bundle@4.0.0": dependencies: - '@sigstore/protobuf-specs': 0.5.1 + "@sigstore/protobuf-specs": 0.5.1 - '@sigstore/core@3.2.1': {} + "@sigstore/core@3.2.1": {} - '@sigstore/protobuf-specs@0.2.1': {} + "@sigstore/protobuf-specs@0.2.1": {} - '@sigstore/protobuf-specs@0.5.1': {} + "@sigstore/protobuf-specs@0.5.1": {} - '@sigstore/sign@1.0.0': + "@sigstore/sign@1.0.0": dependencies: - '@sigstore/bundle': 1.1.0 - '@sigstore/protobuf-specs': 0.2.1 + "@sigstore/bundle": 1.1.0 + "@sigstore/protobuf-specs": 0.2.1 make-fetch-happen: 11.1.1 transitivePeerDependencies: - supports-color - '@sigstore/sign@4.1.1': + "@sigstore/sign@4.1.1": dependencies: - '@gar/promise-retry': 1.0.3 - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 - make-fetch-happen: 15.0.5 + "@gar/promise-retry": 1.0.3 + "@sigstore/bundle": 4.0.0 + "@sigstore/core": 3.2.1 + "@sigstore/protobuf-specs": 0.5.1 + make-fetch-happen: 15.0.6 proc-log: 6.1.0 transitivePeerDependencies: - supports-color - '@sigstore/tuf@1.0.3': + "@sigstore/tuf@1.0.3(supports-color@8.1.1)": dependencies: - '@sigstore/protobuf-specs': 0.2.1 - tuf-js: 1.1.7 + "@sigstore/protobuf-specs": 0.2.1 + tuf-js: 1.1.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@sigstore/tuf@4.0.2': + "@sigstore/tuf@4.0.2": dependencies: - '@sigstore/protobuf-specs': 0.5.1 + "@sigstore/protobuf-specs": 0.5.1 tuf-js: 4.1.0 transitivePeerDependencies: - supports-color - '@sigstore/verify@3.1.1': + "@sigstore/verify@3.1.1": dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 + "@sigstore/bundle": 4.0.0 + "@sigstore/core": 3.2.1 + "@sigstore/protobuf-specs": 0.5.1 - '@simple-dom/document@1.4.0': + "@simple-dom/document@1.4.0": dependencies: - '@simple-dom/interface': 1.4.0 + "@simple-dom/interface": 1.4.0 - '@simple-dom/interface@1.4.0': {} + "@simple-dom/interface@1.4.0": {} - '@simple-git/args-pathspec@1.0.3': {} + "@simple-git/args-pathspec@1.0.3": {} - '@simple-git/argv-parser@1.1.1': + "@simple-git/argv-parser@1.1.1": dependencies: - '@simple-git/args-pathspec': 1.0.3 + "@simple-git/args-pathspec": 1.0.3 - '@simple-libs/child-process-utils@1.0.2': + "@simple-libs/child-process-utils@1.0.2": dependencies: - '@simple-libs/stream-utils': 1.2.0 + "@simple-libs/stream-utils": 1.2.0 - '@simple-libs/stream-utils@1.2.0': {} + "@simple-libs/stream-utils@1.2.0": {} - '@sinclair/typebox@0.27.10': {} + "@sinclair/typebox@0.27.10": {} - '@sinclair/typebox@0.34.49': {} + "@sinclair/typebox@0.34.49": {} - '@sindresorhus/base62@1.0.0': {} + "@sindresorhus/base62@1.0.0": {} - '@sindresorhus/is@0.14.0': {} + "@sindresorhus/is@0.14.0": {} - '@sindresorhus/is@4.6.0': {} + "@sindresorhus/is@7.2.0": {} - '@sindresorhus/is@7.2.0': {} + "@sindresorhus/merge-streams@2.3.0": {} - '@sindresorhus/merge-streams@2.3.0': {} + "@sindresorhus/merge-streams@4.0.0": {} - '@sindresorhus/merge-streams@4.0.0': {} - - '@sindresorhus/slugify@1.1.2': + "@sindresorhus/slugify@2.2.1": dependencies: - '@sindresorhus/transliterate': 0.1.2 - escape-string-regexp: 4.0.0 + "@sindresorhus/transliterate": 1.6.0 + escape-string-regexp: 5.0.0 - '@sindresorhus/transliterate@0.1.2': + "@sindresorhus/transliterate@1.6.0": dependencies: - escape-string-regexp: 2.0.0 - lodash.deburr: 4.1.0 + escape-string-regexp: 5.0.0 - '@sinonjs/commons@3.0.1': + "@sinonjs/commons@3.0.1": dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@10.3.0': + "@sinonjs/fake-timers@10.3.0": dependencies: - '@sinonjs/commons': 3.0.1 + "@sinonjs/commons": 3.0.1 - '@sinonjs/fake-timers@15.4.0': + "@sinonjs/fake-timers@15.4.0": dependencies: - '@sinonjs/commons': 3.0.1 + "@sinonjs/commons": 3.0.1 - '@sinonjs/samsam@10.0.2': + "@sinonjs/samsam@10.0.2": dependencies: - '@sinonjs/commons': 3.0.1 + "@sinonjs/commons": 3.0.1 type-detect: 4.1.0 - '@so-ric/colorspace@1.1.6': + "@so-ric/colorspace@1.1.6": dependencies: color: 5.0.3 text-hex: 1.0.0 - '@socket.io/component-emitter@3.1.2': {} + "@socket.io/component-emitter@3.1.2": {} - '@soda/friendly-errors-webpack-plugin@1.8.1(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))': + "@soda/friendly-errors-webpack-plugin@1.8.1(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))": dependencies: chalk: 3.0.0 error-stack-parser: 2.1.4 string-width: 4.2.3 strip-ansi: 6.0.1 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - '@soda/get-current-script@1.0.2': {} - - '@solid-devtools/debugger@0.23.4(solid-js@1.9.13)': - dependencies: - '@nothing-but/utils': 0.12.1 - '@solid-devtools/shared': 0.13.2(solid-js@1.9.13) - '@solid-primitives/bounds': 0.0.118(solid-js@1.9.13) - '@solid-primitives/cursor': 0.0.112(solid-js@1.9.13) - '@solid-primitives/event-bus': 1.1.3(solid-js@1.9.13) - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/keyboard': 1.3.5(solid-js@1.9.13) - '@solid-primitives/platform': 0.1.2(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/scheduled': 1.5.3(solid-js@1.9.13) - '@solid-primitives/static-store': 0.0.5(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 - - '@solid-devtools/shared@0.13.2(solid-js@1.9.13)': - dependencies: - '@solid-primitives/event-bus': 1.1.3(solid-js@1.9.13) - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/media': 2.3.5(solid-js@1.9.13) - '@solid-primitives/refs': 1.1.3(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/scheduled': 1.5.3(solid-js@1.9.13) - '@solid-primitives/static-store': 0.0.5(solid-js@1.9.13) - '@solid-primitives/styles': 0.0.111(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 - - '@solid-primitives/bounds@0.0.118(solid-js@1.9.13)': - dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.13) - '@solid-primitives/static-store': 0.0.5(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - '@solid-primitives/cursor@0.0.112(solid-js@1.9.13)': - dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + "@soda/get-current-script@1.0.2": {} - '@solid-primitives/event-bus@1.1.3(solid-js@1.9.13)': + "@solid-devtools/debugger@0.28.1(solid-js@1.9.13)": dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@nothing-but/utils": 0.17.0 + "@solid-devtools/shared": 0.20.0(solid-js@1.9.13) + "@solid-primitives/bounds": 0.1.5(solid-js@1.9.13) + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/keyboard": 1.3.5(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/scheduled": 1.5.3(solid-js@1.9.13) + "@solid-primitives/static-store": 0.1.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/event-listener@2.4.5(solid-js@1.9.13)': - dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-devtools/shared@0.20.0(solid-js@1.9.13)": + dependencies: + "@nothing-but/utils": 0.17.0 + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/media": 2.3.5(solid-js@1.9.13) + "@solid-primitives/refs": 1.1.3(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/scheduled": 1.5.3(solid-js@1.9.13) + "@solid-primitives/static-store": 0.1.3(solid-js@1.9.13) + "@solid-primitives/styles": 0.1.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/keyboard@1.3.5(solid-js@1.9.13)': + "@solid-primitives/bounds@0.1.5(solid-js@1.9.13)": dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/resize-observer": 2.1.5(solid-js@1.9.13) + "@solid-primitives/static-store": 0.1.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/media@2.3.5(solid-js@1.9.13)': + "@solid-primitives/event-listener@2.4.5(solid-js@1.9.13)": dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/platform@0.1.2(solid-js@1.9.13)': + "@solid-primitives/keyboard@1.3.5(solid-js@1.9.13)": dependencies: + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/refs@1.1.3(solid-js@1.9.13)': + "@solid-primitives/media@2.3.5(solid-js@1.9.13)": dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/static-store": 0.1.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.13)': + "@solid-primitives/refs@1.1.3(solid-js@1.9.13)": dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/rootless@1.5.3(solid-js@1.9.13)': + "@solid-primitives/resize-observer@2.1.5(solid-js@1.9.13)": dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/event-listener": 2.4.5(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/static-store": 0.1.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/scheduled@1.5.3(solid-js@1.9.13)': + "@solid-primitives/rootless@1.5.3(solid-js@1.9.13)": dependencies: + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/static-store@0.0.5(solid-js@1.9.13)': + "@solid-primitives/scheduled@1.5.3(solid-js@1.9.13)": dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/static-store@0.1.3(solid-js@1.9.13)': + "@solid-primitives/static-store@0.1.3(solid-js@1.9.13)": dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/styles@0.0.111(solid-js@1.9.13)': + "@solid-primitives/styles@0.1.3(solid-js@1.9.13)": dependencies: - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + "@solid-primitives/rootless": 1.5.3(solid-js@1.9.13) + "@solid-primitives/utils": 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 - '@solid-primitives/utils@6.4.0(solid-js@1.9.13)': + "@solid-primitives/utils@6.4.0(solid-js@1.9.13)": dependencies: solid-js: 1.9.13 - '@speed-highlight/core@1.2.15': {} + "@speed-highlight/core@1.2.17": {} - '@sphinxxxx/color-conversion@2.2.2': {} + "@sphinxxxx/color-conversion@2.2.2": {} - '@standard-schema/spec@1.1.0': {} + "@standard-schema/spec@1.1.0": {} - '@stencil/core@4.43.0': - optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.34.9 - '@rollup/rollup-darwin-x64': 4.34.9 - '@rollup/rollup-linux-arm64-gnu': 4.34.9 - '@rollup/rollup-linux-arm64-musl': 4.34.9 - '@rollup/rollup-linux-x64-gnu': 4.34.9 - '@rollup/rollup-linux-x64-musl': 4.34.9 - '@rollup/rollup-win32-arm64-msvc': 4.34.9 - '@rollup/rollup-win32-x64-msvc': 4.34.9 - - '@stencil/core@4.43.4': + "@stencil/core@4.43.5": optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.44.0 - '@rollup/rollup-darwin-x64': 4.44.0 - '@rollup/rollup-linux-arm64-gnu': 4.44.0 - '@rollup/rollup-linux-arm64-musl': 4.44.0 - '@rollup/rollup-linux-x64-gnu': 4.44.0 - '@rollup/rollup-linux-x64-musl': 4.44.0 - '@rollup/rollup-win32-arm64-msvc': 4.44.0 - '@rollup/rollup-win32-x64-msvc': 4.44.0 - - '@stencil/core@4.43.5': - optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.44.0 - '@rollup/rollup-darwin-x64': 4.44.0 - '@rollup/rollup-linux-arm64-gnu': 4.44.0 - '@rollup/rollup-linux-arm64-musl': 4.44.0 - '@rollup/rollup-linux-x64-gnu': 4.44.0 - '@rollup/rollup-linux-x64-musl': 4.44.0 - '@rollup/rollup-win32-arm64-msvc': 4.44.0 - '@rollup/rollup-win32-x64-msvc': 4.44.0 - - '@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0))': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/types': 8.60.0 - eslint: 10.4.1(jiti@2.7.0) + "@rollup/rollup-darwin-arm64": 4.44.0 + "@rollup/rollup-darwin-x64": 4.44.0 + "@rollup/rollup-linux-arm64-gnu": 4.44.0 + "@rollup/rollup-linux-arm64-musl": 4.44.0 + "@rollup/rollup-linux-x64-gnu": 4.44.0 + "@rollup/rollup-linux-x64-musl": 4.44.0 + "@rollup/rollup-win32-arm64-msvc": 4.44.0 + "@rollup/rollup-win32-x64-msvc": 4.44.0 + + "@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0))": + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/types": 8.61.0 + eslint: 10.5.0(jiti@2.7.0) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 picomatch: 4.0.4 - '@stylistic/stylelint-plugin@3.1.3(stylelint@16.26.1(typescript@6.0.3))': + "@stylistic/stylelint-plugin@3.1.3(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-tokenizer": 3.0.4 + "@csstools/media-query-list-parser": 3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) is-plain-object: 5.0.0 postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 style-search: 0.1.0 stylelint: 16.26.1(typescript@6.0.3) - '@surma/rollup-plugin-off-main-thread@2.2.3': + "@surma/rollup-plugin-off-main-thread@2.2.3": dependencies: ejs: 3.1.10 json5: 2.2.3 magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)': + "@sveltejs/acorn-typescript@1.0.10(acorn@8.17.0)": dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))': + "@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))": dependencies: - '@sveltejs/kit': 2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - import-meta-resolve: 4.2.0 + "@sveltejs/kit": 2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))': + "@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))": dependencies: - '@sveltejs/kit': 2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@sveltejs/kit": 2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0))': + "@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - '@types/cookie': 0.6.0 - acorn: 8.16.0 + "@standard-schema/spec": 1.1.0 + "@sveltejs/acorn-typescript": 1.0.10(acorn@8.17.0) + "@sveltejs/vite-plugin-svelte": 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@types/cookie": 0.6.0 + acorn: 8.17.0 cookie: 0.6.0 devalue: 5.8.1 esm-env: 1.2.2 @@ -52037,19 +58253,19 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) optionalDependencies: - '@opentelemetry/api': 1.9.1 - typescript: 5.9.3 + "@opentelemetry/api": 1.9.1 + typescript: 6.0.3 - '@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@sveltejs/kit@2.65.2(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@types/cookie': 0.6.0 - acorn: 8.16.0 + "@standard-schema/spec": 1.1.0 + "@sveltejs/acorn-typescript": 1.0.10(acorn@8.17.0) + "@sveltejs/vite-plugin-svelte": 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@types/cookie": 0.6.0 + acorn: 8.17.0 cookie: 0.6.0 devalue: 5.8.1 esm-env: 1.2.2 @@ -52058,103 +58274,91 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) + vite: 8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) optionalDependencies: - '@opentelemetry/api': 1.9.1 + "@opentelemetry/api": 1.9.1 typescript: 6.0.3 - '@sveltejs/package@2.5.7(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)': + "@sveltejs/load-config@0.1.1": {} + + "@sveltejs/package@2.5.8(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3)": dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 - semver: 7.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte2tsx: 0.7.55(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3) + semver: 7.8.4 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte2tsx: 0.7.56(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0))': + "@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - debug: 4.4.3(supports-color@5.5.0) - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - debug: 4.4.3(supports-color@5.5.0) deepmerge: 4.3.1 - kleur: 4.1.5 magic-string: 0.30.21 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte-hmr: 0.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vitefu: 0.2.5(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)) - transitivePeerDependencies: - - supports-color + obug: 2.1.3 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 - obug: 2.1.1 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + obug: 2.1.3 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) + vite: 8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.0)': + "@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.29.0)': + "@svgr/babel-preset@8.1.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@svgr/babel-plugin-add-jsx-attribute": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-svg-dynamic-title": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-svg-em-dimensions": 8.0.0(@babel/core@7.29.0) + "@svgr/babel-plugin-transform-react-native-svg": 8.1.0(@babel/core@7.29.0) + "@svgr/babel-plugin-transform-svg-component": 8.0.0(@babel/core@7.29.0) - '@svgr/core@8.1.0(typescript@6.0.3)': + "@svgr/core@8.1.0(typescript@6.0.3)": dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@svgr/babel-preset": 8.1.0(@babel/core@7.29.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@6.0.3) snake-case: 3.0.4 @@ -52162,1053 +58366,943 @@ snapshots: - supports-color - typescript - '@svgr/hast-util-to-babel-ast@8.0.0': + "@svgr/hast-util-to-babel-ast@8.0.0": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))': + "@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))": dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) - '@svgr/core': 8.1.0(typescript@6.0.3) - '@svgr/hast-util-to-babel-ast': 8.0.0 + "@babel/core": 7.29.0 + "@svgr/babel-preset": 8.1.0(@babel/core@7.29.0) + "@svgr/core": 8.1.0(typescript@6.0.3) + "@svgr/hast-util-to-babel-ast": 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3)': + "@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3)": dependencies: - '@svgr/core': 8.1.0(typescript@6.0.3) + "@svgr/core": 8.1.0(typescript@6.0.3) cosmiconfig: 8.3.6(typescript@6.0.3) deepmerge: 4.3.1 svgo: 3.3.3 transitivePeerDependencies: - typescript - '@svgr/webpack@8.1.0(typescript@6.0.3)': + "@svgr/webpack@8.1.0(typescript@6.0.3)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/preset-react': 7.28.5(@babel/core@7.29.0) - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@svgr/core': 8.1.0(typescript@6.0.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3) + "@babel/core": 7.29.0 + "@babel/plugin-transform-react-constant-elements": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/preset-react": 7.29.7(@babel/core@7.29.0) + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) + "@svgr/core": 8.1.0(typescript@6.0.3) + "@svgr/plugin-jsx": 8.1.0(@svgr/core@8.1.0(typescript@6.0.3)) + "@svgr/plugin-svgo": 8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3) transitivePeerDependencies: - supports-color - typescript - '@swc-node/core@1.14.1(@swc/core@1.15.40)(@swc/types@0.1.26)': + "@swc-node/core@1.14.1(@swc/core@1.15.41)(@swc/types@0.1.26)": dependencies: - '@swc/core': 1.15.40 - '@swc/types': 0.1.26 + "@swc/core": 1.15.41 + "@swc/types": 0.1.26 - '@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3)': + "@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@swc-node/core': 1.14.1(@swc/core@1.15.40)(@swc/types@0.1.26) - '@swc-node/sourcemap-support': 0.6.1 - '@swc/core': 1.15.40 + "@swc-node/core": 1.14.1(@swc/core@1.15.41)(@swc/types@0.1.26) + "@swc-node/sourcemap-support": 0.6.1 + "@swc/core": 1.15.41 colorette: 2.0.20 - debug: 4.4.3(supports-color@5.5.0) - oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + debug: 4.4.3(supports-color@8.1.1) + oxc-resolver: 11.20.0 pirates: 4.0.7 tslib: 2.8.1 typescript: 6.0.3 transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - '@swc/types' + - "@swc/types" - supports-color - '@swc-node/sourcemap-support@0.6.1': + "@swc-node/sourcemap-support@0.6.1": dependencies: source-map-support: 0.5.21 tslib: 2.8.1 - '@swc/core-darwin-arm64@1.15.40': + "@swc/core-darwin-arm64@1.15.41": optional: true - '@swc/core-darwin-x64@1.15.40': + "@swc/core-darwin-x64@1.15.41": optional: true - '@swc/core-linux-arm-gnueabihf@1.15.40': + "@swc/core-linux-arm-gnueabihf@1.15.41": optional: true - '@swc/core-linux-arm64-gnu@1.15.40': + "@swc/core-linux-arm64-gnu@1.15.41": optional: true - '@swc/core-linux-arm64-musl@1.15.40': + "@swc/core-linux-arm64-musl@1.15.41": optional: true - '@swc/core-linux-ppc64-gnu@1.15.40': + "@swc/core-linux-ppc64-gnu@1.15.41": optional: true - '@swc/core-linux-s390x-gnu@1.15.40': + "@swc/core-linux-s390x-gnu@1.15.41": optional: true - '@swc/core-linux-x64-gnu@1.15.40': + "@swc/core-linux-x64-gnu@1.15.41": optional: true - '@swc/core-linux-x64-musl@1.15.40': + "@swc/core-linux-x64-musl@1.15.41": optional: true - '@swc/core-win32-arm64-msvc@1.15.40': + "@swc/core-win32-arm64-msvc@1.15.41": optional: true - '@swc/core-win32-ia32-msvc@1.15.40': + "@swc/core-win32-ia32-msvc@1.15.41": optional: true - '@swc/core-win32-x64-msvc@1.15.40': + "@swc/core-win32-x64-msvc@1.15.41": optional: true - '@swc/core@1.15.40': + "@swc/core@1.15.41": dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.26 + "@swc/counter": 0.1.3 + "@swc/types": 0.1.26 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.40 - '@swc/core-darwin-x64': 1.15.40 - '@swc/core-linux-arm-gnueabihf': 1.15.40 - '@swc/core-linux-arm64-gnu': 1.15.40 - '@swc/core-linux-arm64-musl': 1.15.40 - '@swc/core-linux-ppc64-gnu': 1.15.40 - '@swc/core-linux-s390x-gnu': 1.15.40 - '@swc/core-linux-x64-gnu': 1.15.40 - '@swc/core-linux-x64-musl': 1.15.40 - '@swc/core-win32-arm64-msvc': 1.15.40 - '@swc/core-win32-ia32-msvc': 1.15.40 - '@swc/core-win32-x64-msvc': 1.15.40 - - '@swc/counter@0.1.3': {} - - '@swc/helpers@0.5.15': + "@swc/core-darwin-arm64": 1.15.41 + "@swc/core-darwin-x64": 1.15.41 + "@swc/core-linux-arm-gnueabihf": 1.15.41 + "@swc/core-linux-arm64-gnu": 1.15.41 + "@swc/core-linux-arm64-musl": 1.15.41 + "@swc/core-linux-ppc64-gnu": 1.15.41 + "@swc/core-linux-s390x-gnu": 1.15.41 + "@swc/core-linux-x64-gnu": 1.15.41 + "@swc/core-linux-x64-musl": 1.15.41 + "@swc/core-win32-arm64-msvc": 1.15.41 + "@swc/core-win32-ia32-msvc": 1.15.41 + "@swc/core-win32-x64-msvc": 1.15.41 + + "@swc/counter@0.1.3": {} + + "@swc/helpers@0.5.15": dependencies: tslib: 2.8.1 - '@swc/types@0.1.26': + "@swc/types@0.1.26": dependencies: - '@swc/counter': 0.1.3 + "@swc/counter": 0.1.3 - '@szmarczak/http-timer@1.1.2': + "@szmarczak/http-timer@1.1.2": dependencies: defer-to-connect: 1.1.3 - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@tabby_ai/hijri-converter@1.0.5': {} + "@tabby_ai/hijri-converter@1.0.5": {} - '@tannin/compile@1.1.0': + "@tannin/compile@1.1.0": dependencies: - '@tannin/evaluate': 1.2.0 - '@tannin/postfix': 1.1.0 + "@tannin/evaluate": 1.2.0 + "@tannin/postfix": 1.1.0 - '@tannin/evaluate@1.2.0': {} + "@tannin/evaluate@1.2.0": {} - '@tannin/plural-forms@1.1.0': + "@tannin/plural-forms@1.1.0": dependencies: - '@tannin/compile': 1.1.0 + "@tannin/compile": 1.1.0 - '@tannin/postfix@1.1.0': {} + "@tannin/postfix@1.1.0": {} - '@tannin/sprintf@1.3.3': {} + "@tannin/sprintf@1.3.3": {} - '@testing-library/dom@10.4.1': + "@testing-library/dom@10.4.1": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.29.2 - '@types/aria-query': 5.0.4 + "@babel/code-frame": 7.29.7 + "@babel/runtime": 7.29.7 + "@types/aria-query": 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.9.1': + "@testing-library/jest-dom@6.9.1": dependencies: - '@adobe/css-tools': 4.5.0 + "@adobe/css-tools": 4.5.0 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)": dependencies: - '@babel/runtime': 7.29.2 - '@testing-library/dom': 10.4.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@babel/runtime": 7.29.7 + "@testing-library/dom": 10.4.1 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 19.2.15 - '@types/react-dom': 19.2.3(@types/react@19.2.15) + "@types/react": 19.2.17 + "@types/react-dom": 19.2.3(@types/react@19.2.17) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + "@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)": dependencies: - '@testing-library/dom': 10.4.1 - - '@tootallnate/once@2.0.1': {} + "@testing-library/dom": 10.4.1 - '@tootallnate/quickjs-emscripten@0.23.0': {} + "@tootallnate/once@2.0.1": {} - '@tsconfig/ember@3.0.12': {} + "@tootallnate/quickjs-emscripten@0.23.0": {} - '@tsconfig/node10@1.0.12': {} + "@tsconfig/node10@1.0.12": {} - '@tsconfig/node12@1.0.11': {} + "@tsconfig/node12@1.0.11": {} - '@tsconfig/node14@1.0.3': {} + "@tsconfig/node14@1.0.3": {} - '@tsconfig/node16@1.0.4': {} + "@tsconfig/node16@1.0.4": {} - '@tsconfig/node18@18.2.6': {} + "@tsconfig/node18@18.2.6": {} - '@tsconfig/svelte@5.0.8': {} + "@tsconfig/svelte@5.0.8": {} - '@tufjs/canonical-json@1.0.0': {} + "@tufjs/canonical-json@1.0.0": {} - '@tufjs/canonical-json@2.0.0': {} + "@tufjs/canonical-json@2.0.0": {} - '@tufjs/models@1.0.4': + "@tufjs/models@1.0.4": dependencies: - '@tufjs/canonical-json': 1.0.0 + "@tufjs/canonical-json": 1.0.0 minimatch: 9.0.9 - '@tufjs/models@4.1.0': + "@tufjs/models@4.1.0": dependencies: - '@tufjs/canonical-json': 2.0.0 + "@tufjs/canonical-json": 2.0.0 minimatch: 10.2.5 - '@tybys/wasm-util@0.10.2': + "@tybys/wasm-util@0.10.2": dependencies: tslib: 2.8.1 optional: true - '@tybys/wasm-util@0.9.0': + "@tybys/wasm-util@0.9.0": dependencies: tslib: 2.8.1 - '@types/accepts@1.3.7': + "@types/accepts@1.3.7": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/aria-query@5.0.4': {} + "@types/aria-query@5.0.4": {} - '@types/babel__code-frame@7.27.0': {} + "@types/babel__code-frame@7.27.0": {} - '@types/babel__core@7.20.5': + "@types/babel__core@7.20.5": dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 + "@types/babel__generator": 7.27.0 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.28.0 - '@types/babel__generator@7.27.0': + "@types/babel__generator@7.27.0": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 - '@types/babel__template@7.4.4': + "@types/babel__template@7.4.4": dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 - '@types/babel__traverse@7.28.0': + "@types/babel__traverse@7.28.0": dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 - '@types/body-parser@1.19.6': + "@types/body-parser@1.19.6": dependencies: - '@types/connect': 3.4.38 - '@types/node': 25.9.1 + "@types/connect": 3.4.38 + "@types/node": 25.9.3 - '@types/bonjour@3.5.13': + "@types/bonjour@3.5.13": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/browserslist-useragent@3.0.7': {} + "@types/browserslist-useragent@3.0.7": {} - '@types/browserslist@4.15.4': + "@types/browserslist@4.15.4": dependencies: browserslist: 4.28.2 - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.2.0 - '@types/keyv': 3.1.4 - '@types/node': 25.9.1 - '@types/responselike': 1.0.3 - - '@types/caniuse-api@3.0.6': {} + "@types/caniuse-api@3.0.6": {} - '@types/chai-dom@1.11.3': + "@types/chai-dom@1.11.3": dependencies: - '@types/chai': 4.3.20 + "@types/chai": 4.3.20 - '@types/chai@4.3.20': {} + "@types/chai@4.3.20": {} - '@types/chai@5.2.3': + "@types/chai@5.2.3": dependencies: - '@types/deep-eql': 4.0.2 + "@types/deep-eql": 4.0.2 assertion-error: 2.0.1 - '@types/co-body@6.1.3': + "@types/co-body@6.1.3": dependencies: - '@types/node': 25.9.1 - '@types/qs': 6.15.1 + "@types/node": 25.9.3 + "@types/qs": 6.15.1 - '@types/command-line-args@5.2.3': {} + "@types/command-line-args@5.2.3": {} - '@types/command-line-usage@5.0.4': {} + "@types/command-line-usage@5.0.4": {} - '@types/compression@1.7.5': + "@types/compression@1.7.5": dependencies: - '@types/express': 5.0.6 + "@types/express": 5.0.6 - '@types/connect-history-api-fallback@1.5.4': + "@types/connect-history-api-fallback@1.5.4": dependencies: - '@types/express-serve-static-core': 4.19.8 - '@types/node': 25.9.1 + "@types/express-serve-static-core": 5.1.1 + "@types/node": 25.9.3 - '@types/connect-livereload@0.6.3': + "@types/connect-livereload@0.6.3": dependencies: - '@types/connect': 3.4.38 + "@types/connect": 3.4.38 - '@types/connect@3.4.38': + "@types/connect@3.4.38": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/content-disposition@0.5.9': {} + "@types/content-disposition@0.5.9": {} - '@types/convert-source-map@2.0.3': {} + "@types/convert-source-map@2.0.3": {} - '@types/cookie@0.6.0': {} + "@types/cookie@0.6.0": {} - '@types/cookies@0.9.2': + "@types/cookies@0.9.2": dependencies: - '@types/connect': 3.4.38 - '@types/express': 5.0.6 - '@types/keygrip': 1.0.6 - '@types/node': 25.9.1 + "@types/connect": 3.4.38 + "@types/express": 5.0.6 + "@types/keygrip": 1.0.6 + "@types/node": 25.9.3 - '@types/cors@2.8.19': + "@types/cors@2.8.19": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/debounce@1.2.4': {} + "@types/debounce@1.2.4": {} - '@types/debug@4.1.13': + "@types/debug@4.1.13": dependencies: - '@types/ms': 2.1.0 + "@types/ms": 2.1.0 - '@types/deep-eql@4.0.2': {} + "@types/deep-eql@4.0.2": {} - '@types/ember-qunit@6.1.3(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0)': + "@types/ember@4.0.11(@babel/core@7.29.0)": dependencies: - ember-qunit: 9.0.4(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0) + "@types/ember__application": 4.0.11(@babel/core@7.29.0) + "@types/ember__array": 4.0.10(@babel/core@7.29.0) + "@types/ember__component": 4.0.22(@babel/core@7.29.0) + "@types/ember__controller": 4.0.12(@babel/core@7.29.0) + "@types/ember__debug": 4.0.8(@babel/core@7.29.0) + "@types/ember__engine": 4.0.11(@babel/core@7.29.0) + "@types/ember__error": 4.0.6 + "@types/ember__object": 4.0.12(@babel/core@7.29.0) + "@types/ember__polyfills": 4.0.6 + "@types/ember__routing": 4.0.23(@babel/core@7.29.0) + "@types/ember__runloop": 4.0.10(@babel/core@7.29.0) + "@types/ember__service": 4.0.9(@babel/core@7.29.0) + "@types/ember__string": 3.0.15 + "@types/ember__template": 4.0.7 + "@types/ember__test": 4.0.6(@babel/core@7.29.0) + "@types/ember__utils": 4.0.7(@babel/core@7.29.0) + "@types/rsvp": 4.0.9 transitivePeerDependencies: - - '@babel/core' - - '@ember/test-helpers' - - '@glint/template' - - qunit + - "@babel/core" - supports-color - '@types/ember-resolver@9.0.2': - dependencies: - ember-resolver: 13.2.0 - - '@types/ember@4.0.11': - dependencies: - '@types/ember__application': 4.0.11(@babel/core@7.29.0) - '@types/ember__array': 4.0.10 - '@types/ember__component': 4.0.22 - '@types/ember__controller': 4.0.12 - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 - '@types/ember__error': 4.0.6 - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__polyfills': 4.0.6 - '@types/ember__routing': 4.0.23 - '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9 - '@types/ember__string': 3.0.15 - '@types/ember__template': 4.0.7 - '@types/ember__test': 4.0.6(@babel/core@7.29.0) - '@types/ember__utils': 4.0.7 - '@types/rsvp': 4.0.9 - - '@types/ember@4.0.11(@babel/core@7.29.0)': + "@types/ember__application@4.0.11(@babel/core@7.29.0)": dependencies: - '@types/ember__application': 4.0.11(@babel/core@7.29.0) - '@types/ember__array': 4.0.10(@babel/core@7.29.0) - '@types/ember__component': 4.0.22(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12(@babel/core@7.29.0) - '@types/ember__debug': 4.0.8(@babel/core@7.29.0) - '@types/ember__engine': 4.0.11(@babel/core@7.29.0) - '@types/ember__error': 4.0.6 - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__polyfills': 4.0.6 - '@types/ember__routing': 4.0.23(@babel/core@7.29.0) - '@types/ember__runloop': 4.0.10(@babel/core@7.29.0) - '@types/ember__service': 4.0.9(@babel/core@7.29.0) - '@types/ember__string': 3.0.15 - '@types/ember__template': 4.0.7 - '@types/ember__test': 4.0.6(@babel/core@7.29.0) - '@types/ember__utils': 4.0.7(@babel/core@7.29.0) - '@types/rsvp': 4.0.9 + "@glimmer/component": 1.1.2(@babel/core@7.29.0) + "@types/ember": 4.0.11(@babel/core@7.29.0) + "@types/ember__engine": 4.0.11(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) + "@types/ember__owner": 4.0.9 + "@types/ember__routing": 4.0.23(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__application@4.0.11(@babel/core@7.29.0)': + "@types/ember__array@4.0.10(@babel/core@7.29.0)": dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.29.0) - '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__engine': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__owner': 4.0.9 - '@types/ember__routing': 4.0.23(@babel/core@7.29.0) + "@types/ember": 4.0.11(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__array@4.0.10': + "@types/ember__component@4.0.22(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - - '@types/ember__array@4.0.10(@babel/core@7.29.0)': - dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12(@babel/core@7.29.0) + "@types/ember": 4.0.11(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__component@4.0.22': + "@types/ember__controller@4.0.12(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - - '@types/ember__component@4.0.22(@babel/core@7.29.0)': - dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__controller@4.0.12': - dependencies: - '@types/ember__object': 4.0.12 - - '@types/ember__controller@4.0.12(@babel/core@7.29.0)': + "@types/ember__debug@4.0.8(@babel/core@7.29.0)": dependencies: - '@types/ember__object': 4.0.12(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) + "@types/ember__owner": 4.0.9 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__debug@4.0.8': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 + "@types/ember__destroyable@4.0.5": {} - '@types/ember__debug@4.0.8(@babel/core@7.29.0)': + "@types/ember__engine@4.0.11(@babel/core@7.29.0)": dependencies: - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__owner': 4.0.9 + "@types/ember__object": 4.0.12(@babel/core@7.29.0) + "@types/ember__owner": 4.0.9 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__destroyable@4.0.5': {} + "@types/ember__error@4.0.6": {} - '@types/ember__engine@4.0.11': + "@types/ember__object@4.0.12(@babel/core@7.29.0)": dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 - - '@types/ember__engine@4.0.11(@babel/core@7.29.0)': - dependencies: - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__owner': 4.0.9 + "@types/ember": 4.0.11(@babel/core@7.29.0) + "@types/rsvp": 4.0.9 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__error@4.0.6': {} + "@types/ember__owner@4.0.9": {} - '@types/ember__object@4.0.12': - dependencies: - '@types/ember': 4.0.11 - '@types/rsvp': 4.0.9 + "@types/ember__polyfills@4.0.6": {} - '@types/ember__object@4.0.12(@babel/core@7.29.0)': + "@types/ember__routing@4.0.23(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/rsvp': 4.0.9 + "@types/ember": 4.0.11(@babel/core@7.29.0) + "@types/ember__controller": 4.0.12(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) + "@types/ember__service": 4.0.9(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__owner@4.0.9': {} - - '@types/ember__polyfills@4.0.6': {} - - '@types/ember__routing@4.0.23': + "@types/ember__runloop@4.0.10(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11 - '@types/ember__controller': 4.0.12 - '@types/ember__object': 4.0.12 - '@types/ember__service': 4.0.9 - - '@types/ember__routing@4.0.23(@babel/core@7.29.0)': - dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12 - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__service': 4.0.9 + "@types/ember": 4.0.11(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__runloop@4.0.10': + "@types/ember__service@4.0.9(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11 - - '@types/ember__runloop@4.0.10(@babel/core@7.29.0)': - dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) + "@types/ember__object": 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__service@4.0.9': - dependencies: - '@types/ember__object': 4.0.12 + "@types/ember__string@3.0.15": {} - '@types/ember__service@4.0.9(@babel/core@7.29.0)': + "@types/ember__string@3.16.3": dependencies: - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - transitivePeerDependencies: - - '@babel/core' - - supports-color + "@types/ember__template": 4.0.7 - '@types/ember__string@3.0.15': {} + "@types/ember__template@4.0.7": {} - '@types/ember__template@4.0.7': {} - - '@types/ember__test-helpers@2.9.3(@babel/core@7.29.0)': - dependencies: - '@ember/test-helpers': 5.4.2(@babel/core@7.29.0) - transitivePeerDependencies: - - '@babel/core' - - '@glint/template' - - supports-color - - '@types/ember__test@4.0.6(@babel/core@7.29.0)': + "@types/ember__test@4.0.6(@babel/core@7.29.0)": dependencies: - '@types/ember__application': 4.0.11(@babel/core@7.29.0) + "@types/ember__application": 4.0.11(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/ember__utils@4.0.7': + "@types/ember__utils@4.0.7(@babel/core@7.29.0)": dependencies: - '@types/ember': 4.0.11 - - '@types/ember__utils@4.0.7(@babel/core@7.29.0)': - dependencies: - '@types/ember': 4.0.11(@babel/core@7.29.0) + "@types/ember": 4.0.11(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - '@types/eslint-scope@3.7.7': + "@types/eslint@8.56.12": dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.9 + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 - '@types/eslint@8.56.12': + "@types/eslint@9.6.1": dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 + "@types/esrecurse@4.3.1": {} - '@types/esrecurse@4.3.1': {} + "@types/estree@0.0.39": {} - '@types/estree@0.0.39': {} + "@types/estree@1.0.8": {} - '@types/estree@1.0.8': {} + "@types/estree@1.0.9": {} - '@types/estree@1.0.9': {} - - '@types/etag@1.8.3': + "@types/etag@1.8.3": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/etag@1.8.4': + "@types/etag@1.8.4": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/express-serve-static-core@4.19.8': + "@types/express-serve-static-core@4.19.8": dependencies: - '@types/node': 25.9.1 - '@types/qs': 6.15.1 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 + "@types/node": 25.9.3 + "@types/qs": 6.15.1 + "@types/range-parser": 1.2.7 + "@types/send": 1.2.1 - '@types/express-serve-static-core@5.1.1': + "@types/express-serve-static-core@5.1.1": dependencies: - '@types/node': 25.9.1 - '@types/qs': 6.15.1 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 + "@types/node": 25.9.3 + "@types/qs": 6.15.1 + "@types/range-parser": 1.2.7 + "@types/send": 1.2.1 - '@types/express@4.17.25': + "@types/express@4.17.25": dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.15.1 - '@types/serve-static': 1.15.10 + "@types/body-parser": 1.19.6 + "@types/express-serve-static-core": 4.19.8 + "@types/qs": 6.15.1 + "@types/serve-static": 1.15.10 - '@types/express@5.0.6': + "@types/express@5.0.6": dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.1 - '@types/serve-static': 2.2.0 + "@types/body-parser": 1.19.6 + "@types/express-serve-static-core": 5.1.1 + "@types/serve-static": 2.2.0 - '@types/file-loader@5.0.4': + "@types/file-loader@5.0.4": dependencies: - '@types/webpack': 4.41.40 + "@types/webpack": 4.41.40 - '@types/fs-extra@5.1.0': + "@types/fs-extra@5.1.0": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/fs-extra@8.1.5': + "@types/fs-extra@8.1.5": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 + + "@types/gensync@1.0.5": {} - '@types/glob@7.2.0': + "@types/glob@7.2.0": dependencies: - '@types/minimatch': 6.0.0 - '@types/node': 25.9.1 + "@types/minimatch": 6.0.0 + "@types/node": 25.9.3 - '@types/glob@9.0.0': + "@types/glob@9.0.0": dependencies: glob: 13.0.6 - '@types/graceful-fs@4.1.9': + "@types/graceful-fs@4.1.9": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/gradient-parser@1.1.0': {} + "@types/gradient-parser@1.1.0": {} - '@types/hast@3.0.4': + "@types/hast@3.0.4": dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 - '@types/highlight-words-core@1.2.1': {} + "@types/highlight-words-core@1.2.1": {} - '@types/html-minifier-terser@5.1.2': {} + "@types/html-minifier-terser@5.1.2": {} - '@types/html-minifier-terser@6.1.0': {} + "@types/html-minifier-terser@6.1.0": {} - '@types/html-minifier-terser@7.0.2': {} + "@types/html-minifier-terser@7.0.2": {} - '@types/http-assert@1.5.6': {} + "@types/http-assert@1.5.6": {} - '@types/http-cache-semantics@4.2.0': {} + "@types/http-errors@2.0.5": {} - '@types/http-errors@2.0.5': {} - - '@types/http-proxy@1.17.17': + "@types/http-proxy@1.17.17": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/istanbul-lib-coverage@2.0.6': {} + "@types/istanbul-lib-coverage@2.0.6": {} - '@types/istanbul-lib-report@3.0.3': + "@types/istanbul-lib-report@3.0.3": dependencies: - '@types/istanbul-lib-coverage': 2.0.6 + "@types/istanbul-lib-coverage": 2.0.6 - '@types/istanbul-reports@3.0.4': + "@types/istanbul-reports@3.0.4": dependencies: - '@types/istanbul-lib-report': 3.0.3 + "@types/istanbul-lib-report": 3.0.3 - '@types/jasmine@6.0.0': {} + "@types/jasmine@6.0.0": {} - '@types/jasminewd2@2.0.13': + "@types/jasminewd2@2.0.13": dependencies: - '@types/jasmine': 6.0.0 + "@types/jasmine": 6.0.0 - '@types/jest@30.0.0': + "@types/jest@30.0.0": dependencies: expect: 30.4.1 pretty-format: 30.4.1 - '@types/jquery@4.0.0': {} + "@types/jquery@4.0.1": {} - '@types/jsdom@21.1.7': + "@types/jsdom@21.1.7": dependencies: - '@types/node': 25.9.1 - '@types/tough-cookie': 4.0.5 + "@types/node": 25.9.3 + "@types/tough-cookie": 4.0.5 parse5: 7.3.0 - '@types/jsdom@28.0.3': + "@types/jsdom@28.0.3": dependencies: - '@types/node': 25.9.1 - '@types/tough-cookie': 4.0.5 + "@types/node": 25.9.3 + "@types/tough-cookie": 4.0.5 parse5: 8.0.1 - undici-types: 7.25.0 + undici-types: 7.28.0 - '@types/jsesc@2.5.1': {} + "@types/jsesc@2.5.1": {} - '@types/json-schema@7.0.15': {} + "@types/json-schema@7.0.15": {} - '@types/json5@0.0.29': {} + "@types/json5@0.0.29": {} - '@types/karma-coverage-istanbul-reporter@2.1.4': {} + "@types/karma-coverage-istanbul-reporter@2.1.4": {} - '@types/karma-mocha-reporter@2.2.4': + "@types/karma-mocha-reporter@2.2.4": dependencies: - '@types/karma': 5.0.1 + "@types/karma": 5.0.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@types/karma-mocha@1.3.4': + "@types/karma-mocha@1.3.4": dependencies: - '@types/karma': 5.0.1 + "@types/karma": 5.0.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@types/karma@5.0.1': + "@types/karma@5.0.1(supports-color@8.1.1)": dependencies: - '@types/node': 25.9.1 - log4js: 4.5.1 + "@types/node": 25.9.3 + log4js: 4.5.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@types/keygrip@1.0.6': {} + "@types/keygrip@1.0.6": {} - '@types/keyv@3.1.4': + "@types/keyv@3.1.4": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/klaw@3.0.7': + "@types/klaw@3.0.7": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/koa-compose@3.2.9': + "@types/koa-compose@3.2.9": dependencies: - '@types/koa': 2.15.2 + "@types/koa": 2.15.2 - '@types/koa-compress@2.0.9': + "@types/koa-compress@2.0.9": dependencies: - '@types/koa': 2.15.2 - '@types/node': 25.9.1 + "@types/koa": 2.15.2 + "@types/node": 25.9.3 - '@types/koa-etag@3.0.4': + "@types/koa-etag@3.0.4": dependencies: - '@types/etag': 1.8.4 - '@types/koa': 2.15.2 + "@types/etag": 1.8.4 + "@types/koa": 2.15.2 - '@types/koa-send@4.1.6': + "@types/koa-send@4.1.6": dependencies: - '@types/koa': 2.15.2 + "@types/koa": 2.15.2 - '@types/koa-static@4.0.4': + "@types/koa-static@4.0.4": dependencies: - '@types/koa': 2.15.2 - '@types/koa-send': 4.1.6 + "@types/koa": 2.15.2 + "@types/koa-send": 4.1.6 - '@types/koa@2.15.2': + "@types/koa@2.15.2": dependencies: - '@types/accepts': 1.3.7 - '@types/content-disposition': 0.5.9 - '@types/cookies': 0.9.2 - '@types/http-assert': 1.5.6 - '@types/http-errors': 2.0.5 - '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.9 - '@types/node': 25.9.1 + "@types/accepts": 1.3.7 + "@types/content-disposition": 0.5.9 + "@types/cookies": 0.9.2 + "@types/http-assert": 1.5.6 + "@types/http-errors": 2.0.5 + "@types/keygrip": 1.0.6 + "@types/koa-compose": 3.2.9 + "@types/node": 25.9.3 - '@types/koa__cors@3.3.1': + "@types/koa__cors@3.3.1": dependencies: - '@types/koa': 2.15.2 + "@types/koa": 2.15.2 - '@types/less@3.0.6': {} + "@types/less@3.0.6": {} - '@types/linkify-it@5.0.0': {} + "@types/linkify-it@5.0.0": {} - '@types/livereload@0.9.5': + "@types/livereload@0.9.5": dependencies: - '@types/ws': 8.18.1 + "@types/ws": 8.18.1 - '@types/lru-cache@5.1.1': {} + "@types/lru-cache@5.1.1": {} - '@types/luxon@3.7.1': {} + "@types/luxon@3.7.1": {} - '@types/markdown-it@14.1.2': + "@types/markdown-it@14.1.2": dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 + "@types/linkify-it": 5.0.0 + "@types/mdurl": 2.0.0 - '@types/mdast@4.0.4': + "@types/mdast@4.0.4": dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 - '@types/mdurl@2.0.0': {} + "@types/mdurl@2.0.0": {} - '@types/mime-types@2.1.4': {} + "@types/mime-types@2.1.4": {} - '@types/mime@1.3.5': {} + "@types/mime@1.3.5": {} - '@types/minimatch@3.0.5': {} + "@types/minimatch@3.0.5": {} - '@types/minimatch@6.0.0': + "@types/minimatch@6.0.0": dependencies: minimatch: 10.2.5 - '@types/minimist@1.2.5': {} + "@types/minimist@1.2.5": {} - '@types/mocha@10.0.10': {} + "@types/mocha@10.0.10": {} - '@types/mousetrap@1.6.15': {} + "@types/mousetrap@1.6.15": {} - '@types/ms@2.1.0': {} + "@types/ms@2.1.0": {} - '@types/mysql@2.15.26': + "@types/mysql@2.15.26": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/nlcst@2.0.3': + "@types/nlcst@2.0.3": dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 - '@types/node-forge@1.3.14': + "@types/node-forge@1.3.14": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/node@16.18.126': {} + "@types/node@16.18.126": {} - '@types/node@20.19.41': + "@types/node@20.19.43": dependencies: undici-types: 6.21.0 - '@types/node@24.12.4': + "@types/node@24.13.2": dependencies: - undici-types: 7.16.0 + undici-types: 7.18.2 - '@types/node@25.9.1': + "@types/node@25.9.3": dependencies: undici-types: 7.24.6 - '@types/normalize-package-data@2.4.4': {} + "@types/normalize-package-data@2.4.4": {} - '@types/optimize-css-assets-webpack-plugin@5.0.8': + "@types/optimize-css-assets-webpack-plugin@5.0.8": dependencies: - '@types/webpack': 4.41.40 + "@types/webpack": 4.41.40 - '@types/parse-json@4.0.2': {} + "@types/parse-json@4.0.2": {} - '@types/parse5@6.0.3': {} + "@types/parse5@6.0.3": {} - '@types/path-is-inside@1.0.3': {} + "@types/path-is-inside@1.0.3": {} - '@types/pg-pool@2.0.6': + "@types/pg-pool@2.0.6": dependencies: - '@types/pg': 8.6.1 + "@types/pg": 8.6.1 - '@types/pg@8.6.1': + "@types/pg@8.6.1": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 pg-protocol: 1.14.0 pg-types: 2.2.0 - '@types/prompts@2.4.9': + "@types/prompts@2.4.9": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 kleur: 3.0.3 - '@types/prop-types@15.7.15': {} - - '@types/pug@2.0.10': {} + "@types/prop-types@15.7.15": {} - '@types/q@0.0.32': {} + "@types/pug@2.0.10": {} - '@types/q@1.5.8': {} + "@types/q@1.5.8": {} - '@types/qs@6.15.1': {} + "@types/qs@6.15.1": {} - '@types/qunit@2.19.14': {} + "@types/qunit@2.19.14": {} - '@types/range-parser@1.2.7': {} + "@types/range-parser@1.2.7": {} - '@types/react-dom@18.3.7(@types/react@18.3.29)': + "@types/react-dom@18.3.7(@types/react@18.3.31)": dependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - '@types/react-dom@19.2.3(@types/react@18.3.29)': + "@types/react-dom@19.2.3(@types/react@18.3.31)": dependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 optional: true - '@types/react-dom@19.2.3(@types/react@19.2.15)': + "@types/react-dom@19.2.3(@types/react@19.2.17)": dependencies: - '@types/react': 19.2.15 + "@types/react": 19.2.17 - '@types/react@18.3.29': + "@types/react@18.3.31": dependencies: - '@types/prop-types': 15.7.15 + "@types/prop-types": 15.7.15 csstype: 3.2.3 - '@types/react@19.2.15': + "@types/react@19.2.17": dependencies: csstype: 3.2.3 - '@types/resolve@0.0.8': + "@types/resolve@0.0.8": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/resolve@1.17.1': + "@types/resolve@1.17.1": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/resolve@1.20.2': {} + "@types/resolve@1.20.2": {} - '@types/responselike@1.0.3': + "@types/responselike@1.0.3": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/retry@0.12.0': {} + "@types/retry@0.12.0": {} - '@types/retry@0.12.2': {} + "@types/retry@0.12.2": {} - '@types/rimraf@2.0.5': + "@types/rimraf@2.0.5": dependencies: - '@types/glob': 9.0.0 - '@types/node': 25.9.1 - - '@types/rsvp@4.0.9': {} + "@types/glob": 9.0.0 + "@types/node": 25.9.3 - '@types/selenium-webdriver@3.0.26': {} + "@types/rsvp@4.0.9": {} - '@types/semver@7.7.1': {} + "@types/semver@7.7.1": {} - '@types/send@0.17.6': + "@types/send@0.17.6": dependencies: - '@types/mime': 1.3.5 - '@types/node': 25.9.1 + "@types/mime": 1.3.5 + "@types/node": 25.9.3 - '@types/send@1.2.1': + "@types/send@1.2.1": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/serve-index@1.9.4': + "@types/serve-index@1.9.4": dependencies: - '@types/express': 5.0.6 + "@types/express": 5.0.6 - '@types/serve-static@1.15.10': + "@types/serve-static@1.15.10": dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 25.9.1 - '@types/send': 0.17.6 + "@types/http-errors": 2.0.5 + "@types/node": 25.9.3 + "@types/send": 0.17.6 - '@types/serve-static@1.15.7': + "@types/serve-static@1.15.7": dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 25.9.1 - '@types/send': 1.2.1 + "@types/http-errors": 2.0.5 + "@types/node": 25.9.3 + "@types/send": 1.2.1 - '@types/serve-static@2.2.0': + "@types/serve-static@2.2.0": dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 25.9.1 + "@types/http-errors": 2.0.5 + "@types/node": 25.9.3 - '@types/shimmer@1.2.0': {} + "@types/shimmer@1.2.0": {} - '@types/sinon-chai@3.2.12': + "@types/sinon-chai@3.2.12": dependencies: - '@types/chai': 4.3.20 - '@types/sinon': 21.0.1 + "@types/chai": 4.3.20 + "@types/sinon": 21.0.1 - '@types/sinon@17.0.4': + "@types/sinon@17.0.4": dependencies: - '@types/sinonjs__fake-timers': 15.0.1 + "@types/sinonjs__fake-timers": 15.0.1 - '@types/sinon@21.0.1': + "@types/sinon@21.0.1": dependencies: - '@types/sinonjs__fake-timers': 15.0.1 + "@types/sinonjs__fake-timers": 15.0.1 - '@types/sinonjs__fake-timers@15.0.1': {} + "@types/sinonjs__fake-timers@15.0.1": {} - '@types/slice-ansi@4.0.0': {} + "@types/slice-ansi@4.0.0": {} - '@types/sockjs@0.3.36': + "@types/sockjs@0.3.36": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/source-list-map@0.1.6': {} + "@types/source-list-map@0.1.6": {} - '@types/stack-utils@2.0.3': {} + "@types/stack-utils@2.0.3": {} - '@types/stylus@0.48.43': + "@types/stylus@0.48.43": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/symlink-or-copy@1.2.2': {} + "@types/symlink-or-copy@1.2.2": {} - '@types/tapable@1.0.12': {} + "@types/tapable@1.0.12": {} - '@types/tedious@4.0.14': + "@types/tedious@4.0.14": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/terser-webpack-plugin@4.2.1': + "@types/terser-webpack-plugin@4.2.1": dependencies: - '@types/webpack': 4.41.40 + "@types/webpack": 4.41.40 terser: 4.8.1 - '@types/tough-cookie@4.0.5': {} + "@types/tough-cookie@4.0.5": {} - '@types/triple-beam@1.3.5': {} + "@types/triple-beam@1.3.5": {} - '@types/trusted-types@2.0.7': {} + "@types/trusted-types@2.0.7": {} - '@types/uglify-js@3.17.5': + "@types/uglify-js@3.17.5": dependencies: source-map: 0.6.1 - '@types/unist@2.0.11': {} + "@types/unist@2.0.11": {} - '@types/unist@3.0.3': {} + "@types/unist@3.0.3": {} - '@types/web-bluetooth@0.0.21': {} + "@types/web-bluetooth@0.0.21": {} - '@types/webpack-bundle-analyzer@3.9.5': + "@types/webpack-bundle-analyzer@3.9.5": dependencies: - '@types/webpack': 4.41.40 + "@types/webpack": 4.41.40 - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.40)(webpack-cli@7.0.3)': + "@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(webpack-cli@7.0.3)": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 tapable: 2.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -53219,112 +59313,112 @@ snapshots: - uglify-js - webpack-cli - '@types/webpack-env@1.18.8': {} + "@types/webpack-env@1.18.8": {} - '@types/webpack-hot-middleware@2.25.5': + "@types/webpack-hot-middleware@2.25.5": dependencies: - '@types/connect': 3.4.38 - '@types/webpack': 4.41.40 + "@types/connect": 3.4.38 + "@types/webpack": 4.41.40 - '@types/webpack-sources@3.2.3': + "@types/webpack-sources@3.2.3": dependencies: - '@types/node': 25.9.1 - '@types/source-list-map': 0.1.6 + "@types/node": 25.9.3 + "@types/source-list-map": 0.1.6 source-map: 0.7.6 - '@types/webpack@4.41.40': + "@types/webpack@4.41.40": dependencies: - '@types/node': 25.9.1 - '@types/tapable': 1.0.12 - '@types/uglify-js': 3.17.5 - '@types/webpack-sources': 3.2.3 + "@types/node": 25.9.3 + "@types/tapable": 1.0.12 + "@types/uglify-js": 3.17.5 + "@types/webpack-sources": 3.2.3 anymatch: 3.1.3 source-map: 0.6.1 - '@types/whatwg-url@6.4.0': + "@types/whatwg-url@6.4.0": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/ws@7.4.7': + "@types/ws@7.4.7": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/ws@8.18.1': + "@types/ws@8.18.1": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - '@types/yargs-parser@21.0.3': {} + "@types/yargs-parser@21.0.3": {} - '@types/yargs@17.0.35': + "@types/yargs@17.0.35": dependencies: - '@types/yargs-parser': 21.0.3 + "@types/yargs-parser": 21.0.3 - '@types/yauzl@2.10.3': + "@types/yauzl@2.10.3": dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 optional: true - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/type-utils": 6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/utils": 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 6.21.0 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.8.1 + semver: 7.8.4 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2)': + "@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)": dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/type-utils": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5))(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5)': + "@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.60.0 - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/type-utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + eslint: 10.5.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)": dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.60.0 - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/type-utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/visitor-keys": 8.61.1 + eslint: 10.5.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -53332,15 +59426,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/type-utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + eslint: 10.5.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -53348,529 +59442,400 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 6.21.0 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5)': + "@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)": dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - typescript: 4.9.5 + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)": dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@5.9.3) + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@6.0.3)': + "@typescript-eslint/project-service@8.56.1(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@6.0.3) - '@typescript-eslint/types': 8.56.1 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@6.0.2)': + "@typescript-eslint/project-service@8.61.1(typescript@5.9.3)": dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 - debug: 4.4.3(supports-color@5.5.0) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.60.0(typescript@4.9.5)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@4.9.5) - '@typescript-eslint/types': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.60.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@5.9.3) - '@typescript-eslint/types': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@5.9.3) + "@typescript-eslint/types": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.60.0(typescript@6.0.2)': + "@typescript-eslint/project-service@8.61.1(typescript@6.0.3)": dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.2) - '@typescript-eslint/types': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.60.0(typescript@6.0.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@8.56.1': + "@typescript-eslint/scope-manager@6.21.0": dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 - '@typescript-eslint/scope-manager@8.58.2': + "@typescript-eslint/scope-manager@8.56.1": dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/visitor-keys": 8.56.1 - '@typescript-eslint/scope-manager@8.60.0': + "@typescript-eslint/scope-manager@8.61.1": dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/visitor-keys": 8.61.1 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@6.0.3)': + "@typescript-eslint/tsconfig-utils@8.56.1(typescript@6.0.3)": dependencies: typescript: 6.0.3 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.2)': - dependencies: - typescript: 6.0.2 - - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@4.9.5)': - dependencies: - typescript: 4.9.5 - - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@5.9.3)': + "@typescript-eslint/tsconfig-utils@8.61.1(typescript@5.9.3)": dependencies: typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.2)': - dependencies: - typescript: 6.0.2 - - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.3)': + "@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.3)": dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/type-utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) - '@typescript-eslint/utils': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/typescript-estree": 6.21.0(typescript@6.0.3) + "@typescript-eslint/utils": 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2)': + "@typescript-eslint/type-utils@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)": dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5)': + "@typescript-eslint/type-utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@4.9.5) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5) - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@4.9.5) - typescript: 4.9.5 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@typescript-eslint/type-utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)": dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@5.9.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color + "@typescript-eslint/types@6.21.0": {} - '@typescript-eslint/types@6.21.0': {} + "@typescript-eslint/types@8.56.1": {} - '@typescript-eslint/types@8.56.1': {} + "@typescript-eslint/types@8.61.0": {} - '@typescript-eslint/types@8.58.2': {} + "@typescript-eslint/types@8.61.1": {} - '@typescript-eslint/types@8.60.0': {} - - '@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)': + "@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)": dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.8.1 + semver: 7.8.4 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.56.1(typescript@6.0.3)': + "@typescript-eslint/typescript-estree@8.56.1(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@6.0.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/project-service": 8.56.1(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/tsconfig-utils": 8.56.1(typescript@6.0.3) + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/visitor-keys": 8.56.1 + debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 + semver: 7.8.4 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2)': - dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.60.0(typescript@4.9.5)': + "@typescript-eslint/typescript-estree@8.61.1(typescript@5.9.3)": dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@4.9.5) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@4.9.5) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@4.9.5) - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.60.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@5.9.3) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/project-service": 8.61.1(typescript@5.9.3) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@5.9.3) + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 + semver: 7.8.4 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.2)': - dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.2) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.3)': + "@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.3)": dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3(supports-color@5.5.0) + "@typescript-eslint/project-service": 8.61.1(typescript@6.0.3) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 + semver: 7.8.4 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.1 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) - semver: 7.8.1 + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@types/json-schema": 7.0.15 + "@types/semver": 7.7.1 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + semver: 7.8.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.56.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@typescript-eslint/utils@8.56.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) + "@typescript-eslint/scope-manager": 8.56.1 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/typescript-estree": 8.56.1(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2)': + "@typescript-eslint/utils@8.56.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - eslint: 10.4.1(jiti@2.7.0) - typescript: 6.0.2 + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/scope-manager": 8.56.1 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/typescript-estree": 8.56.1(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@4.9.5)': + "@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@4.9.5) - eslint: 10.4.1(jiti@2.7.0) - typescript: 4.9.5 + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': + "@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@5.9.3) + eslint: 10.5.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2)': + "@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.2) - eslint: 10.4.1(jiti@2.7.0) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@6.21.0': + "@typescript-eslint/visitor-keys@6.21.0": dependencies: - '@typescript-eslint/types': 6.21.0 + "@typescript-eslint/types": 6.21.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.56.1': + "@typescript-eslint/visitor-keys@8.56.1": dependencies: - '@typescript-eslint/types': 8.56.1 + "@typescript-eslint/types": 8.56.1 eslint-visitor-keys: 5.0.1 - '@typescript-eslint/visitor-keys@8.58.2': + "@typescript-eslint/visitor-keys@8.61.1": dependencies: - '@typescript-eslint/types': 8.58.2 + "@typescript-eslint/types": 8.61.1 eslint-visitor-keys: 5.0.1 - '@typescript-eslint/visitor-keys@8.60.0': - dependencies: - '@typescript-eslint/types': 8.60.0 - eslint-visitor-keys: 5.0.1 + "@ungap/structured-clone@1.3.1": {} - '@ungap/structured-clone@1.3.1': {} - - '@unhead/vue@2.1.15(vue@3.5.34(typescript@6.0.3))': + "@unhead/vue@2.1.15(vue@3.5.38(typescript@6.0.3))": dependencies: hookable: 6.1.1 unhead: 2.1.15 - vue: 3.5.34(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) - '@unrs/resolver-binding-android-arm-eabi@1.12.2': + "@unrs/resolver-binding-android-arm-eabi@1.12.2": optional: true - '@unrs/resolver-binding-android-arm64@1.12.2': + "@unrs/resolver-binding-android-arm64@1.12.2": optional: true - '@unrs/resolver-binding-darwin-arm64@1.12.2': + "@unrs/resolver-binding-darwin-arm64@1.12.2": optional: true - '@unrs/resolver-binding-darwin-x64@1.12.2': + "@unrs/resolver-binding-darwin-x64@1.12.2": optional: true - '@unrs/resolver-binding-freebsd-x64@1.12.2': + "@unrs/resolver-binding-freebsd-x64@1.12.2": optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + "@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2": optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + "@unrs/resolver-binding-linux-arm-musleabihf@1.12.2": optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + "@unrs/resolver-binding-linux-arm64-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + "@unrs/resolver-binding-linux-arm64-musl@1.12.2": optional: true - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + "@unrs/resolver-binding-linux-loong64-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + "@unrs/resolver-binding-linux-loong64-musl@1.12.2": optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + "@unrs/resolver-binding-linux-ppc64-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + "@unrs/resolver-binding-linux-riscv64-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + "@unrs/resolver-binding-linux-riscv64-musl@1.12.2": optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + "@unrs/resolver-binding-linux-s390x-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + "@unrs/resolver-binding-linux-x64-gnu@1.12.2": optional: true - '@unrs/resolver-binding-linux-x64-musl@1.12.2': + "@unrs/resolver-binding-linux-x64-musl@1.12.2": optional: true - '@unrs/resolver-binding-openharmony-arm64@1.12.2': + "@unrs/resolver-binding-openharmony-arm64@1.12.2": optional: true - '@unrs/resolver-binding-wasm32-wasi@1.12.2': + "@unrs/resolver-binding-wasm32-wasi@1.12.2": dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + "@unrs/resolver-binding-win32-arm64-msvc@1.12.2": optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + "@unrs/resolver-binding-win32-ia32-msvc@1.12.2": optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + "@unrs/resolver-binding-win32-x64-msvc@1.12.2": optional: true - '@use-gesture/core@10.3.1': {} + "@use-gesture/core@10.3.1": {} - '@use-gesture/react@10.3.1(react@19.2.6)': + "@use-gesture/react@10.3.1(react@19.2.7)": dependencies: - '@use-gesture/core': 10.3.1 - react: 19.2.6 + "@use-gesture/core": 10.3.1 + react: 19.2.7 - '@vercel/nft@1.5.0(encoding@0.1.13)(rollup@4.60.4)': + "@vercel/nft@1.10.2(encoding@0.1.13)(rollup@4.62.0)": dependencies: - '@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13) - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - acorn: 8.16.0 - acorn-import-attributes: 1.9.5(acorn@8.16.0) + "@mapbox/node-pre-gyp": 2.0.3(encoding@0.1.13) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + acorn: 8.17.0 + acorn-import-attributes: 1.9.5(acorn@8.17.0) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -53884,393 +59849,415 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0))': + "@vitejs/plugin-basic-ssl@2.3.0(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - '@vitejs/plugin-react@6.0.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@vitejs/plugin-react@6.0.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@rolldown/pluginutils': 1.0.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + "@rolldown/pluginutils": 1.0.1 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3))': + "@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.1 - '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@6.0.3) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) + "@rolldown/pluginutils": 1.0.1 + "@vue/babel-plugin-jsx": 2.0.1(@babel/core@7.29.0) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.38(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3))': + "@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.1 - '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@6.0.3) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) + "@rolldown/pluginutils": 1.0.1 + "@vue/babel-plugin-jsx": 2.0.1(@babel/core@7.29.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.38(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue2@2.3.4(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@2.7.16)': + "@vitejs/plugin-vue2@2.3.4(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@2.7.16)": dependencies: - vite: 6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vue: 2.7.16 - '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0))(vue@3.5.34(typescript@6.0.3))': + "@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.9.3)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vue: 3.5.34(typescript@6.0.3) + vite: 5.4.21(@types/node@25.9.3)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0) + vue: 3.5.38(typescript@6.0.3) - '@vitejs/plugin-vue@6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3))': + "@vitejs/plugin-vue@6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - '@rolldown/pluginutils': 1.0.1 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@6.0.3) + "@rolldown/pluginutils": 1.0.1 + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.38(typescript@6.0.3) - '@vitejs/plugin-vue@6.0.7(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3))': + "@vitejs/plugin-vue@6.0.7(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))": dependencies: - '@rolldown/pluginutils': 1.0.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@6.0.3) + "@rolldown/pluginutils": 1.0.1 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.38(typescript@6.0.3) - '@vitest/coverage-v8@4.1.7(vitest@4.1.7)': + "@vitest/coverage-v8@4.1.9(vitest@4.1.9)": dependencies: - '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.7 - ast-v8-to-istanbul: 1.0.0 + "@bcoe/v8-coverage": 1.0.2 + "@vitest/utils": 4.1.9 + ast-v8-to-istanbul: 1.0.4 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 magicast: 0.5.3 - obug: 2.1.1 + obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@vitest/expect@1.6.1': + "@vitest/expect@4.1.7": dependencies: - '@vitest/spy': 1.6.1 - '@vitest/utils': 1.6.1 - chai: 4.5.0 + "@standard-schema/spec": 1.1.0 + "@types/chai": 5.2.3 + "@vitest/spy": 4.1.7 + "@vitest/utils": 4.1.7 + chai: 6.2.2 + tinyrainbow: 3.1.0 - '@vitest/expect@4.1.7': + "@vitest/expect@4.1.9": dependencies: - '@standard-schema/spec': 1.1.0 - '@types/chai': 5.2.3 - '@vitest/spy': 4.1.7 - '@vitest/utils': 4.1.7 + "@standard-schema/spec": 1.1.0 + "@types/chai": 5.2.3 + "@vitest/spy": 4.1.9 + "@vitest/utils": 4.1.9 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.7(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0))': + "@vitest/mocker@4.1.7(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@vitest/spy': 4.1.7 + "@vitest/spy": 4.1.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + + "@vitest/mocker@4.1.9(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": + dependencies: + "@vitest/spy": 4.1.9 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) optional: true - '@vitest/mocker@4.1.7(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + "@vitest/mocker@4.1.9(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": + dependencies: + "@vitest/spy": 4.1.9 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + + "@vitest/mocker@4.1.9(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))": dependencies: - '@vitest/spy': 4.1.7 + "@vitest/spy": 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.7': + "@vitest/pretty-format@4.1.7": dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@1.6.1': + "@vitest/pretty-format@4.1.9": dependencies: - '@vitest/utils': 1.6.1 - p-limit: 5.0.0 - pathe: 1.1.2 + tinyrainbow: 3.1.0 - '@vitest/runner@4.1.7': + "@vitest/runner@4.1.7": dependencies: - '@vitest/utils': 4.1.7 + "@vitest/utils": 4.1.7 pathe: 2.0.3 - '@vitest/snapshot@1.6.1': + "@vitest/runner@4.1.9": dependencies: - magic-string: 0.30.21 - pathe: 1.1.2 - pretty-format: 29.7.0 + "@vitest/utils": 4.1.9 + pathe: 2.0.3 - '@vitest/snapshot@4.1.7': + "@vitest/snapshot@4.1.7": dependencies: - '@vitest/pretty-format': 4.1.7 - '@vitest/utils': 4.1.7 + "@vitest/pretty-format": 4.1.7 + "@vitest/utils": 4.1.7 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@1.6.1': + "@vitest/snapshot@4.1.9": dependencies: - tinyspy: 2.2.1 + "@vitest/pretty-format": 4.1.9 + "@vitest/utils": 4.1.9 + magic-string: 0.30.21 + pathe: 2.0.3 - '@vitest/spy@4.1.7': {} + "@vitest/spy@4.1.7": {} - '@vitest/ui@4.1.7(vitest@4.1.7)': + "@vitest/spy@4.1.9": {} + + "@vitest/ui@4.1.9(vitest@4.1.9)": dependencies: - '@vitest/utils': 4.1.7 + "@vitest/utils": 4.1.9 fflate: 0.8.3 flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@vitest/utils@1.6.1': + "@vitest/utils@4.1.7": dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + "@vitest/pretty-format": 4.1.7 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 - '@vitest/utils@4.1.7': + "@vitest/utils@4.1.9": dependencies: - '@vitest/pretty-format': 4.1.7 + "@vitest/pretty-format": 4.1.9 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@volar/kit@2.4.28(typescript@5.9.3)': + "@volar/kit@2.4.28(typescript@6.0.3)": dependencies: - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 + "@volar/language-service": 2.4.28 + "@volar/typescript": 2.4.28 typesafe-path: 0.2.2 - typescript: 5.9.3 + typescript: 6.0.3 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-core@2.4.28': + "@volar/language-core@2.4.28": dependencies: - '@volar/source-map': 2.4.28 + "@volar/source-map": 2.4.28 - '@volar/language-server@2.4.28': + "@volar/language-server@2.4.28": dependencies: - '@volar/language-core': 2.4.28 - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 + "@volar/language-core": 2.4.28 + "@volar/language-service": 2.4.28 + "@volar/typescript": 2.4.28 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 - vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-protocol: 3.18.0 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-service@2.4.28': + "@volar/language-service@2.4.28": dependencies: - '@volar/language-core': 2.4.28 - vscode-languageserver-protocol: 3.17.5 + "@volar/language-core": 2.4.28 + vscode-languageserver-protocol: 3.18.0 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/source-map@2.4.28': {} + "@volar/source-map@2.4.28": {} - '@volar/typescript@2.4.28': + "@volar/typescript@2.4.28": dependencies: - '@volar/language-core': 2.4.28 + "@volar/language-core": 2.4.28 path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vscode/emmet-helper@2.11.0': + "@vscode/emmet-helper@2.11.0": dependencies: emmet: 2.4.11 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 + vscode-languageserver-types: 3.18.0 vscode-uri: 3.1.0 - '@vscode/l10n@0.0.18': {} + "@vscode/l10n@0.0.18": {} + + "@vscode/web-custom-data@0.4.13": {} - '@vue-macros/common@3.1.2(vue@3.5.34(typescript@6.0.3))': + "@vue-macros/common@3.1.2(vue@3.5.38(typescript@6.0.3))": dependencies: - '@vue/compiler-sfc': 3.5.34 + "@vue/compiler-sfc": 3.5.38 ast-kit: 2.2.0 local-pkg: 1.2.1 magic-string-ast: 1.0.3 unplugin-utils: 0.3.1 optionalDependencies: - vue: 3.5.34(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) - '@vue/babel-helper-vue-jsx-merge-props@1.4.0': {} + "@vue/babel-helper-vue-jsx-merge-props@1.4.0": {} - '@vue/babel-helper-vue-transform-on@1.5.0': {} + "@vue/babel-helper-vue-transform-on@1.5.0": {} - '@vue/babel-helper-vue-transform-on@2.0.1': {} + "@vue/babel-helper-vue-transform-on@2.0.1": {} - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0)': + "@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0)": dependencies: - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0) - '@vue/shared': 3.5.34 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + "@vue/babel-helper-vue-transform-on": 1.5.0 + "@vue/babel-plugin-resolve-type": 1.5.0(@babel/core@7.29.0) + "@vue/shared": 3.5.38 optionalDependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)': + "@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)": dependencies: - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@vue/babel-helper-vue-transform-on': 2.0.1 - '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0) - '@vue/shared': 3.5.34 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + "@vue/babel-helper-vue-transform-on": 2.0.1 + "@vue/babel-plugin-resolve-type": 2.0.1(@babel/core@7.29.0) + "@vue/shared": 3.5.38 optionalDependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.0)': + "@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.0)": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/parser': 7.29.3 - '@vue/compiler-sfc': 3.5.34 + "@babel/code-frame": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/parser": 7.29.7 + "@vue/compiler-sfc": 3.5.38 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)': + "@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)": dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/parser': 7.29.3 - '@vue/compiler-sfc': 3.5.34 + "@babel/code-frame": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/parser": 7.29.7 + "@vue/compiler-sfc": 3.5.38 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-transform-vue-jsx@1.4.0(@babel/core@7.29.0)': + "@vue/babel-plugin-transform-vue-jsx@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@vue/babel-helper-vue-jsx-merge-props": 1.4.0 html-tags: 2.0.0 lodash.kebabcase: 4.1.1 svg-tags: 1.0.0 transitivePeerDependencies: - supports-color - '@vue/babel-preset-app@5.0.9(@babel/core@7.29.0)(core-js@3.49.0)(vue@2.7.16)': + "@vue/babel-preset-app@5.0.9(@babel/core@7.29.0)(core-js@3.49.0)(vue@2.7.16)": dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-imports': 7.28.6 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) - '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.29.0)(vue@2.7.16) + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.29.7 + "@vue/babel-plugin-jsx": 1.5.0(@babel/core@7.29.0) + "@vue/babel-preset-jsx": 1.4.0(@babel/core@7.29.0)(vue@2.7.16) babel-plugin-dynamic-import-node: 2.3.3 core-js-compat: 3.49.0 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: core-js: 3.49.0 vue: 2.7.16 transitivePeerDependencies: - supports-color - '@vue/babel-preset-jsx@1.4.0(@babel/core@7.29.0)(vue@2.7.16)': + "@vue/babel-preset-jsx@1.4.0(@babel/core@7.29.0)(vue@2.7.16)": dependencies: - '@babel/core': 7.29.0 - '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-composition-api-inject-h': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-composition-api-render-instance': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-functional-vue': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-inject-h': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-v-model': 1.4.0(@babel/core@7.29.0) - '@vue/babel-sugar-v-on': 1.4.0(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@vue/babel-helper-vue-jsx-merge-props": 1.4.0 + "@vue/babel-plugin-transform-vue-jsx": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-composition-api-inject-h": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-composition-api-render-instance": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-functional-vue": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-inject-h": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-v-model": 1.4.0(@babel/core@7.29.0) + "@vue/babel-sugar-v-on": 1.4.0(@babel/core@7.29.0) optionalDependencies: vue: 2.7.16 transitivePeerDependencies: - supports-color - '@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) - '@vue/babel-sugar-composition-api-render-instance@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-composition-api-render-instance@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) - '@vue/babel-sugar-functional-vue@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-functional-vue@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) - '@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) - '@vue/babel-sugar-v-model@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-v-model@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@vue/babel-helper-vue-jsx-merge-props": 1.4.0 + "@vue/babel-plugin-transform-vue-jsx": 1.4.0(@babel/core@7.29.0) camelcase: 5.3.1 html-tags: 2.0.0 svg-tags: 1.0.0 transitivePeerDependencies: - supports-color - '@vue/babel-sugar-v-on@1.4.0(@babel/core@7.29.0)': + "@vue/babel-sugar-v-on@1.4.0(@babel/core@7.29.0)": dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@vue/babel-plugin-transform-vue-jsx": 1.4.0(@babel/core@7.29.0) camelcase: 5.3.1 transitivePeerDependencies: - supports-color - '@vue/cli-overlay@5.0.9': {} + "@vue/cli-overlay@5.0.9": {} - '@vue/cli-plugin-babel@5.0.9(@swc/core@1.15.40)(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(core-js@3.49.0)(encoding@0.1.13)(postcss@8.5.15)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@vue/cli-plugin-babel@5.0.9(@swc/core@1.15.41)(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(core-js@3.49.0)(encoding@0.1.13)(postcss@8.5.15)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@babel/core': 7.29.0 - '@vue/babel-preset-app': 5.0.9(@babel/core@7.29.0)(core-js@3.49.0)(vue@2.7.16) - '@vue/cli-service': 5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0) - '@vue/cli-shared-utils': 5.0.9(encoding@0.1.13) - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + "@babel/core": 7.29.0 + "@vue/babel-preset-app": 5.0.9(@babel/core@7.29.0)(core-js@3.49.0)(vue@2.7.16) + "@vue/cli-service": 5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0) + "@vue/cli-shared-utils": 5.0.9(encoding@0.1.13) + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) + thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - core-js - cssnano @@ -54285,35 +60272,35 @@ snapshots: - vue - webpack-cli - '@vue/cli-plugin-router@5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(encoding@0.1.13)': + "@vue/cli-plugin-router@5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(encoding@0.1.13)": dependencies: - '@vue/cli-service': 5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0) - '@vue/cli-shared-utils': 5.0.9(encoding@0.1.13) + "@vue/cli-service": 5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0) + "@vue/cli-shared-utils": 5.0.9(encoding@0.1.13) transitivePeerDependencies: - encoding - '@vue/cli-plugin-typescript@5.0.9(@swc/core@1.15.40)(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(postcss@8.5.15)(typescript@5.9.3)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))': + "@vue/cli-plugin-typescript@5.0.9(@swc/core@1.15.41)(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(loader-utils@3.3.1)(postcss@8.5.15)(typescript@6.0.3)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))": dependencies: - '@babel/core': 7.29.0 - '@types/webpack-env': 1.18.8 - '@vue/cli-service': 5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0) - '@vue/cli-shared-utils': 5.0.9(encoding@0.1.13) - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + "@babel/core": 7.29.0 + "@types/webpack-env": 1.18.8 + "@vue/cli-service": 5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0) + "@vue/cli-shared-utils": 5.0.9(encoding@0.1.13) + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) globby: 11.1.0 - thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ts-loader: 9.5.7(typescript@5.9.3)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - typescript: 5.9.3 + thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) + ts-loader: 9.6.1(loader-utils@3.3.1)(typescript@6.0.3)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)) + typescript: 6.0.3 vue: 2.7.16 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) optionalDependencies: - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-template-compiler: 2.7.16 transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -54322,29 +60309,30 @@ snapshots: - eslint - html-minifier-terser - lightningcss + - loader-utils - postcss - supports-color - uglify-js - webpack-cli - '@vue/cli-plugin-vuex@5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))': + "@vue/cli-plugin-vuex@5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))": dependencies: - '@vue/cli-service': 5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0) + "@vue/cli-service": 5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0) - '@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0)': + "@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0)": dependencies: - '@babel/helper-compilation-targets': 7.28.6 - '@soda/friendly-errors-webpack-plugin': 1.8.1(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@soda/get-current-script': 1.0.2 - '@types/minimist': 1.2.5 - '@vue/cli-overlay': 5.0.9 - '@vue/cli-plugin-router': 5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0))(encoding@0.1.13) - '@vue/cli-plugin-vuex': 5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.40)(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack-sources@3.5.0)) - '@vue/cli-shared-utils': 5.0.9(encoding@0.1.13) - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - '@vue/vue-loader-v15': vue-loader@15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@vue/web-component-wrapper': 1.3.0 - acorn: 8.16.0 + "@babel/helper-compilation-targets": 7.29.7 + "@soda/friendly-errors-webpack-plugin": 1.8.1(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@soda/get-current-script": 1.0.2 + "@types/minimist": 1.2.5 + "@vue/cli-overlay": 5.0.9 + "@vue/cli-plugin-router": 5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0))(encoding@0.1.13) + "@vue/cli-plugin-vuex": 5.0.9(@vue/cli-service@5.0.9(@swc/core@1.15.41)(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(supports-color@8.1.1)(underscore@1.13.8)(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack-sources@3.5.0)) + "@vue/cli-shared-utils": 5.0.9(encoding@0.1.13) + "@vue/component-compiler-utils": 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) + "@vue/vue-loader-v15": vue-loader@15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@vue/web-component-wrapper": 1.3.0 + acorn: 8.17.0 acorn-walk: 8.3.5 address: 1.2.2 autoprefixer: 10.5.0(postcss@8.5.15) @@ -54353,53 +60341,53 @@ snapshots: cli-highlight: 2.1.11 clipboardy: 2.3.0 cliui: 7.0.4 - copy-webpack-plugin: 9.1.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - css-loader: 6.11.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - css-minimizer-webpack-plugin: 3.4.1(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + copy-webpack-plugin: 9.1.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + css-loader: 6.11.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + css-minimizer-webpack-plugin: 3.4.1(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) cssnano: 5.1.15(postcss@8.5.15) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) default-gateway: 6.0.3 dotenv: 10.0.0 dotenv-expand: 5.1.0 fs-extra: 9.1.0 globby: 11.1.0 hash-sum: 2.0.0 - html-webpack-plugin: 5.6.7(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + html-webpack-plugin: 5.6.7(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) is-file-esm: 1.0.0 - launch-editor-middleware: 2.13.2 + launch-editor-middleware: 2.14.1 lodash.defaultsdeep: 4.6.1 lodash.mapvalues: 4.6.0 - mini-css-extract-plugin: 2.10.2(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + mini-css-extract-plugin: 2.10.2(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) minimist: 1.2.8 module-alias: 2.3.4 - portfinder: 1.0.38 + portfinder: 1.0.38(supports-color@8.1.1) postcss: 8.5.15 - postcss-loader: 6.2.1(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - progress-webpack-plugin: 1.0.16(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + postcss-loader: 6.2.1(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + progress-webpack-plugin: 1.0.16(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ssri: 8.0.1 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - vue-loader: 17.4.2(@vue/compiler-sfc@3.5.34)(vue@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + thread-loader: 3.0.4(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + vue-loader: 17.4.2(@vue/compiler-sfc@3.5.38)(vue@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-style-loader: 4.1.3 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-bundle-analyzer: 4.10.2 webpack-chain: 6.5.1 - webpack-dev-server: 4.15.2(debug@4.4.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-server: 4.15.2(debug@4.4.3(supports-color@8.1.1))(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) webpack-merge: 5.10.0 webpack-virtual-modules: 0.4.6 whatwg-fetch: 3.6.20 optionalDependencies: - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) vue-template-compiler: 2.7.16 webpack-sources: 3.5.0 transitivePeerDependencies: - - '@minify-html/node' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@vue/compiler-sfc' + - "@minify-html/node" + - "@parcel/css" + - "@rspack/core" + - "@swc/core" + - "@swc/css" + - "@swc/html" + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -54467,69 +60455,69 @@ snapshots: - webpack-cli - whiskers - '@vue/cli-shared-utils@5.0.9(encoding@0.1.13)': + "@vue/cli-shared-utils@5.0.9(encoding@0.1.13)": dependencies: - '@achrinza/node-ipc': 9.2.10 + "@achrinza/node-ipc": 9.2.10 chalk: 4.1.2 execa: 1.0.0 - joi: 17.13.3 - launch-editor: 2.13.2 + joi: 17.13.4 + launch-editor: 2.14.1 lru-cache: 6.0.0 node-fetch: 2.7.0(encoding@0.1.13) open: 8.4.2 ora: 5.4.1 read-pkg: 5.2.0 - semver: 7.8.1 + semver: 7.8.4 strip-ansi: 6.0.1 transitivePeerDependencies: - encoding - '@vue/compiler-core@3.5.34': + "@vue/compiler-core@3.5.38": dependencies: - '@babel/parser': 7.29.3 - '@vue/shared': 3.5.34 + "@babel/parser": 7.29.7 + "@vue/shared": 3.5.38 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.34': + "@vue/compiler-dom@3.5.38": dependencies: - '@vue/compiler-core': 3.5.34 - '@vue/shared': 3.5.34 + "@vue/compiler-core": 3.5.38 + "@vue/shared": 3.5.38 - '@vue/compiler-sfc@2.7.16': + "@vue/compiler-sfc@2.7.16": dependencies: - '@babel/parser': 7.29.3 + "@babel/parser": 7.29.7 postcss: 8.5.15 source-map: 0.6.1 optionalDependencies: prettier: 2.8.8 - '@vue/compiler-sfc@3.5.34': + "@vue/compiler-sfc@3.5.38": dependencies: - '@babel/parser': 7.29.3 - '@vue/compiler-core': 3.5.34 - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 + "@babel/parser": 7.29.7 + "@vue/compiler-core": 3.5.38 + "@vue/compiler-dom": 3.5.38 + "@vue/compiler-ssr": 3.5.38 + "@vue/shared": 3.5.38 estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.15 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.34': + "@vue/compiler-ssr@3.5.38": dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/shared': 3.5.34 + "@vue/compiler-dom": 3.5.38 + "@vue/shared": 3.5.38 - '@vue/component-compiler-utils@3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8)': + "@vue/component-compiler-utils@3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8)": dependencies: consolidate: 0.15.1(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) hash-sum: 1.0.2 lru-cache: 4.1.5 merge-source-map: 1.1.0 postcss: 7.0.39 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 source-map: 0.6.1 vue-template-es2015-compiler: 1.9.1 optionalDependencies: @@ -54589,94 +60577,25 @@ snapshots: - walrus - whiskers - '@vue/component-compiler@4.2.4(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(postcss@8.5.15)(underscore@1.13.8)(vue-template-compiler@2.7.16)': - dependencies: - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - clean-css: 4.2.4 - hash-sum: 1.0.2 - postcss: 8.5.15 - postcss-modules-sync: 1.0.0 - source-map: 0.6.1 - vue-template-compiler: 2.7.16 - optionalDependencies: - less: 3.13.1 - pug: 3.0.4 - sass: 1.100.0 - stylus: 0.54.8 - transitivePeerDependencies: - - arc-templates - - atpl - - babel-core - - bracket-template - - coffee-script - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jade - - jazz - - jqtpl - - just - - liquid-node - - liquor - - lodash - - marko - - mote - - mustache - - nunjucks - - plates - - qejs - - ractive - - razor-tmpl - - react - - react-dom - - slm - - squirrelly - - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-jade - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore - - vash - - velocityjs - - walrus - - whiskers + "@vue/devtools-api@6.6.4": {} - '@vue/devtools-api@6.6.4': {} - - '@vue/devtools-api@7.7.9': + "@vue/devtools-api@7.7.9": dependencies: - '@vue/devtools-kit': 7.7.9 + "@vue/devtools-kit": 7.7.9 - '@vue/devtools-api@8.1.2': + "@vue/devtools-api@8.1.3": dependencies: - '@vue/devtools-kit': 8.1.2 + "@vue/devtools-kit": 8.1.3 - '@vue/devtools-core@8.1.2(vue@3.5.34(typescript@6.0.3))': + "@vue/devtools-core@8.1.3(vue@3.5.38(typescript@6.0.3))": dependencies: - '@vue/devtools-kit': 8.1.2 - '@vue/devtools-shared': 8.1.2 - vue: 3.5.34(typescript@6.0.3) + "@vue/devtools-kit": 8.1.3 + "@vue/devtools-shared": 8.1.3 + vue: 3.5.38(typescript@6.0.3) - '@vue/devtools-kit@7.7.9': + "@vue/devtools-kit@7.7.9": dependencies: - '@vue/devtools-shared': 7.7.9 + "@vue/devtools-shared": 7.7.9 birpc: 2.9.0 hookable: 5.5.3 mitt: 3.0.1 @@ -54684,159 +60603,122 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.6 - '@vue/devtools-kit@8.1.2': + "@vue/devtools-kit@8.1.3": dependencies: - '@vue/devtools-shared': 8.1.2 + "@vue/devtools-shared": 8.1.3 birpc: 2.9.0 hookable: 5.5.3 perfect-debounce: 2.1.0 - '@vue/devtools-shared@7.7.9': + "@vue/devtools-shared@7.7.9": dependencies: rfdc: 1.4.1 - '@vue/devtools-shared@8.1.2': {} + "@vue/devtools-shared@8.1.3": {} - '@vue/eslint-config-prettier@10.2.0(@types/eslint@9.6.1)(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3)': + "@vue/eslint-config-prettier@10.2.0(@types/eslint@9.6.1)(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4)": dependencies: - eslint: 10.4.1(jiti@2.7.0) - eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) - prettier: 3.8.3 + eslint: 10.5.0(jiti@2.7.0) + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) + prettier: 3.8.4 transitivePeerDependencies: - - '@types/eslint' + - "@types/eslint" - '@vue/eslint-config-typescript@14.7.0(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + "@vue/eslint-config-typescript@14.8.0(eslint-plugin-vue@10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)": dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) - eslint-plugin-vue: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + eslint-plugin-vue: 10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))) fast-glob: 3.3.3 - typescript-eslint: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - vue-eslint-parser: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + typescript-eslint: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + vue-eslint-parser: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@vue/language-core@3.3.1': + "@vue/language-core@3.3.5": dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.34 - '@vue/shared': 3.5.34 + "@volar/language-core": 2.4.28 + "@vue/compiler-dom": 3.5.38 + "@vue/shared": 3.5.38 alien-signals: 3.2.1 muggle-string: 0.4.1 path-browserify: 1.0.1 picomatch: 4.0.4 - '@vue/language-core@3.3.2': + "@vue/reactivity@3.5.38": dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.34 - '@vue/shared': 3.5.34 - alien-signals: 3.2.1 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - picomatch: 4.0.4 + "@vue/shared": 3.5.38 - '@vue/reactivity@3.5.34': + "@vue/runtime-core@3.5.38": dependencies: - '@vue/shared': 3.5.34 + "@vue/reactivity": 3.5.38 + "@vue/shared": 3.5.38 - '@vue/runtime-core@3.5.34': + "@vue/runtime-dom@3.5.38": dependencies: - '@vue/reactivity': 3.5.34 - '@vue/shared': 3.5.34 - - '@vue/runtime-dom@3.5.34': - dependencies: - '@vue/reactivity': 3.5.34 - '@vue/runtime-core': 3.5.34 - '@vue/shared': 3.5.34 + "@vue/reactivity": 3.5.38 + "@vue/runtime-core": 3.5.38 + "@vue/shared": 3.5.38 csstype: 3.2.3 - '@vue/server-renderer@3.5.34(vue@3.5.34(typescript@6.0.3))': + "@vue/server-renderer@3.5.38(vue@3.5.38(typescript@6.0.3))": dependencies: - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 - vue: 3.5.34(typescript@6.0.3) + "@vue/compiler-ssr": 3.5.38 + "@vue/shared": 3.5.38 + vue: 3.5.38(typescript@6.0.3) - '@vue/shared@3.5.34': {} + "@vue/shared@3.5.38": {} - '@vue/tsconfig@0.9.1(typescript@6.0.3)(vue@3.5.34(typescript@6.0.3))': + "@vue/tsconfig@0.9.1(typescript@6.0.3)(vue@3.5.38(typescript@6.0.3))": optionalDependencies: typescript: 6.0.3 - vue: 3.5.34(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) - '@vue/web-component-wrapper@1.3.0': {} + "@vue/web-component-wrapper@1.3.0": {} - '@vueuse/core@12.8.2(typescript@6.0.3)': + "@vueuse/core@12.8.2(typescript@6.0.3)": dependencies: - '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 12.8.2 - '@vueuse/shared': 12.8.2(typescript@6.0.3) - vue: 3.5.34(typescript@6.0.3) + "@types/web-bluetooth": 0.0.21 + "@vueuse/metadata": 12.8.2 + "@vueuse/shared": 12.8.2(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) transitivePeerDependencies: - typescript - '@vueuse/integrations@12.8.2(axios@1.16.1)(focus-trap@7.8.0)(fuse.js@7.3.0)(typescript@6.0.3)': + "@vueuse/integrations@12.8.2(axios@1.18.0)(focus-trap@7.8.0)(fuse.js@7.4.2)(typescript@6.0.3)": dependencies: - '@vueuse/core': 12.8.2(typescript@6.0.3) - '@vueuse/shared': 12.8.2(typescript@6.0.3) - vue: 3.5.34(typescript@6.0.3) + "@vueuse/core": 12.8.2(typescript@6.0.3) + "@vueuse/shared": 12.8.2(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) optionalDependencies: - axios: 1.16.1 + axios: 1.18.0 focus-trap: 7.8.0 - fuse.js: 7.3.0 + fuse.js: 7.4.2 transitivePeerDependencies: - typescript - '@vueuse/metadata@12.8.2': {} + "@vueuse/metadata@12.8.2": {} - '@vueuse/shared@12.8.2(typescript@6.0.3)': + "@vueuse/shared@12.8.2(typescript@6.0.3)": dependencies: - vue: 3.5.34(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) transitivePeerDependencies: - typescript - '@web/browser-logs@0.4.1': + "@web/browser-logs@0.4.1": dependencies: errorstacks: 2.4.2 - '@web/config-loader@0.1.3': - dependencies: - semver: 7.8.1 - - '@web/dev-server-core@0.4.1': - dependencies: - '@types/koa': 2.15.2 - '@types/ws': 7.4.7 - '@web/parse5-utils': 1.3.1 - chokidar: 3.6.0 - clone: 2.1.2 - es-module-lexer: 1.7.0 - get-stream: 6.0.1 - is-stream: 2.0.1 - isbinaryfile: 5.0.7 - koa: 2.16.4 - koa-etag: 4.0.0 - koa-send: 5.0.1 - koa-static: 5.0.0 - lru-cache: 6.0.0 - mime-types: 2.1.35 - parse5: 6.0.1 - picomatch: 2.3.2 - ws: 7.5.11 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + "@web/config-loader@0.3.3": {} - '@web/dev-server-core@0.7.5': + "@web/dev-server-core@0.7.5": dependencies: - '@types/koa': 2.15.2 - '@types/ws': 7.4.7 - '@web/parse5-utils': 2.1.1 + "@types/koa": 2.15.2 + "@types/ws": 7.4.7 + "@web/parse5-utils": 2.1.1 chokidar: 4.0.3 clone: 2.1.2 es-module-lexer: 1.7.0 @@ -54857,70 +60739,65 @@ snapshots: - supports-color - utf-8-validate - '@web/dev-server-rollup@0.4.1': + "@web/dev-server-rollup@0.6.4": dependencies: - '@rollup/plugin-node-resolve': 13.3.0(rollup@2.80.0) - '@web/dev-server-core': 0.4.1 + "@rollup/plugin-node-resolve": 15.3.1(rollup@4.62.0) + "@web/dev-server-core": 0.7.5 nanocolors: 0.2.13 parse5: 6.0.1 - rollup: 2.80.0 - whatwg-url: 11.0.0 + rollup: 4.62.0 + whatwg-url: 14.2.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@web/dev-server@0.1.38': + "@web/dev-server@0.4.6": dependencies: - '@babel/code-frame': 7.29.0 - '@types/command-line-args': 5.2.3 - '@web/config-loader': 0.1.3 - '@web/dev-server-core': 0.4.1 - '@web/dev-server-rollup': 0.4.1 + "@babel/code-frame": 7.29.7 + "@types/command-line-args": 5.2.3 + "@web/config-loader": 0.3.3 + "@web/dev-server-core": 0.7.5 + "@web/dev-server-rollup": 0.6.4 camelcase: 6.3.0 command-line-args: 5.2.1 command-line-usage: 7.0.4 debounce: 1.2.1 deepmerge: 4.3.1 - ip: 1.1.9 + internal-ip: 6.2.0 nanocolors: 0.2.13 open: 8.4.2 - portfinder: 1.0.38 + portfinder: 1.0.38(supports-color@8.1.1) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@web/parse5-utils@1.3.1': + "@web/parse5-utils@2.1.1": dependencies: - '@types/parse5': 6.0.3 + "@types/parse5": 6.0.3 parse5: 6.0.1 - '@web/parse5-utils@2.1.1': + "@web/test-runner-commands@0.9.0": dependencies: - '@types/parse5': 6.0.3 - parse5: 6.0.1 - - '@web/test-runner-commands@0.9.0': - dependencies: - '@web/test-runner-core': 0.13.4 + "@web/test-runner-core": 0.13.4 mkdirp: 1.0.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@web/test-runner-core@0.13.4': - dependencies: - '@babel/code-frame': 7.29.0 - '@types/babel__code-frame': 7.27.0 - '@types/co-body': 6.1.3 - '@types/convert-source-map': 2.0.3 - '@types/debounce': 1.2.4 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@web/browser-logs': 0.4.1 - '@web/dev-server-core': 0.7.5 + "@web/test-runner-core@0.13.4": + dependencies: + "@babel/code-frame": 7.29.7 + "@types/babel__code-frame": 7.27.0 + "@types/co-body": 6.1.3 + "@types/convert-source-map": 2.0.3 + "@types/debounce": 1.2.4 + "@types/istanbul-lib-coverage": 2.0.6 + "@types/istanbul-reports": 3.0.4 + "@web/browser-logs": 0.4.1 + "@web/dev-server-core": 0.7.5 chokidar: 4.0.3 cli-cursor: 3.1.0 co-body: 6.2.0 @@ -54943,510 +60820,502 @@ snapshots: - supports-color - utf-8-validate - '@webassemblyjs/ast@1.14.1': + "@webassemblyjs/ast@1.14.1": dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + "@webassemblyjs/helper-numbers": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 - '@webassemblyjs/ast@1.9.0': + "@webassemblyjs/ast@1.9.0": dependencies: - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 + "@webassemblyjs/helper-module-context": 1.9.0 + "@webassemblyjs/helper-wasm-bytecode": 1.9.0 + "@webassemblyjs/wast-parser": 1.9.0 - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + "@webassemblyjs/floating-point-hex-parser@1.13.2": {} - '@webassemblyjs/floating-point-hex-parser@1.9.0': {} + "@webassemblyjs/floating-point-hex-parser@1.9.0": {} - '@webassemblyjs/helper-api-error@1.13.2': {} + "@webassemblyjs/helper-api-error@1.13.2": {} - '@webassemblyjs/helper-api-error@1.9.0': {} + "@webassemblyjs/helper-api-error@1.9.0": {} - '@webassemblyjs/helper-buffer@1.14.1': {} + "@webassemblyjs/helper-buffer@1.14.1": {} - '@webassemblyjs/helper-buffer@1.9.0': {} + "@webassemblyjs/helper-buffer@1.9.0": {} - '@webassemblyjs/helper-code-frame@1.9.0': + "@webassemblyjs/helper-code-frame@1.9.0": dependencies: - '@webassemblyjs/wast-printer': 1.9.0 + "@webassemblyjs/wast-printer": 1.9.0 - '@webassemblyjs/helper-fsm@1.9.0': {} + "@webassemblyjs/helper-fsm@1.9.0": {} - '@webassemblyjs/helper-module-context@1.9.0': + "@webassemblyjs/helper-module-context@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 + "@webassemblyjs/ast": 1.9.0 - '@webassemblyjs/helper-numbers@1.13.2': + "@webassemblyjs/helper-numbers@1.13.2": dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 + "@webassemblyjs/floating-point-hex-parser": 1.13.2 + "@webassemblyjs/helper-api-error": 1.13.2 + "@xtuc/long": 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + "@webassemblyjs/helper-wasm-bytecode@1.13.2": {} - '@webassemblyjs/helper-wasm-bytecode@1.9.0': {} + "@webassemblyjs/helper-wasm-bytecode@1.9.0": {} - '@webassemblyjs/helper-wasm-section@1.14.1': + "@webassemblyjs/helper-wasm-section@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/wasm-gen": 1.14.1 - '@webassemblyjs/helper-wasm-section@1.9.0': + "@webassemblyjs/helper-wasm-section@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-buffer": 1.9.0 + "@webassemblyjs/helper-wasm-bytecode": 1.9.0 + "@webassemblyjs/wasm-gen": 1.9.0 - '@webassemblyjs/ieee754@1.13.2': + "@webassemblyjs/ieee754@1.13.2": dependencies: - '@xtuc/ieee754': 1.2.0 + "@xtuc/ieee754": 1.2.0 - '@webassemblyjs/ieee754@1.9.0': + "@webassemblyjs/ieee754@1.9.0": dependencies: - '@xtuc/ieee754': 1.2.0 + "@xtuc/ieee754": 1.2.0 - '@webassemblyjs/leb128@1.13.2': + "@webassemblyjs/leb128@1.13.2": dependencies: - '@xtuc/long': 4.2.2 + "@xtuc/long": 4.2.2 - '@webassemblyjs/leb128@1.9.0': + "@webassemblyjs/leb128@1.9.0": dependencies: - '@xtuc/long': 4.2.2 + "@xtuc/long": 4.2.2 - '@webassemblyjs/utf8@1.13.2': {} + "@webassemblyjs/utf8@1.13.2": {} - '@webassemblyjs/utf8@1.9.0': {} + "@webassemblyjs/utf8@1.9.0": {} - '@webassemblyjs/wasm-edit@1.14.1': + "@webassemblyjs/wasm-edit@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/helper-wasm-section": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-opt": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + "@webassemblyjs/wast-printer": 1.14.1 - '@webassemblyjs/wasm-edit@1.9.0': + "@webassemblyjs/wasm-edit@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/helper-wasm-section': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-opt': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wast-printer': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-buffer": 1.9.0 + "@webassemblyjs/helper-wasm-bytecode": 1.9.0 + "@webassemblyjs/helper-wasm-section": 1.9.0 + "@webassemblyjs/wasm-gen": 1.9.0 + "@webassemblyjs/wasm-opt": 1.9.0 + "@webassemblyjs/wasm-parser": 1.9.0 + "@webassemblyjs/wast-printer": 1.9.0 - '@webassemblyjs/wasm-gen@1.14.1': + "@webassemblyjs/wasm-gen@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 - '@webassemblyjs/wasm-gen@1.9.0': + "@webassemblyjs/wasm-gen@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-wasm-bytecode": 1.9.0 + "@webassemblyjs/ieee754": 1.9.0 + "@webassemblyjs/leb128": 1.9.0 + "@webassemblyjs/utf8": 1.9.0 - '@webassemblyjs/wasm-opt@1.14.1': + "@webassemblyjs/wasm-opt@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 - '@webassemblyjs/wasm-opt@1.9.0': + "@webassemblyjs/wasm-opt@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-buffer": 1.9.0 + "@webassemblyjs/wasm-gen": 1.9.0 + "@webassemblyjs/wasm-parser": 1.9.0 - '@webassemblyjs/wasm-parser@1.14.1': + "@webassemblyjs/wasm-parser@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-api-error": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 - '@webassemblyjs/wasm-parser@1.9.0': + "@webassemblyjs/wasm-parser@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-api-error": 1.9.0 + "@webassemblyjs/helper-wasm-bytecode": 1.9.0 + "@webassemblyjs/ieee754": 1.9.0 + "@webassemblyjs/leb128": 1.9.0 + "@webassemblyjs/utf8": 1.9.0 - '@webassemblyjs/wast-parser@1.9.0': + "@webassemblyjs/wast-parser@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/floating-point-hex-parser': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-code-frame': 1.9.0 - '@webassemblyjs/helper-fsm': 1.9.0 - '@xtuc/long': 4.2.2 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/floating-point-hex-parser": 1.9.0 + "@webassemblyjs/helper-api-error": 1.9.0 + "@webassemblyjs/helper-code-frame": 1.9.0 + "@webassemblyjs/helper-fsm": 1.9.0 + "@xtuc/long": 4.2.2 - '@webassemblyjs/wast-printer@1.14.1': + "@webassemblyjs/wast-printer@1.14.1": dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 + "@webassemblyjs/ast": 1.14.1 + "@xtuc/long": 4.2.2 - '@webassemblyjs/wast-printer@1.9.0': + "@webassemblyjs/wast-printer@1.9.0": dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@xtuc/long': 4.2.2 - - '@webcomponents/shadycss@1.11.2': {} + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/wast-parser": 1.9.0 + "@xtuc/long": 4.2.2 - '@webcomponents/webcomponentsjs@2.8.0': {} + "@webcomponents/shadycss@1.11.2": {} - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.107.1)': - dependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) - - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.107.2)': - dependencies: - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2) + "@webcomponents/webcomponentsjs@2.8.0": {} - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.107.1)': + "@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.107.2)": dependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.107.2)': + "@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.107.2)": dependencies: - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.107.2)': + "@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.107.2)": dependencies: - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) optionalDependencies: - webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.107.2) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.4)(webpack@5.107.1)': + "@wordpress/a11y@4.48.1": dependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) - optionalDependencies: - webpack-dev-server: 5.2.4(tslib@2.8.1)(webpack-cli@5.1.4)(webpack@5.107.1) + "@wordpress/dom-ready": 4.48.1 + "@wordpress/i18n": 6.21.1 - '@wordpress/a11y@4.46.0': - dependencies: - '@wordpress/dom-ready': 4.46.0 - '@wordpress/i18n': 6.19.0 + "@wordpress/autop@4.48.1": {} - '@wordpress/autop@4.46.0': {} - - '@wordpress/babel-preset-default@8.46.0': + "@wordpress/babel-preset-default@8.48.1": dependencies: - '@babel/core': 7.25.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.25.7) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7) - '@babel/preset-env': 7.25.7(@babel/core@7.25.7) - '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) - '@wordpress/browserslist-config': 6.46.0 - '@wordpress/warning': 3.46.0 + "@babel/core": 7.29.0 + "@babel/plugin-syntax-import-attributes": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-react-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) + "@wordpress/browserslist-config": 6.48.1 + "@wordpress/warning": 3.48.1 browserslist: 4.28.2 core-js: 3.49.0 react: 18.3.1 transitivePeerDependencies: - supports-color - '@wordpress/base-styles@8.0.0': {} - - '@wordpress/blob@4.46.0': {} - - '@wordpress/block-editor@15.19.0(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))': - dependencies: - '@react-spring/web': 9.7.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/a11y': 4.46.0 - '@wordpress/base-styles': 8.0.0 - '@wordpress/blob': 4.46.0 - '@wordpress/block-serialization-default-parser': 5.46.0 - '@wordpress/blocks': 15.19.0(react@19.2.6) - '@wordpress/commands': 1.46.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/dataviews': 14.3.0(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) - '@wordpress/date': 5.46.0 - '@wordpress/deprecated': 4.46.0 - '@wordpress/dom': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/escape-html': 3.46.0 - '@wordpress/global-styles-engine': 1.13.0(react@19.2.6) - '@wordpress/hooks': 4.46.0 - '@wordpress/html-entities': 4.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/image-cropper': 1.10.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/interactivity': 6.46.0 - '@wordpress/is-shallow-equal': 5.46.0 - '@wordpress/keyboard-shortcuts': 5.46.0(react@19.2.6) - '@wordpress/keycodes': 4.46.0 - '@wordpress/notices': 5.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/preferences': 4.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/priority-queue': 3.46.0 - '@wordpress/private-apis': 1.46.0 - '@wordpress/rich-text': 7.46.0(react@19.2.6) - '@wordpress/style-engine': 2.46.0 - '@wordpress/token-list': 3.46.0 - '@wordpress/ui': 0.13.0(@date-fns/tz@1.5.0)(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) - '@wordpress/upload-media': 0.31.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/url': 4.46.0 - '@wordpress/warning': 3.46.0 - '@wordpress/wordcount': 4.46.0 + "@wordpress/base-styles@10.0.1": {} + + "@wordpress/blob@4.48.1": {} + + "@wordpress/block-editor@15.21.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.31))(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": + dependencies: + "@react-spring/web": 9.7.5(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@types/react": 18.3.31 + "@wordpress/a11y": 4.48.1 + "@wordpress/base-styles": 10.0.1 + "@wordpress/blob": 4.48.1 + "@wordpress/block-serialization-default-parser": 5.48.1 + "@wordpress/blocks": 15.21.1(react@19.2.7) + "@wordpress/commands": 1.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/dataviews": 16.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/date": 5.48.1 + "@wordpress/deprecated": 4.48.1 + "@wordpress/dom": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/escape-html": 3.48.1 + "@wordpress/global-styles-engine": 1.15.1(react@19.2.7) + "@wordpress/hooks": 4.48.1 + "@wordpress/html-entities": 4.48.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/image-cropper": 1.12.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/interactivity": 6.48.1 + "@wordpress/is-shallow-equal": 5.48.1 + "@wordpress/keyboard-shortcuts": 5.48.1(react@19.2.7) + "@wordpress/keycodes": 4.48.1 + "@wordpress/notices": 5.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/preferences": 4.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/priority-queue": 3.48.1 + "@wordpress/private-apis": 1.48.1 + "@wordpress/rich-text": 7.48.1(react@19.2.7) + "@wordpress/style-engine": 2.48.1 + "@wordpress/token-list": 3.48.1 + "@wordpress/ui": 0.15.1(@date-fns/tz@1.5.0)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/upload-media": 0.33.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/url": 4.48.1 + "@wordpress/warning": 3.48.1 + "@wordpress/wordcount": 4.48.1 change-case: 4.1.2 clsx: 2.1.1 colord: 2.9.3 deepmerge: 4.3.1 - diff: 4.0.4 + diff: 8.0.4 fast-deep-equal: 3.1.3 memize: 2.1.1 parsel-js: 1.2.2 postcss: 8.5.15 postcss-prefix-selector: 1.16.1(postcss@8.5.15) postcss-urlrebase: 1.4.0(postcss@8.5.15) - react: 19.2.6 - react-autosize-textarea: 7.1.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react-dom: 19.2.6(react@19.2.6) - react-easy-crop: 5.5.7(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.7 + react-autosize-textarea: 7.1.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react-dom: 19.2.7(react@19.2.7) + react-easy-crop: 5.5.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) remove-accents: 0.5.0 transitivePeerDependencies: - - '@date-fns/tz' - - '@emotion/is-prop-valid' - - '@types/react' - - '@types/react-dom' + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - "@types/react-dom" - date-fns - stylelint - supports-color - '@wordpress/block-serialization-default-parser@5.46.0': {} - - '@wordpress/blocks@15.19.0(react@19.2.6)': - dependencies: - '@wordpress/autop': 4.46.0 - '@wordpress/blob': 4.46.0 - '@wordpress/block-serialization-default-parser': 5.46.0 - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/deprecated': 4.46.0 - '@wordpress/dom': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/hooks': 4.46.0 - '@wordpress/html-entities': 4.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/is-shallow-equal': 5.46.0 - '@wordpress/private-apis': 1.46.0 - '@wordpress/rich-text': 7.46.0(react@19.2.6) - '@wordpress/shortcode': 4.46.0 - '@wordpress/warning': 3.46.0 + "@wordpress/block-serialization-default-parser@5.48.1": {} + + "@wordpress/blocks@15.21.1(react@19.2.7)": + dependencies: + "@types/react": 18.3.31 + "@wordpress/autop": 4.48.1 + "@wordpress/blob": 4.48.1 + "@wordpress/block-serialization-default-parser": 5.48.1 + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/deprecated": 4.48.1 + "@wordpress/dom": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/hooks": 4.48.1 + "@wordpress/html-entities": 4.48.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/is-shallow-equal": 5.48.1 + "@wordpress/private-apis": 1.48.1 + "@wordpress/rich-text": 7.48.1(react@19.2.7) + "@wordpress/shortcode": 4.48.1 + "@wordpress/warning": 3.48.1 change-case: 4.1.2 colord: 2.9.3 fast-deep-equal: 3.1.3 hpq: 1.4.0 is-plain-object: 5.0.0 memize: 2.1.1 - react: 19.2.6 + react: 19.2.7 react-is: 18.3.1 remove-accents: 0.5.0 showdown: 1.9.1 simple-html-tokenizer: 0.5.11 uuid: 14.0.0 - '@wordpress/browserslist-config@6.46.0': {} + "@wordpress/browserslist-config@6.48.1": {} - '@wordpress/commands@1.46.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@wordpress/commands@1.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@wordpress/base-styles': 8.0.0 - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/keyboard-shortcuts': 5.46.0(react@19.2.6) - '@wordpress/preferences': 4.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/private-apis': 1.46.0 - '@wordpress/warning': 3.46.0 + "@wordpress/base-styles": 10.0.1 + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/keyboard-shortcuts": 5.48.1(react@19.2.7) + "@wordpress/preferences": 4.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/private-apis": 1.48.1 + "@wordpress/warning": 3.48.1 clsx: 2.1.1 - cmdk: 1.1.1(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/react' - - '@types/react-dom' - - supports-color - - '@wordpress/components@33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': - dependencies: - '@ariakit/react': 0.4.28(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@date-fns/utc': 2.1.1 - '@emotion/cache': 11.14.0 - '@emotion/css': 11.13.5 - '@emotion/react': 11.14.0(@types/react@18.3.29)(react@19.2.6) - '@emotion/serialize': 1.3.3 - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.29)(react@19.2.6))(@types/react@18.3.29)(react@19.2.6) - '@emotion/utils': 1.4.2 - '@floating-ui/react-dom': 2.0.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@types/gradient-parser': 1.1.0 - '@types/highlight-words-core': 1.2.1 - '@types/react': 18.3.29 - '@use-gesture/react': 10.3.1(react@19.2.6) - '@wordpress/a11y': 4.46.0 - '@wordpress/base-styles': 8.0.0 - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/date': 5.46.0 - '@wordpress/deprecated': 4.46.0 - '@wordpress/dom': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/escape-html': 3.46.0 - '@wordpress/hooks': 4.46.0 - '@wordpress/html-entities': 4.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/is-shallow-equal': 5.46.0 - '@wordpress/keycodes': 4.46.0 - '@wordpress/primitives': 4.46.0(react@19.2.6) - '@wordpress/private-apis': 1.46.0 - '@wordpress/rich-text': 7.46.0(react@19.2.6) - '@wordpress/style-runtime': 0.2.0 - '@wordpress/warning': 3.46.0 + cmdk: 1.1.1(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + transitivePeerDependencies: + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - "@types/react" + - "@types/react-dom" + - stylelint + - supports-color + + "@wordpress/components@35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": + dependencies: + "@ariakit/react": 0.4.29(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@date-fns/utc": 2.1.1 + "@emotion/cache": 11.14.0 + "@emotion/css": 11.13.5 + "@emotion/react": 11.14.0(@types/react@18.3.31)(react@19.2.7) + "@emotion/serialize": 1.3.3 + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@19.2.7))(@types/react@18.3.31)(react@19.2.7) + "@emotion/utils": 1.4.2 + "@floating-ui/react-dom": 2.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@types/gradient-parser": 1.1.0 + "@types/highlight-words-core": 1.2.1 + "@types/react": 18.3.31 + "@use-gesture/react": 10.3.1(react@19.2.7) + "@wordpress/a11y": 4.48.1 + "@wordpress/base-styles": 10.0.1 + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/date": 5.48.1 + "@wordpress/deprecated": 4.48.1 + "@wordpress/dom": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/escape-html": 3.48.1 + "@wordpress/hooks": 4.48.1 + "@wordpress/html-entities": 4.48.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/is-shallow-equal": 5.48.1 + "@wordpress/keycodes": 4.48.1 + "@wordpress/primitives": 4.48.1(react@19.2.7) + "@wordpress/private-apis": 1.48.1 + "@wordpress/rich-text": 7.48.1(react@19.2.7) + "@wordpress/style-runtime": 0.4.1 + "@wordpress/ui": 0.15.1(@date-fns/tz@1.5.0)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/warning": 3.48.1 change-case: 4.1.2 clsx: 2.1.1 colord: 2.9.3 csstype: 3.2.3 - date-fns: 4.3.0 + date-fns: 4.4.0 deepmerge: 4.3.1 fast-deep-equal: 3.1.3 - framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) gradient-parser: 1.1.1 highlight-words-core: 1.2.3 is-plain-object: 5.0.0 memize: 2.1.1 path-to-regexp: 6.3.0 - re-resizable: 6.11.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react: 19.2.6 - react-colorful: 5.7.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react-day-picker: 9.14.0(react@19.2.6) - react-dom: 19.2.6(react@19.2.6) + re-resizable: 6.11.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react: 19.2.7 + react-colorful: 5.7.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react-day-picker: 9.14.0(react@19.2.7) + react-dom: 19.2.7(react@19.2.7) remove-accents: 0.5.0 uuid: 14.0.0 transitivePeerDependencies: - - '@emotion/is-prop-valid' + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - stylelint - supports-color - '@wordpress/compose@7.46.0(react@19.2.6)': + "@wordpress/compose@8.1.1(react@19.2.7)": dependencies: - '@types/mousetrap': 1.6.15 - '@wordpress/deprecated': 4.46.0 - '@wordpress/dom': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/is-shallow-equal': 5.46.0 - '@wordpress/keycodes': 4.46.0 - '@wordpress/priority-queue': 3.46.0 - '@wordpress/undo-manager': 1.46.0 + "@types/mousetrap": 1.6.15 + "@types/react": 18.3.31 + "@wordpress/deprecated": 4.48.1 + "@wordpress/dom": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/is-shallow-equal": 5.48.1 + "@wordpress/keycodes": 4.48.1 + "@wordpress/priority-queue": 3.48.1 + "@wordpress/private-apis": 1.48.1 + "@wordpress/undo-manager": 1.48.1 change-case: 4.1.2 mousetrap: 1.6.5 - react: 19.2.6 - use-memo-one: 1.1.3(react@19.2.6) - - '@wordpress/data@10.46.0(react@19.2.6)': - dependencies: - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/deprecated': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/is-shallow-equal': 5.46.0 - '@wordpress/priority-queue': 3.46.0 - '@wordpress/private-apis': 1.46.0 - '@wordpress/redux-routine': 5.46.0(redux@5.0.1) + react: 19.2.7 + use-memo-one: 1.1.3(react@19.2.7) + + "@wordpress/data@10.48.1(react@19.2.7)": + dependencies: + "@types/react": 18.3.31 + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/deprecated": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/is-shallow-equal": 5.48.1 + "@wordpress/priority-queue": 3.48.1 + "@wordpress/private-apis": 1.48.1 + "@wordpress/redux-routine": 5.48.1(redux@5.0.1) deepmerge: 4.3.1 equivalent-key-map: 0.2.2 is-plain-object: 5.0.0 is-promise: 4.0.0 - react: 19.2.6 + react: 19.2.7 redux: 5.0.1 rememo: 4.0.2 - use-memo-one: 1.1.3(react@19.2.6) - - '@wordpress/dataviews@14.3.0(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))': - dependencies: - '@ariakit/react': 0.4.28(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/base-styles': 8.0.0 - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/date': 5.46.0 - '@wordpress/deprecated': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/keycodes': 4.46.0 - '@wordpress/primitives': 4.46.0(react@19.2.6) - '@wordpress/private-apis': 1.46.0 - '@wordpress/ui': 0.13.0(@date-fns/tz@1.5.0)(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) - '@wordpress/warning': 3.46.0 + use-memo-one: 1.1.3(react@19.2.7) + + "@wordpress/dataviews@16.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": + dependencies: + "@ariakit/react": 0.4.29(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@types/react": 18.3.31 + "@wordpress/base-styles": 10.0.1 + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/date": 5.48.1 + "@wordpress/deprecated": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/keycodes": 4.48.1 + "@wordpress/primitives": 4.48.1(react@19.2.7) + "@wordpress/private-apis": 1.48.1 + "@wordpress/ui": 0.15.1(@date-fns/tz@1.5.0)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/warning": 3.48.1 clsx: 2.1.1 colord: 2.9.3 - date-fns: 4.3.0 + date-fns: 4.4.0 deepmerge: 4.3.1 fast-deep-equal: 3.1.3 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) remove-accents: 0.5.0 transitivePeerDependencies: - - '@date-fns/tz' - - '@emotion/is-prop-valid' - - '@types/react' + - "@date-fns/tz" + - "@emotion/is-prop-valid" - stylelint - supports-color - '@wordpress/date@5.46.0': + "@wordpress/date@5.48.1": dependencies: - '@wordpress/deprecated': 4.46.0 + "@wordpress/deprecated": 4.48.1 moment: 2.30.1 moment-timezone: 0.5.48 - '@wordpress/dependency-extraction-webpack-plugin@6.46.0(webpack@5.107.2)': + "@wordpress/dependency-extraction-webpack-plugin@6.48.1(webpack@5.107.2)": dependencies: - json2php: 0.0.7 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + json2php: 0.0.9 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) - '@wordpress/deprecated@4.46.0': + "@wordpress/deprecated@4.48.1": dependencies: - '@wordpress/hooks': 4.46.0 + "@wordpress/hooks": 4.48.1 - '@wordpress/dom-ready@4.46.0': {} + "@wordpress/dom-ready@4.48.1": {} - '@wordpress/dom@4.46.0': + "@wordpress/dom@4.48.1": dependencies: - '@wordpress/deprecated': 4.46.0 + "@wordpress/deprecated": 4.48.1 - '@wordpress/e2e-test-utils-playwright@1.46.0(@playwright/test@1.60.0)(@types/node@25.9.1)': + "@wordpress/e2e-test-utils-playwright@1.48.1(@playwright/test@1.61.0)(@types/node@25.9.3)(supports-color@8.1.1)": dependencies: - '@playwright/test': 1.60.0 - '@types/node': 25.9.1 + "@playwright/test": 1.61.0 + "@types/node": 25.9.3 change-case: 4.1.2 get-port: 5.1.1 - lighthouse: 12.8.2 + lighthouse: 12.8.2(supports-color@8.1.1) mime: 3.0.0 web-vitals: 4.2.4 transitivePeerDependencies: @@ -55457,49 +61326,50 @@ snapshots: - supports-color - utf-8-validate - '@wordpress/element@6.46.0': + "@wordpress/element@8.0.1": dependencies: - '@types/react': 18.3.29 - '@types/react-dom': 18.3.7(@types/react@18.3.29) - '@wordpress/escape-html': 3.46.0 + "@types/react": 18.3.31 + "@types/react-dom": 18.3.7(@types/react@18.3.31) + "@wordpress/deprecated": 4.48.1 + "@wordpress/escape-html": 3.48.1 change-case: 4.1.2 is-plain-object: 5.0.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@wordpress/escape-html@3.46.0': {} + "@wordpress/escape-html@3.48.1": {} - '@wordpress/eslint-plugin@25.2.0(@babel/core@7.25.7)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(wp-prettier@3.0.3)': + "@wordpress/eslint-plugin@25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3)": dependencies: - '@babel/core': 7.25.7 - '@babel/eslint-parser': 7.28.6(@babel/core@7.25.7)(eslint@10.4.1(jiti@2.7.0)) - '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.4.1(jiti@2.7.0)) - '@eslint/compat': 2.1.0(eslint@10.4.1(jiti@2.7.0)) - '@wordpress/babel-preset-default': 8.46.0 - '@wordpress/prettier-config': 4.46.0(wp-prettier@3.0.3) - '@wordpress/theme': 0.13.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) + "@babel/core": 7.29.0 + "@babel/eslint-parser": 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) + "@eslint-community/eslint-plugin-eslint-comments": 4.7.2(eslint@10.5.0(jiti@2.7.0)) + "@eslint/compat": 2.1.0(eslint@10.5.0(jiti@2.7.0)) + "@wordpress/babel-preset-default": 8.48.1 + "@wordpress/prettier-config": 4.48.1(wp-prettier@3.0.3) + "@wordpress/theme": 0.15.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) cosmiconfig: 7.1.0 - eslint: 10.4.1(jiti@2.7.0) - eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))(typescript@6.0.3) - eslint-plugin-jsdoc: 50.8.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-playwright: 2.10.4(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(wp-prettier@3.0.3) - eslint-plugin-react: 7.37.5(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-react-hooks: 7.1.1(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) + eslint-import-resolver-typescript: 4.4.5(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(typescript@6.0.3) + eslint-plugin-jsdoc: 50.8.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-playwright: 2.10.4(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(wp-prettier@3.0.3) + eslint-plugin-react: 7.37.5(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react-hooks: 7.1.1(eslint@10.5.0(jiti@2.7.0)) globals: 16.5.0 requireindex: 1.2.0 - typescript-eslint: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) optionalDependencies: prettier: wp-prettier@3.0.3 typescript: 6.0.3 transitivePeerDependencies: - - '@types/eslint' - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' + - "@types/eslint" + - "@typescript-eslint/eslint-plugin" + - "@typescript-eslint/parser" - eslint-import-resolver-webpack - eslint-plugin-import-x - jest @@ -55508,12 +61378,12 @@ snapshots: - stylelint - supports-color - '@wordpress/global-styles-engine@1.13.0(react@19.2.6)': + "@wordpress/global-styles-engine@1.15.1(react@19.2.7)": dependencies: - '@wordpress/blocks': 15.19.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/i18n': 6.19.0 - '@wordpress/style-engine': 2.46.0 + "@wordpress/blocks": 15.21.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/i18n": 6.21.1 + "@wordpress/style-engine": 2.48.1 colord: 2.9.3 deepmerge: 4.3.1 fast-deep-equal: 3.1.3 @@ -55522,172 +61392,187 @@ snapshots: transitivePeerDependencies: - react - '@wordpress/hooks@4.46.0': {} + "@wordpress/hooks@4.48.1": {} - '@wordpress/html-entities@4.46.0': {} + "@wordpress/html-entities@4.48.1": {} - '@wordpress/i18n@6.19.0': + "@wordpress/i18n@6.21.1": dependencies: - '@tannin/sprintf': 1.3.3 - '@wordpress/hooks': 4.46.0 + "@tannin/sprintf": 1.3.3 + "@wordpress/hooks": 4.48.1 gettext-parser: 1.4.0 memize: 2.1.1 tannin: 1.2.0 - '@wordpress/icons@13.1.0(react@19.2.6)': + "@wordpress/icons@14.0.1(react@19.2.7)": dependencies: - '@wordpress/element': 6.46.0 - '@wordpress/primitives': 4.46.0(react@19.2.6) + "@types/react": 18.3.31 + "@wordpress/element": 8.0.1 + "@wordpress/primitives": 4.48.1(react@19.2.7) change-case: 4.1.2 - react: 19.2.6 + react: 19.2.7 - '@wordpress/image-cropper@1.10.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@wordpress/image-cropper@1.12.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 + "@types/react": 18.3.31 + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 clsx: 2.1.1 dequal: 2.0.3 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - react-easy-crop: 5.5.7(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + react-easy-crop: 5.5.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) transitivePeerDependencies: - - '@emotion/is-prop-valid' + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - stylelint - supports-color - '@wordpress/interactivity@6.46.0': + "@wordpress/interactivity@6.48.1": dependencies: - '@preact/signals': 1.3.4(preact@10.29.2) + "@preact/signals": 1.3.4(preact@10.29.2) preact: 10.29.2 - '@wordpress/is-shallow-equal@5.46.0': {} + "@wordpress/is-shallow-equal@5.48.1": {} - '@wordpress/jest-console@8.46.0(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))': + "@wordpress/jest-console@8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))": dependencies: - jest: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) jest-matcher-utils: 29.7.0 jest-mock: 29.7.0 - '@wordpress/jest-preset-default@12.46.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))': + "@wordpress/jest-preset-default@12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))": dependencies: - '@babel/core': 7.25.7 - '@wordpress/jest-console': 8.46.0(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3))) - babel-jest: 29.7.0(@babel/core@7.25.7) - jest: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + "@babel/core": 7.29.0 + "@wordpress/jest-console": 8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))) + babel-jest: 29.7.0(@babel/core@7.29.0) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) transitivePeerDependencies: - supports-color - '@wordpress/keyboard-shortcuts@5.46.0(react@19.2.6)': + "@wordpress/keyboard-shortcuts@5.48.1(react@19.2.7)": dependencies: - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/element': 6.46.0 - '@wordpress/keycodes': 4.46.0 - react: 19.2.6 + "@types/react": 18.3.31 + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/element": 8.0.1 + "@wordpress/keycodes": 4.48.1 + react: 19.2.7 - '@wordpress/keycodes@4.46.0': + "@wordpress/keycodes@4.48.1": dependencies: - '@wordpress/i18n': 6.19.0 + "@types/react": 18.3.31 + "@wordpress/i18n": 6.21.1 - '@wordpress/notices@5.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@wordpress/notices@5.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@wordpress/a11y': 4.46.0 - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) + "@types/react": 18.3.31 + "@wordpress/a11y": 4.48.1 + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/data": 10.48.1(react@19.2.7) clsx: 2.1.1 - react: 19.2.6 + react: 19.2.7 transitivePeerDependencies: - - '@emotion/is-prop-valid' + - "@date-fns/tz" + - "@emotion/is-prop-valid" - react-dom + - stylelint - supports-color - '@wordpress/npm-package-json-lint-config@5.46.0(npm-package-json-lint@6.4.0(typescript@6.0.3))': + "@wordpress/npm-package-json-lint-config@5.48.1(npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3))": dependencies: - npm-package-json-lint: 6.4.0(typescript@6.0.3) + npm-package-json-lint: 6.4.0(supports-color@8.1.1)(typescript@6.0.3) - '@wordpress/postcss-plugins-preset@5.46.0(postcss@8.5.15)': + "@wordpress/postcss-plugins-preset@5.48.1(postcss@8.5.15)": dependencies: - '@wordpress/base-styles': 8.0.0 + "@wordpress/base-styles": 10.0.1 + "@wordpress/browserslist-config": 6.48.1 autoprefixer: 10.5.0(postcss@8.5.15) postcss: 8.5.15 postcss-import: 16.1.1(postcss@8.5.15) - '@wordpress/preferences@4.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': - dependencies: - '@wordpress/a11y': 4.46.0 - '@wordpress/base-styles': 8.0.0 - '@wordpress/components': 33.1.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/deprecated': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/private-apis': 1.46.0 + "@wordpress/preferences@4.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": + dependencies: + "@types/react": 18.3.31 + "@wordpress/a11y": 4.48.1 + "@wordpress/base-styles": 10.0.1 + "@wordpress/components": 35.0.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/deprecated": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/private-apis": 1.48.1 clsx: 2.1.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) transitivePeerDependencies: - - '@emotion/is-prop-valid' + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - stylelint - supports-color - '@wordpress/prettier-config@4.46.0(wp-prettier@3.0.3)': + "@wordpress/prettier-config@4.48.1(wp-prettier@3.0.3)": dependencies: prettier: wp-prettier@3.0.3 - '@wordpress/primitives@4.46.0(react@19.2.6)': + "@wordpress/primitives@4.48.1(react@19.2.7)": dependencies: - '@wordpress/element': 6.46.0 + "@types/react": 18.3.31 + "@wordpress/element": 8.0.1 clsx: 2.1.1 - react: 19.2.6 + react: 19.2.7 - '@wordpress/priority-queue@3.46.0': + "@wordpress/priority-queue@3.48.1": dependencies: requestidlecallback: 0.3.0 - '@wordpress/private-apis@1.46.0': {} + "@wordpress/private-apis@1.48.1": {} - '@wordpress/redux-routine@5.46.0(redux@5.0.1)': + "@wordpress/redux-routine@5.48.1(redux@5.0.1)": dependencies: is-plain-object: 5.0.0 is-promise: 4.0.0 redux: 5.0.1 rungen: 0.3.2 - '@wordpress/rich-text@7.46.0(react@19.2.6)': - dependencies: - '@wordpress/a11y': 4.46.0 - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/deprecated': 4.46.0 - '@wordpress/dom': 4.46.0 - '@wordpress/element': 6.46.0 - '@wordpress/escape-html': 3.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/keycodes': 4.46.0 - '@wordpress/private-apis': 1.46.0 + "@wordpress/rich-text@7.48.1(react@19.2.7)": + dependencies: + "@types/react": 18.3.31 + "@wordpress/a11y": 4.48.1 + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/deprecated": 4.48.1 + "@wordpress/dom": 4.48.1 + "@wordpress/element": 8.0.1 + "@wordpress/escape-html": 3.48.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/keycodes": 4.48.1 + "@wordpress/private-apis": 1.48.1 colord: 2.9.3 memize: 2.1.1 - react: 19.2.6 - - '@wordpress/scripts@32.2.0(@playwright/test@1.60.0)(@swc/core@1.15.40)(@types/eslint@9.6.1)(@types/node@25.9.1)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(node-notifier@10.0.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1)': - dependencies: - '@babel/core': 7.25.7 - '@playwright/test': 1.60.0 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.107.2) - '@svgr/webpack': 8.1.0(typescript@6.0.3) - '@wordpress/babel-preset-default': 8.46.0 - '@wordpress/browserslist-config': 6.46.0 - '@wordpress/dependency-extraction-webpack-plugin': 6.46.0(webpack@5.107.2) - '@wordpress/e2e-test-utils-playwright': 1.46.0(@playwright/test@1.60.0)(@types/node@25.9.1) - '@wordpress/eslint-plugin': 25.2.0(@babel/core@7.25.7)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(wp-prettier@3.0.3) - '@wordpress/jest-preset-default': 12.46.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3))) - '@wordpress/npm-package-json-lint-config': 5.46.0(npm-package-json-lint@6.4.0(typescript@6.0.3)) - '@wordpress/postcss-plugins-preset': 5.46.0(postcss@8.5.15) - '@wordpress/prettier-config': 4.46.0(wp-prettier@3.0.3) - '@wordpress/stylelint-config': 23.38.0(postcss@8.5.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(stylelint@16.26.1(typescript@6.0.3)) + react: 19.2.7 + + "@wordpress/scripts@32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@25.9.3)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1)": + dependencies: + "@babel/core": 7.29.0 + "@playwright/test": 1.61.0 + "@pmmmwh/react-refresh-webpack-plugin": 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.107.2) + "@svgr/webpack": 8.1.0(typescript@6.0.3) + "@wordpress/babel-preset-default": 8.48.1 + "@wordpress/browserslist-config": 6.48.1 + "@wordpress/dependency-extraction-webpack-plugin": 6.48.1(webpack@5.107.2) + "@wordpress/e2e-test-utils-playwright": 1.48.1(@playwright/test@1.61.0)(@types/node@25.9.3)(supports-color@8.1.1) + "@wordpress/eslint-plugin": 25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3) + "@wordpress/jest-preset-default": 12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))) + "@wordpress/npm-package-json-lint-config": 5.48.1(npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3)) + "@wordpress/postcss-plugins-preset": 5.48.1(postcss@8.5.15) + "@wordpress/prettier-config": 4.48.1(wp-prettier@3.0.3) + "@wordpress/stylelint-config": 23.40.1(postcss@8.5.15)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(stylelint@16.26.1(typescript@6.0.3)) adm-zip: 0.5.17 - babel-jest: 29.7.0(@babel/core@7.25.7) - babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.107.2) + babel-jest: 29.7.0(@babel/core@7.29.0) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.107.2) browserslist: 4.28.2 chalk: 4.1.2 check-node-version: 4.2.1 @@ -55697,11 +61582,11 @@ snapshots: cssnano: 6.1.2(postcss@8.5.15) cwd: 0.10.0 dir-glob: 3.0.1 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) expect-puppeteer: 4.4.0 fast-glob: 3.3.3 filenamify: 4.3.0 - jest: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) jest-dev-server: 10.1.4 jest-environment-jsdom: 30.4.1(canvas@3.2.3) jest-environment-node: 29.7.0 @@ -55710,41 +61595,41 @@ snapshots: merge-deep: 3.0.3 mini-css-extract-plugin: 2.10.2(webpack@5.107.2) minimist: 1.2.8 - npm-package-json-lint: 6.4.0(typescript@6.0.3) + npm-package-json-lint: 6.4.0(supports-color@8.1.1)(typescript@6.0.3) npm-packlist: 3.0.0 postcss: 8.5.15 postcss-loader: 6.2.1(postcss@8.5.15)(webpack@5.107.2) prettier: wp-prettier@3.0.3 - puppeteer-core: 23.11.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + puppeteer-core: 23.11.1(supports-color@8.1.1) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) react-refresh: 0.14.2 read-pkg-up: 7.0.1 resolve-bin: 0.4.3 rtlcss: 4.3.0 - sass: 1.100.0 - sass-loader: 16.0.8(sass@1.100.0)(webpack@5.107.2) + sass: 1.101.0 + sass-loader: 16.0.8(sass@1.101.0)(webpack@5.107.2) schema-utils: 4.3.3 source-map-loader: 3.0.2(webpack@5.107.2) stylelint: 16.26.1(typescript@6.0.3) - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2) + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2) url-loader: 4.1.1(file-loader@6.2.0(webpack@5.107.2))(webpack@5.107.2) - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@5.1.4) webpack-bundle-analyzer: 4.10.2 - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2) - webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2) - transitivePeerDependencies: - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@types/eslint' - - '@types/node' - - '@types/webpack' - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - '@webpack-cli/generators' + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.107.2) + transitivePeerDependencies: + - "@minify-html/node" + - "@rspack/core" + - "@swc/core" + - "@swc/css" + - "@swc/html" + - "@types/eslint" + - "@types/node" + - "@types/webpack" + - "@typescript-eslint/eslint-plugin" + - "@typescript-eslint/parser" + - "@webpack-cli/generators" - babel-plugin-macros - bare-abort-controller - bare-buffer @@ -55775,20 +61660,21 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@wordpress/shortcode@4.46.0': + "@wordpress/shortcode@4.48.1": dependencies: memize: 2.1.1 - '@wordpress/style-engine@2.46.0': + "@wordpress/style-engine@2.48.1": dependencies: + "@types/react": 18.3.31 change-case: 4.1.2 - '@wordpress/style-runtime@0.2.0': {} + "@wordpress/style-runtime@0.4.1": {} - '@wordpress/stylelint-config@23.38.0(postcss@8.5.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(stylelint@16.26.1(typescript@6.0.3))': + "@wordpress/stylelint-config@23.40.1(postcss@8.5.15)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@stylistic/stylelint-plugin': 3.1.3(stylelint@16.26.1(typescript@6.0.3)) - '@wordpress/theme': 0.13.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) + "@stylistic/stylelint-plugin": 3.1.3(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/theme": 0.15.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) stylelint: 16.26.1(typescript@6.0.3) stylelint-config-recommended: 14.0.1(stylelint@16.26.1(typescript@6.0.3)) stylelint-config-recommended-scss: 14.1.0(postcss@8.5.15)(stylelint@16.26.1(typescript@6.0.3)) @@ -55798,91 +61684,95 @@ snapshots: - react - react-dom - '@wordpress/theme@0.13.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))': + "@wordpress/theme@0.15.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@wordpress/element': 6.46.0 - '@wordpress/private-apis': 1.46.0 - '@wordpress/style-runtime': 0.2.0 + "@types/react": 18.3.31 + "@wordpress/element": 8.0.1 + "@wordpress/private-apis": 1.48.1 + "@wordpress/style-runtime": 0.4.1 colorjs.io: 0.6.1 memize: 2.1.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: stylelint: 16.26.1(typescript@6.0.3) - '@wordpress/token-list@3.46.0': {} - - '@wordpress/ui@0.13.0(@date-fns/tz@1.5.0)(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3))': - dependencies: - '@base-ui/react': 1.5.0(@date-fns/tz@1.5.0)(@types/react@18.3.29)(date-fns@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/a11y': 4.46.0 - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/icons': 13.1.0(react@19.2.6) - '@wordpress/keycodes': 4.46.0 - '@wordpress/primitives': 4.46.0(react@19.2.6) - '@wordpress/private-apis': 1.46.0 - '@wordpress/style-runtime': 0.2.0 - '@wordpress/theme': 0.13.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/token-list@3.48.1": {} + + "@wordpress/ui@0.15.1(@date-fns/tz@1.5.0)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": + dependencies: + "@base-ui/react": 1.5.0(@date-fns/tz@1.5.0)(@types/react@18.3.31)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@types/react": 18.3.31 + "@wordpress/a11y": 4.48.1 + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/icons": 14.0.1(react@19.2.7) + "@wordpress/keycodes": 4.48.1 + "@wordpress/primitives": 4.48.1(react@19.2.7) + "@wordpress/private-apis": 1.48.1 + "@wordpress/style-runtime": 0.4.1 + "@wordpress/theme": 0.15.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) clsx: 2.1.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) tabbable: 6.4.0 transitivePeerDependencies: - - '@date-fns/tz' - - '@types/react' + - "@date-fns/tz" - date-fns - stylelint - '@wordpress/undo-manager@1.46.0': + "@wordpress/undo-manager@1.48.1": dependencies: - '@wordpress/is-shallow-equal': 5.46.0 + "@wordpress/is-shallow-equal": 5.48.1 - '@wordpress/upload-media@0.31.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + "@wordpress/upload-media@0.33.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))": dependencies: - '@wordpress/blob': 4.46.0 - '@wordpress/compose': 7.46.0(react@19.2.6) - '@wordpress/data': 10.46.0(react@19.2.6) - '@wordpress/element': 6.46.0 - '@wordpress/i18n': 6.19.0 - '@wordpress/preferences': 4.46.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@wordpress/private-apis': 1.46.0 - '@wordpress/url': 4.46.0 - '@wordpress/vips': 1.6.0 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@types/react": 18.3.31 + "@wordpress/blob": 4.48.1 + "@wordpress/compose": 8.1.1(react@19.2.7) + "@wordpress/data": 10.48.1(react@19.2.7) + "@wordpress/element": 8.0.1 + "@wordpress/i18n": 6.21.1 + "@wordpress/preferences": 4.48.1(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3)) + "@wordpress/private-apis": 1.48.1 + "@wordpress/url": 4.48.1 + "@wordpress/vips": 2.1.1 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) uuid: 14.0.0 transitivePeerDependencies: - - '@emotion/is-prop-valid' + - "@date-fns/tz" + - "@emotion/is-prop-valid" + - stylelint - supports-color - '@wordpress/url@4.46.0': + "@wordpress/url@4.48.1": dependencies: remove-accents: 0.5.0 - '@wordpress/vips@1.6.0': + "@wordpress/vips@2.1.1": dependencies: - '@wordpress/worker-threads': 1.6.0 - wasm-vips: 0.0.16 + "@wordpress/worker-threads": 1.8.1 + wasm-vips: 0.0.17 - '@wordpress/warning@3.46.0': {} + "@wordpress/warning@3.48.1": {} - '@wordpress/wordcount@4.46.0': {} + "@wordpress/wordcount@4.48.1": {} - '@wordpress/worker-threads@1.6.0': + "@wordpress/worker-threads@1.8.1": dependencies: - comctx: 1.6.1 + comctx: 1.7.5 - '@xmldom/xmldom@0.9.10': {} + "@xmldom/xmldom@0.9.10": {} - '@xtuc/ieee754@1.2.0': {} + "@xtuc/ieee754@1.2.0": {} - '@xtuc/long@4.2.2': {} + "@xtuc/long@4.2.2": {} - '@yarnpkg/lockfile@1.1.0': {} + "@yarnpkg/lockfile@1.1.0": {} - '@zkochan/js-yaml@0.0.7': + "@zkochan/js-yaml@0.0.7": dependencies: argparse: 2.0.1 @@ -55926,13 +61816,13 @@ snapshots: acorn: 6.4.2 acorn-walk: 6.2.0 - acorn-import-attributes@1.9.5(acorn@8.16.0): + acorn-import-attributes@1.9.5(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - acorn-import-phases@1.0.4(acorn@8.16.0): + acorn-import-phases@1.0.4(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn-jsx-walk@2.0.0: {} @@ -55940,15 +61830,19 @@ snapshots: dependencies: acorn: 8.16.0 + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + acorn-loose@8.5.2: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn-walk@6.2.0: {} acorn-walk@8.3.5: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn@6.4.2: {} @@ -55956,33 +61850,28 @@ snapshots: acorn@8.16.0: {} + acorn@8.17.0: {} + add-stream@1.0.0: {} address@1.2.2: {} address@2.0.3: {} - adjust-sourcemap-loader@4.0.0: - dependencies: - loader-utils: 2.0.4 - regex-parser: 2.3.1 - adm-zip@0.5.17: {} after@0.8.2: {} - agent-base@4.3.0: - dependencies: - es6-promisify: 5.0.0 - agent-base@6.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.4: {} + agent-base@9.0.0: {} + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -56042,39 +61931,39 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.48.1: - dependencies: - '@algolia/abtesting': 1.14.1 - '@algolia/client-abtesting': 5.48.1 - '@algolia/client-analytics': 5.48.1 - '@algolia/client-common': 5.48.1 - '@algolia/client-insights': 5.48.1 - '@algolia/client-personalization': 5.48.1 - '@algolia/client-query-suggestions': 5.48.1 - '@algolia/client-search': 5.48.1 - '@algolia/ingestion': 1.48.1 - '@algolia/monitoring': 1.48.1 - '@algolia/recommend': 5.48.1 - '@algolia/requester-browser-xhr': 5.48.1 - '@algolia/requester-fetch': 5.48.1 - '@algolia/requester-node-http': 5.48.1 - - algoliasearch@5.52.1: - dependencies: - '@algolia/abtesting': 1.18.1 - '@algolia/client-abtesting': 5.52.1 - '@algolia/client-analytics': 5.52.1 - '@algolia/client-common': 5.52.1 - '@algolia/client-insights': 5.52.1 - '@algolia/client-personalization': 5.52.1 - '@algolia/client-query-suggestions': 5.52.1 - '@algolia/client-search': 5.52.1 - '@algolia/ingestion': 1.52.1 - '@algolia/monitoring': 1.52.1 - '@algolia/recommend': 5.52.1 - '@algolia/requester-browser-xhr': 5.52.1 - '@algolia/requester-fetch': 5.52.1 - '@algolia/requester-node-http': 5.52.1 + algoliasearch@5.52.0: + dependencies: + "@algolia/abtesting": 1.18.0 + "@algolia/client-abtesting": 5.52.0 + "@algolia/client-analytics": 5.52.0 + "@algolia/client-common": 5.52.0 + "@algolia/client-insights": 5.52.0 + "@algolia/client-personalization": 5.52.0 + "@algolia/client-query-suggestions": 5.52.0 + "@algolia/client-search": 5.52.0 + "@algolia/ingestion": 1.52.0 + "@algolia/monitoring": 1.52.0 + "@algolia/recommend": 5.52.0 + "@algolia/requester-browser-xhr": 5.52.0 + "@algolia/requester-fetch": 5.52.0 + "@algolia/requester-node-http": 5.52.0 + + algoliasearch@5.54.1: + dependencies: + "@algolia/abtesting": 1.20.1 + "@algolia/client-abtesting": 5.54.1 + "@algolia/client-analytics": 5.54.1 + "@algolia/client-common": 5.54.1 + "@algolia/client-insights": 5.54.1 + "@algolia/client-personalization": 5.54.1 + "@algolia/client-query-suggestions": 5.54.1 + "@algolia/client-search": 5.54.1 + "@algolia/ingestion": 1.54.1 + "@algolia/monitoring": 1.54.1 + "@algolia/recommend": 5.54.1 + "@algolia/requester-browser-xhr": 5.54.1 + "@algolia/requester-fetch": 5.54.1 + "@algolia/requester-node-http": 5.54.1 alien-signals@3.2.1: {} @@ -56141,14 +62030,12 @@ snapshots: ansicolors@0.2.1: {} - ansis@4.3.0: {} + ansis@4.3.1: {} any-observable@0.3.0(rxjs@6.6.7): optionalDependencies: rxjs: 6.6.7 - any-promise@0.1.0: {} - any-promise@1.3.0: {} anymatch@2.0.0: @@ -56248,10 +62135,6 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-differ@1.0.0: {} - - array-differ@3.0.0: {} - array-each@1.0.1: {} array-equal@1.0.2: {} @@ -56399,18 +62282,18 @@ snapshots: ast-kit@2.2.0: dependencies: - '@babel/parser': 7.29.3 + "@babel/parser": 7.29.7 pathe: 2.0.3 - ast-kit@3.0.0-beta.1: + ast-kit@3.0.0: dependencies: - '@babel/parser': 8.0.0-rc.5 + "@babel/parser": 8.0.0 estree-walker: 3.0.3 pathe: 2.0.3 ast-metadata-inferer@0.8.1: dependencies: - '@mdn/browser-compat-data': 5.7.6 + "@mdn/browser-compat-data": 5.7.6 ast-types-flow@0.0.8: {} @@ -56424,29 +62307,35 @@ snapshots: dependencies: tslib: 2.8.1 - ast-v8-to-istanbul@1.0.0: + ast-v8-to-istanbul@1.0.4: dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 estree-walker: 3.0.3 js-tokens: 10.0.0 ast-walker-scope@0.8.3: dependencies: - '@babel/parser': 7.29.3 + "@babel/parser": 7.29.7 + ast-kit: 2.2.0 + + ast-walker-scope@0.9.0: + dependencies: + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 ast-kit: 2.2.0 astral-regex@2.0.0: {} - astro@6.3.7(@types/node@25.9.1)(db0@0.3.4)(ioredis@5.10.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + astro@6.4.7(@types/node@25.9.3)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: - '@astrojs/compiler': 4.0.0 - '@astrojs/internal-helpers': 0.9.1 - '@astrojs/markdown-remark': 7.1.2 - '@astrojs/telemetry': 3.3.2 - '@capsizecss/unpack': 4.0.0 - '@clack/prompts': 1.4.0 - '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@astrojs/compiler": 4.0.0 + "@astrojs/internal-helpers": 0.10.0 + "@astrojs/markdown-remark": 7.2.0 + "@astrojs/telemetry": 3.3.2 + "@capsizecss/unpack": 4.0.1 + "@clack/prompts": 1.5.1 + "@oslojs/encoding": 1.1.0 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) aria-query: 5.3.2 axobject-query: 4.1.0 ci-info: 4.4.0 @@ -56464,54 +62353,54 @@ snapshots: github-slugger: 2.0.0 html-escaper: 3.0.3 http-cache-semantics: 4.2.0 - js-yaml: 4.1.1 + js-yaml: 4.2.0 jsonc-parser: 3.3.1 magic-string: 0.30.21 magicast: 0.5.3 mrmime: 2.0.1 neotraverse: 0.6.18 - obug: 2.1.1 + obug: 2.1.3 p-limit: 7.3.0 p-queue: 9.3.0 package-manager-detector: 1.6.0 piccolore: 0.1.3 picomatch: 4.0.4 rehype: 13.0.2 - semver: 7.8.1 - shiki: 4.1.0 + semver: 7.8.4 + shiki: 4.2.0 smol-toml: 1.6.1 svgo: 4.0.1 - tinyclip: 0.1.12 - tinyexec: 1.2.2 - tinyglobby: 0.2.16 + tinyclip: 0.1.14 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) vfile: 6.0.3 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) xxhash-wasm: 1.1.0 yargs-parser: 22.0.0 zod: 4.4.3 optionalDependencies: sharp: 0.34.5 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@netlify/blobs" + - "@planetscale/database" + - "@types/node" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" - aws4fetch - db0 - idb-keyval @@ -56544,7 +62433,7 @@ snapshots: async-disk-cache@2.1.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) heimdalljs: 0.2.6 istextorbinary: 2.6.0 mkdirp: 0.5.6 @@ -56599,19 +62488,10 @@ snapshots: author-regex@1.0.0: {} - autoprefixer@10.4.27(postcss@8.5.12): - dependencies: - browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.12 - postcss-value-parser: 4.2.0 - autoprefixer@10.5.0(postcss@8.5.15): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 + caniuse-lite: 1.0.30001799 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.15 @@ -56627,34 +62507,34 @@ snapshots: aws4@1.13.2: {} - axe-core@4.11.4: {} + axe-core@4.12.1: {} axios@0.21.4: dependencies: - follow-redirects: 1.16.0(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) transitivePeerDependencies: - debug axios@1.13.6: dependencies: - follow-redirects: 1.16.0(debug@4.4.3) - form-data: 4.0.5 + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) + form-data: 4.0.6 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug axios@1.16.0: dependencies: - follow-redirects: 1.16.0(debug@4.4.3) - form-data: 4.0.5 + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) + form-data: 4.0.6 proxy-from-env: 2.1.0 transitivePeerDependencies: - debug - axios@1.16.1: + axios@1.18.0: dependencies: - follow-redirects: 1.16.0(debug@4.4.3) - form-data: 4.0.5 + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) + form-data: 4.0.6 https-proxy-agent: 5.0.1 proxy-from-env: 2.1.0 transitivePeerDependencies: @@ -56671,23 +62551,11 @@ snapshots: esutils: 2.0.3 js-tokens: 3.0.2 - babel-eslint@10.1.0(eslint@10.4.1(jiti@2.7.0)): - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.3 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - eslint: 10.4.1(jiti@2.7.0) - eslint-visitor-keys: 1.3.0 - resolve: 1.22.12 - transitivePeerDependencies: - - supports-color - - babel-esm-plugin@0.9.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + babel-esm-plugin@0.9.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 2.4.1 deepcopy: 1.0.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) babel-helper-builder-binary-assignment-operator-visitor@6.24.1: dependencies: @@ -56779,24 +62647,11 @@ snapshots: babel-import-util@3.0.1: {} - babel-jest@29.7.0(@babel/core@7.25.7): - dependencies: - '@babel/core': 7.25.7 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.25.7) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - babel-jest@29.7.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 + "@babel/core": 7.29.0 + "@jest/transform": 29.7.0 + "@types/babel__core": 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.29.0) chalk: 4.1.2 @@ -56805,59 +62660,60 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + babel-loader@10.1.1(@babel/core@7.29.0)(webpack@5.107.2): + dependencies: + "@babel/core": 7.29.0 + find-up: 5.0.0 + optionalDependencies: + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) + + babel-loader@10.1.1(@babel/core@8.0.1)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 8.0.1 find-up: 5.0.0 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + optionalDependencies: + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - babel-loader@10.1.1(@babel/core@7.29.0)(webpack@5.107.1): + babel-loader@10.1.1(@babel/core@8.0.1)(webpack@5.107.2): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 8.0.1 find-up: 5.0.0 optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - babel-loader@8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + babel-loader@8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - babel-loader@9.2.1(@babel/core@7.25.7)(webpack@5.107.2): - dependencies: - '@babel/core': 7.25.7 - find-cache-dir: 4.0.0 - schema-utils: 4.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.107.1): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.107.2): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) babel-messages@6.23.0: dependencies: @@ -56869,21 +62725,21 @@ snapshots: babel-plugin-const-enum@1.2.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/traverse": 7.29.7 transitivePeerDependencies: - supports-color babel-plugin-debug-macros@0.2.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 semver: 5.7.2 babel-plugin-debug-macros@0.3.4(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 semver: 5.7.2 babel-plugin-dynamic-import-node@2.3.3: @@ -56892,7 +62748,7 @@ snapshots: babel-plugin-ember-data-packages-polyfill@0.1.2: dependencies: - '@ember-data/rfc395-data': 0.0.4 + "@ember-data/rfc395-data": 0.0.4 babel-plugin-ember-modules-api-polyfill@3.5.0: dependencies: @@ -56900,7 +62756,7 @@ snapshots: babel-plugin-ember-template-compilation@2.4.1: dependencies: - '@glimmer/syntax': 0.95.0 + "@glimmer/syntax": 0.95.0 babel-import-util: 3.0.1 babel-plugin-htmlbars-inline-precompile@5.3.1: @@ -56913,14 +62769,21 @@ snapshots: babel-plugin-inferno@6.8.5(@babel/core@7.29.0): dependencies: - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" + + babel-plugin-inferno@6.8.5(@babel/core@8.0.1): + dependencies: + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@8.0.1) + "@babel/types": 7.29.7 + transitivePeerDependencies: + - "@babel/core" babel-plugin-istanbul@5.2.0: dependencies: - '@babel/helper-plugin-utils': 7.28.6 + "@babel/helper-plugin-utils": 7.29.7 find-up: 3.0.0 istanbul-lib-instrument: 3.3.0 test-exclude: 5.2.3 @@ -56929,9 +62792,9 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.28.6 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.6 + "@babel/helper-plugin-utils": 7.29.7 + "@istanbuljs/load-nyc-config": 1.1.0 + "@istanbuljs/schema": 0.1.6 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -56939,23 +62802,23 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.28.0 + "@babel/template": 7.29.7 + "@babel/types": 7.29.7 + "@types/babel__core": 7.20.5 + "@types/babel__traverse": 7.28.0 babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.18.6 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 html-entities: 2.3.3 parse5: 7.3.0 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.29.2 + "@babel/runtime": 7.29.7 cosmiconfig: 7.1.0 resolve: 1.22.12 @@ -56975,59 +62838,41 @@ snapshots: reselect: 4.1.8 resolve: 1.22.12 - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.25.7): - dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.25.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.25.7) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): dependencies: - '@babel/compat-data': 7.29.3 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.0 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.7): - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.25.7) - core-js-compat: 3.49.0 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.0) core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.0) core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.25.7): + babel-plugin-polyfill-corejs3@1.0.0-rc.2(@babel/core@8.0.1): dependencies: - '@babel/core': 7.25.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.25.7) - transitivePeerDependencies: - - supports-color + "@babel/core": 8.0.1 + "@babel/helper-define-polyfill-provider": 1.0.0-rc.2(@babel/core@8.0.1) + core-js-compat: 3.49.0 babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -57210,50 +63055,31 @@ snapshots: babel-runtime: 6.26.0 babel-types: 6.26.0 - babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.29.0)(@babel/traverse@7.29.0): + babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.29.0)(@babel/traverse@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.29.7 optionalDependencies: - '@babel/traverse': 7.29.0 - - babel-preset-current-node-syntax@1.2.0(@babel/core@7.25.7): - dependencies: - '@babel/core': 7.25.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.25.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) + "@babel/traverse": 7.29.7 babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.29.0) + "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.29.0) + "@babel/plugin-syntax-class-static-block": 7.14.5(@babel/core@7.29.0) + "@babel/plugin-syntax-import-attributes": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.29.0) + "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.29.0) + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.29.0) + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.29.0) + "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.29.0) babel-preset-env@1.7.0: dependencies: @@ -57290,30 +63116,24 @@ snapshots: transitivePeerDependencies: - supports-color - babel-preset-jest@29.6.3(@babel/core@7.25.7): - dependencies: - '@babel/core': 7.25.7 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.25.7) - babel-preset-jest@29.6.3(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.13): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.0) optionalDependencies: solid-js: 1.9.13 babel-remove-types@1.1.0: dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -57356,7 +63176,7 @@ snapshots: babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.29.0 + "@babel/types": 7.29.7 babylon@6.18.0: {} @@ -57386,14 +63206,14 @@ snapshots: balanced-match@4.0.4: {} - bare-events@2.8.3: {} + bare-events@2.9.1: {} - bare-fs@4.7.1: + bare-fs@4.7.2: dependencies: - bare-events: 2.8.3 - bare-path: 3.0.0 - bare-stream: 2.13.1(bare-events@2.8.3) - bare-url: 2.4.3 + bare-events: 2.9.1 + bare-path: 3.0.1 + bare-stream: 2.13.3(bare-events@2.9.1) + bare-url: 2.4.5 fast-fifo: 1.3.2 transitivePeerDependencies: - bare-abort-controller @@ -57401,22 +63221,23 @@ snapshots: bare-os@3.9.1: {} - bare-path@3.0.0: + bare-path@3.0.1: dependencies: bare-os: 3.9.1 - bare-stream@2.13.1(bare-events@2.8.3): + bare-stream@2.13.3(bare-events@2.9.1): dependencies: - streamx: 2.25.0 + b4a: 1.8.1 + streamx: 2.28.0 teex: 1.0.1 optionalDependencies: - bare-events: 2.8.3 + bare-events: 2.9.1 transitivePeerDependencies: - react-native-b4a - bare-url@2.4.3: + bare-url@2.4.5: dependencies: - bare-path: 3.0.0 + bare-path: 3.0.1 base64-arraybuffer@0.1.4: {} @@ -57434,7 +63255,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - baseline-browser-mapping@2.10.32: {} + baseline-browser-mapping@2.10.37: {} basic-auth@2.0.1: dependencies: @@ -57444,24 +63265,24 @@ snapshots: batch@0.6.1: {} - bcp-47-match@1.0.3: {} + bcp-47-match@2.0.3: {} - bcp-47-normalize@1.1.1: + bcp-47-normalize@2.3.0: dependencies: - bcp-47: 1.0.8 - bcp-47-match: 1.0.3 + bcp-47: 2.1.0 + bcp-47-match: 2.0.3 - bcp-47@1.0.8: + bcp-47@2.1.0: dependencies: - is-alphabetical: 1.0.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 bcrypt-pbkdf@1.0.2: dependencies: tweetnacl: 0.14.5 - beasties@0.4.1: + beasties@0.4.2: dependencies: css-select: 6.0.0 css-what: 7.0.0 @@ -57544,10 +63365,6 @@ snapshots: blob@0.0.5: {} - blocking-proxy@1.0.1: - dependencies: - minimist: 1.2.8 - bluebird@3.7.2: {} bn.js@4.12.3: {} @@ -57571,11 +63388,11 @@ snapshots: transitivePeerDependencies: - supports-color - body-parser@2.2.2: + body-parser@2.3.0: dependencies: bytes: 3.1.2 - content-type: 1.0.5 - debug: 4.4.3(supports-color@5.5.0) + content-type: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 @@ -57592,19 +63409,16 @@ snapshots: raw-body: 1.1.7 safe-json-parse: 1.0.1 - bonjour-service@1.4.0: + bonjour-service@1.4.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 boolbase@1.0.0: {} - boolean@3.2.0: - optional: true - bootstrap@5.3.8(@popperjs/core@2.11.8): dependencies: - '@popperjs/core': 2.11.8 + "@popperjs/core": 2.11.8 boxen@5.1.2: dependencies: @@ -57632,12 +63446,12 @@ snapshots: dependencies: big-integer: 1.6.52 - brace-expansion@1.1.14: + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.0: + brace-expansion@2.1.1: dependencies: balanced-match: 1.0.2 @@ -57683,8 +63497,8 @@ snapshots: broccoli-babel-transpiler@7.8.1: dependencies: - '@babel/core': 7.29.0 - '@babel/polyfill': 7.12.1 + "@babel/core": 7.29.0 + "@babel/polyfill": 7.12.1 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 broccoli-persistent-filter: 2.3.1 @@ -57700,7 +63514,7 @@ snapshots: broccoli-babel-transpiler@8.0.2(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 broccoli-persistent-filter: 3.1.3 clone: 2.1.2 hash-for-dep: 1.5.2 @@ -57814,7 +63628,7 @@ snapshots: dependencies: array-equal: 1.0.2 broccoli-plugin: 4.0.7 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fs-tree-diff: 2.0.1 heimdalljs: 0.2.6 minimatch: 3.1.5 @@ -57979,7 +63793,7 @@ snapshots: broccoli-persistent-filter: 2.3.1 broccoli-plugin: 2.1.0 chalk: 2.4.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ensure-posix-path: 1.1.1 fs-extra: 8.1.0 minimatch: 3.1.5 @@ -57990,12 +63804,12 @@ snapshots: transitivePeerDependencies: - supports-color - broccoli-terser-sourcemap@4.1.1: + broccoli-terser-sourcemap@4.1.1(supports-color@8.1.1): dependencies: async-promise-queue: 1.0.5 broccoli-plugin: 4.0.7 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) lodash.defaultsdeep: 4.6.1 matcher-collection: 2.0.1 symlink-or-copy: 1.3.1 @@ -58021,7 +63835,7 @@ snapshots: resolve-path: 1.4.0 rimraf: 6.1.3 sane: 5.0.1 - tmp: 0.2.5 + tmp: 0.2.7 tree-sync: 2.1.0 underscore.string: 3.3.6 watch-detector: 1.0.2 @@ -58087,30 +63901,24 @@ snapshots: browserslist-useragent@3.1.4: dependencies: browserslist: 4.28.2 - electron-to-chromium: 1.5.361 - semver: 7.8.1 + electron-to-chromium: 1.5.372 + semver: 7.8.4 useragent: 2.3.0 yamlparser: 0.0.2 browserslist@3.2.8: dependencies: - caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.361 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.372 browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.32 - caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.361 - node-releases: 2.0.46 + baseline-browser-mapping: 2.10.37 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.372 + node-releases: 2.0.47 update-browserslist-db: 1.2.3(browserslist@4.28.2) - browserstack@1.6.1: - dependencies: - https-proxy-agent: 2.2.4 - transitivePeerDependencies: - - supports-color - bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -58147,7 +63955,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 bundle-name@4.1.0: dependencies: @@ -58173,7 +63981,7 @@ snapshots: defu: 6.1.7 dotenv: 17.4.2 exsolve: 1.0.8 - giget: 3.2.0 + giget: 3.3.0 jiti: 2.7.0 ohash: 2.0.11 pathe: 2.0.3 @@ -58207,8 +64015,8 @@ snapshots: cacache@15.3.0: dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 + "@npmcli/fs": 1.1.1 + "@npmcli/move-file": 1.1.2 chownr: 2.0.0 fs-minipass: 2.1.0 glob: 7.2.3 @@ -58228,10 +64036,10 @@ snapshots: transitivePeerDependencies: - bluebird - cacache@16.1.3: + cacache@16.1.3(bluebird@3.7.2): dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 + "@npmcli/fs": 2.1.2 + "@npmcli/move-file": 2.0.1 chownr: 2.0.0 fs-minipass: 2.1.0 glob: 8.1.0 @@ -58253,7 +64061,7 @@ snapshots: cacache@17.1.4: dependencies: - '@npmcli/fs': 3.1.1 + "@npmcli/fs": 3.1.1 fs-minipass: 3.0.3 glob: 10.5.0 lru-cache: 7.18.3 @@ -58268,10 +64076,10 @@ snapshots: cacache@20.0.4: dependencies: - '@npmcli/fs': 5.0.0 + "@npmcli/fs": 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.5.0 + lru-cache: 11.5.1 minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.7 @@ -58296,7 +64104,7 @@ snapshots: mime-types: 2.1.35 ylru: 1.4.0 - cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: buffer-json: 2.0.0 find-cache-dir: 3.3.2 @@ -58304,9 +64112,7 @@ snapshots: mkdirp: 0.5.6 neo-async: 2.6.2 schema-utils: 2.7.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - cacheable-lookup@5.0.4: {} + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) cacheable-request@6.1.0: dependencies: @@ -58318,20 +64124,10 @@ snapshots: normalize-url: 4.5.1 responselike: 1.0.2 - cacheable-request@7.0.4: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.2.0 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - cacheable@2.3.5: dependencies: - '@cacheable/memory': 2.0.9 - '@cacheable/utils': 2.4.1 + "@cacheable/memory": 2.0.9 + "@cacheable/utils": 2.4.1 hookified: 1.15.1 keyv: 5.6.0 qified: 0.10.1 @@ -58364,8 +64160,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - call-me-maybe@1.0.2: {} - caller-callsite@2.0.0: dependencies: callsites: 2.0.0 @@ -58407,11 +64201,16 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 + caniuse-lite: 1.0.30001799 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001793: {} + caniuse-api@4.0.0: + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001799 + + caniuse-lite@1.0.30001799: {} canvas@3.2.3: dependencies: @@ -58441,7 +64240,7 @@ snapshots: chai-a11y-axe@1.5.0: dependencies: - axe-core: 4.11.4 + axe-core: 4.12.1 chai@4.5.0: dependencies: @@ -58574,7 +64373,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.25.0 + undici: 7.28.0 whatwg-mimetype: 4.0.0 chokidar@2.1.8: @@ -58624,7 +64423,7 @@ snapshots: chrome-launcher@1.2.1: dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.2 @@ -58700,10 +64499,10 @@ snapshots: clean-up-path@1.0.0: {} - clean-webpack-plugin@4.0.0(webpack@5.107.1): + clean-webpack-plugin@4.0.0(webpack@5.107.2): dependencies: del: 4.1.1 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) cli-boxes@2.2.1: {} @@ -58740,7 +64539,7 @@ snapshots: dependencies: string-width: 4.2.3 optionalDependencies: - '@colors/colors': 1.5.0 + "@colors/colors": 1.5.0 cli-table@0.3.11: dependencies: @@ -58837,27 +64636,27 @@ snapshots: clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} + cluster-key-slot@1.1.1: {} cmd-shim@6.0.3: {} cmd-shim@7.0.0: {} - cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.29)(react@19.2.6) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@18.3.29))(@types/react@18.3.29)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@radix-ui/react-compose-refs": 1.1.3(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-dialog": 1.1.16(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + "@radix-ui/react-id": 1.1.2(@types/react@18.3.31)(react@19.2.7) + "@radix-ui/react-primitive": 2.1.5(@types/react-dom@19.2.3(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' + - "@types/react" + - "@types/react-dom" co-body@6.2.0: dependencies: - '@hapi/bourne': 3.0.0 + "@hapi/bourne": 3.0.0 inflation: 2.1.0 qs: 6.15.2 raw-body: 2.5.3 @@ -58867,7 +64666,7 @@ snapshots: coa@2.0.2: dependencies: - '@types/q': 1.5.8 + "@types/q": 1.5.8 chalk: 2.4.2 q: 1.5.1 @@ -58944,7 +64743,7 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comctx@1.6.1: {} + comctx@1.7.5: {} comma-separated-tokens@2.0.3: {} @@ -59001,7 +64800,7 @@ snapshots: comment-parser@1.4.1: {} - comment-parser@1.4.6: {} + comment-parser@1.4.7: {} common-ancestor-path@1.0.1: {} @@ -59042,13 +64841,13 @@ snapshots: dependencies: mime-db: 1.54.0 - compression-webpack-plugin@6.1.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + compression-webpack-plugin@6.1.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 schema-utils: 3.3.0 serialize-javascript: 5.0.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 transitivePeerDependencies: - bluebird @@ -59083,14 +64882,14 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 - concurrently@9.2.1: + concurrently@10.0.3: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 rxjs: 7.8.2 - shell-quote: 1.8.3 - supports-color: 8.1.1 + shell-quote: 1.8.4 + supports-color: 10.2.2 tree-kill: 1.2.2 - yargs: 17.7.2 + yargs: 18.0.0 confbox@0.1.8: {} @@ -59158,9 +64957,9 @@ snapshots: pug: 3.0.4 underscore: 1.13.8 - consolidate@1.0.4(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8): + consolidate@1.0.4(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8): optionalDependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 ejs: 3.1.10 hamljs: 0.6.2 handlebars: 4.7.9 @@ -59168,8 +64967,8 @@ snapshots: mustache: 4.2.0 nunjucks: 3.2.4(chokidar@3.6.0) pug: 3.0.4 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) underscore: 1.13.8 constant-case@3.0.4: @@ -59180,8 +64979,8 @@ snapshots: constantinople@4.0.1: dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 constants-browserify@1.0.0: {} @@ -59191,8 +64990,6 @@ snapshots: content-disposition@1.1.0: {} - content-tag@2.0.3: {} - content-tag@3.1.3: {} content-tag@4.2.0: {} @@ -59238,7 +65035,7 @@ snapshots: handlebars: 4.7.9 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.8.1 + semver: 7.8.4 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -59255,7 +65052,7 @@ snapshots: conventional-commits-parser@6.4.0: dependencies: - '@simple-libs/stream-utils': 1.2.0 + "@simple-libs/stream-utils": 1.2.0 meow: 13.2.0 conventional-recommended-bump@7.0.1: @@ -59297,10 +65094,6 @@ snapshots: depd: 2.0.0 keygrip: 1.1.0 - copy-anything@2.0.6: - dependencies: - is-what: 3.14.1 - copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -59335,18 +65128,9 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) - copy-webpack-plugin@14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - glob-parent: 6.0.2 - normalize-path: 3.0.0 - schema-utils: 4.3.3 - serialize-javascript: 7.0.5 - tinyglobby: 0.2.16 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - copy-webpack-plugin@6.4.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + copy-webpack-plugin@6.4.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cacache: 15.3.0 fast-glob: 3.3.3 @@ -59358,12 +65142,12 @@ snapshots: p-limit: 3.1.0 schema-utils: 3.3.0 serialize-javascript: 5.0.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 transitivePeerDependencies: - bluebird - copy-webpack-plugin@9.1.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + copy-webpack-plugin@9.1.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -59371,7 +65155,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) copyfiles@2.4.1: dependencies: @@ -59408,10 +65192,10 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.1)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3): + cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): dependencies: - '@types/node': 25.9.1 - cosmiconfig: 9.0.1(typescript@6.0.3) + "@types/node": 25.9.3 + cosmiconfig: 9.0.2(typescript@6.0.3) jiti: 2.6.1 typescript: 6.0.3 @@ -59424,7 +65208,7 @@ snapshots: cosmiconfig@6.0.0: dependencies: - '@types/parse-json': 4.0.2 + "@types/parse-json": 4.0.2 import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 @@ -59432,7 +65216,7 @@ snapshots: cosmiconfig@7.1.0: dependencies: - '@types/parse-json': 4.0.2 + "@types/parse-json": 4.0.2 import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 @@ -59441,7 +65225,7 @@ snapshots: cosmiconfig@8.3.6(typescript@6.0.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: @@ -59451,34 +65235,16 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 - cosmiconfig@9.0.1(typescript@5.9.3): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.9.3 - - cosmiconfig@9.0.1(typescript@6.0.2): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - optionalDependencies: - typescript: 6.0.2 - - cosmiconfig@9.0.1(typescript@6.0.3): + cosmiconfig@9.0.2(typescript@6.0.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 optionalDependencies: typescript: 6.0.3 @@ -59527,24 +65293,24 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): + create-jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node create-require@1.1.1: {} - critters-webpack-plugin@2.5.0(html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))): + critters-webpack-plugin@2.5.0(html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))): dependencies: css: 2.2.4 cssnano: 4.1.11 @@ -59556,7 +65322,7 @@ snapshots: webpack-log: 2.0.0 webpack-sources: 1.4.3 optionalDependencies: - html-webpack-plugin: 3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + html-webpack-plugin: 3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -59565,7 +65331,7 @@ snapshots: cross-env@10.1.0: dependencies: - '@epic-web/invariant': 1.0.0 + "@epic-web/invariant": 1.0.0 cross-spawn: 7.0.6 cross-spawn-promise@0.10.2: @@ -59596,7 +65362,7 @@ snapshots: dependencies: uncrypto: 0.1.3 - crossws@0.4.5(srvx@0.11.16): + crossws@0.4.6(srvx@0.11.16): optionalDependencies: srvx: 0.11.16 @@ -59610,7 +65376,7 @@ snapshots: diffie-hellman: 5.0.3 hash-base: 3.0.5 inherits: 2.0.4 - pbkdf2: 3.1.5 + pbkdf2: 3.1.6 public-encrypt: 4.0.3 randombytes: 2.1.0 randomfill: 1.0.4 @@ -59628,7 +65394,7 @@ snapshots: css-blank-pseudo@6.0.2(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 css-color-names@0.0.4: {} @@ -59649,12 +65415,12 @@ snapshots: css-has-pseudo@6.0.5(postcss@8.5.15): dependencies: - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) + "@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.1.4) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 - css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: icss-utils: 5.1.0(postcss@8.5.15) loader-utils: 2.0.4 @@ -59665,10 +65431,10 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 - semver: 7.8.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + semver: 7.8.4 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - css-loader@5.2.7(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-loader@5.2.7(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)): dependencies: icss-utils: 5.1.0(postcss@8.5.15) loader-utils: 2.0.4 @@ -59679,23 +65445,10 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 - semver: 7.8.1 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - css-loader@6.11.0(webpack@5.107.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.15) - postcss: 8.5.15 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) - postcss-modules-scope: 3.2.1(postcss@8.5.15) - postcss-modules-values: 4.0.0(postcss@8.5.15) - postcss-value-parser: 4.2.0 - semver: 7.8.1 - optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + semver: 7.8.4 + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) - css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: icss-utils: 5.1.0(postcss@8.5.15) postcss: 8.5.15 @@ -59704,9 +65457,9 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.15) postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) css-loader@6.11.0(webpack@5.107.2): dependencies: @@ -59717,11 +65470,11 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.15) postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - css-loader@7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: icss-utils: 5.1.0(postcss@8.5.15) postcss: 8.5.15 @@ -59730,11 +65483,11 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.15) postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-loader@7.1.4(webpack@5.107.2): dependencies: icss-utils: 5.1.0(postcss@8.5.15) postcss: 8.5.15 @@ -59743,24 +65496,11 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.15) postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - css-loader@7.1.4(webpack@5.107.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.15) - postcss: 8.5.15 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) - postcss-modules-scope: 3.2.1(postcss@8.5.15) - postcss-modules-values: 4.0.0(postcss@8.5.15) - postcss-value-parser: 4.2.0 - semver: 7.8.1 - optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) - - css-minimizer-webpack-plugin@3.4.1(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + css-minimizer-webpack-plugin@3.4.1(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cssnano: 5.1.15(postcss@8.5.15) jest-worker: 27.5.1 @@ -59768,12 +65508,7 @@ snapshots: schema-utils: 4.3.3 serialize-javascript: 6.0.2 source-map: 0.6.1 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - css-parse@2.0.0: - dependencies: - css: 2.2.4 - optional: true + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) css-prefers-color-scheme@9.0.1(postcss@8.5.15): dependencies: @@ -59812,11 +65547,6 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-selector-tokenizer@0.7.3: - dependencies: - cssesc: 3.0.0 - fastparse: 1.1.2 - css-simple-parser@3.0.2: dependencies: string-indexes: 2.0.1 @@ -59999,38 +65729,38 @@ snapshots: postcss-svgo: 7.1.3(postcss@8.5.15) postcss-unique-selectors: 7.0.7(postcss@8.5.15) - cssnano-preset-default@8.0.1(postcss@8.5.15): + cssnano-preset-default@8.0.2(postcss@8.5.15): dependencies: browserslist: 4.28.2 - cssnano-utils: 6.0.0(postcss@8.5.15) + cssnano-utils: 6.0.1(postcss@8.5.15) postcss: 8.5.15 postcss-calc: 10.1.1(postcss@8.5.15) - postcss-colormin: 8.0.0(postcss@8.5.15) - postcss-convert-values: 8.0.0(postcss@8.5.15) - postcss-discard-comments: 8.0.0(postcss@8.5.15) - postcss-discard-duplicates: 8.0.0(postcss@8.5.15) - postcss-discard-empty: 8.0.0(postcss@8.5.15) - postcss-discard-overridden: 8.0.0(postcss@8.5.15) - postcss-merge-longhand: 8.0.0(postcss@8.5.15) - postcss-merge-rules: 8.0.0(postcss@8.5.15) - postcss-minify-font-values: 8.0.0(postcss@8.5.15) - postcss-minify-gradients: 8.0.0(postcss@8.5.15) - postcss-minify-params: 8.0.0(postcss@8.5.15) - postcss-minify-selectors: 8.0.1(postcss@8.5.15) - postcss-normalize-charset: 8.0.0(postcss@8.5.15) - postcss-normalize-display-values: 8.0.0(postcss@8.5.15) - postcss-normalize-positions: 8.0.0(postcss@8.5.15) - postcss-normalize-repeat-style: 8.0.0(postcss@8.5.15) - postcss-normalize-string: 8.0.0(postcss@8.5.15) - postcss-normalize-timing-functions: 8.0.0(postcss@8.5.15) - postcss-normalize-unicode: 8.0.0(postcss@8.5.15) - postcss-normalize-url: 8.0.0(postcss@8.5.15) - postcss-normalize-whitespace: 8.0.0(postcss@8.5.15) - postcss-ordered-values: 8.0.0(postcss@8.5.15) - postcss-reduce-initial: 8.0.0(postcss@8.5.15) - postcss-reduce-transforms: 8.0.0(postcss@8.5.15) - postcss-svgo: 8.0.0(postcss@8.5.15) - postcss-unique-selectors: 8.0.0(postcss@8.5.15) + postcss-colormin: 8.0.1(postcss@8.5.15) + postcss-convert-values: 8.0.1(postcss@8.5.15) + postcss-discard-comments: 8.0.1(postcss@8.5.15) + postcss-discard-duplicates: 8.0.1(postcss@8.5.15) + postcss-discard-empty: 8.0.1(postcss@8.5.15) + postcss-discard-overridden: 8.0.1(postcss@8.5.15) + postcss-merge-longhand: 8.0.1(postcss@8.5.15) + postcss-merge-rules: 8.0.1(postcss@8.5.15) + postcss-minify-font-values: 8.0.1(postcss@8.5.15) + postcss-minify-gradients: 8.0.1(postcss@8.5.15) + postcss-minify-params: 8.0.1(postcss@8.5.15) + postcss-minify-selectors: 8.0.2(postcss@8.5.15) + postcss-normalize-charset: 8.0.1(postcss@8.5.15) + postcss-normalize-display-values: 8.0.1(postcss@8.5.15) + postcss-normalize-positions: 8.0.1(postcss@8.5.15) + postcss-normalize-repeat-style: 8.0.1(postcss@8.5.15) + postcss-normalize-string: 8.0.1(postcss@8.5.15) + postcss-normalize-timing-functions: 8.0.1(postcss@8.5.15) + postcss-normalize-unicode: 8.0.1(postcss@8.5.15) + postcss-normalize-url: 8.0.1(postcss@8.5.15) + postcss-normalize-whitespace: 8.0.1(postcss@8.5.15) + postcss-ordered-values: 8.0.1(postcss@8.5.15) + postcss-reduce-initial: 8.0.1(postcss@8.5.15) + postcss-reduce-transforms: 8.0.1(postcss@8.5.15) + postcss-svgo: 8.0.1(postcss@8.5.15) + postcss-unique-selectors: 8.0.1(postcss@8.5.15) cssnano-util-get-arguments@4.0.0: {} @@ -60054,7 +65784,7 @@ snapshots: dependencies: postcss: 8.5.15 - cssnano-utils@6.0.0(postcss@8.5.15): + cssnano-utils@6.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -60084,9 +65814,9 @@ snapshots: lilconfig: 3.1.3 postcss: 8.5.15 - cssnano@8.0.1(postcss@8.5.15): + cssnano@8.0.2(postcss@8.5.15): dependencies: - cssnano-preset-default: 8.0.1(postcss@8.5.15) + cssnano-preset-default: 8.0.2(postcss@8.5.15) lilconfig: 3.1.3 postcss: 8.5.15 @@ -60106,7 +65836,7 @@ snapshots: cssstyle@4.6.0: dependencies: - '@asamuzakjp/css-color': 3.2.0 + "@asamuzakjp/css-color": 3.2.0 rrweb-cssom: 0.8.0 csstype@3.2.3: {} @@ -60154,7 +65884,7 @@ snapshots: whatwg-mimetype: 5.0.0 whatwg-url: 16.0.1(@noble/hashes@2.2.0) transitivePeerDependencies: - - '@noble/hashes' + - "@noble/hashes" data-view-buffer@1.0.2: dependencies: @@ -60178,7 +65908,7 @@ snapshots: date-fns@1.30.1: {} - date-fns@4.3.0: {} + date-fns@4.4.0: {} date-format@2.1.0: {} @@ -60255,10 +65985,10 @@ snapshots: decorator-transforms@2.3.2(@babel/core@7.29.0): dependencies: - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@7.29.0) babel-import-util: 3.0.1 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" dedent-js@1.0.1: {} @@ -60282,7 +66012,7 @@ snapshots: deep-is@0.1.4: {} - deepcopy-esm@2.1.1: {} + deepcopy-esm@2.1.2: {} deepcopy@1.0.0: dependencies: @@ -60313,8 +66043,6 @@ snapshots: defer-to-connect@1.1.3: {} - defer-to-connect@2.0.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -60354,19 +66082,9 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - del@2.2.2: - dependencies: - globby: 5.0.0 - is-path-cwd: 1.0.0 - is-path-in-cwd: 1.0.1 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - rimraf: 2.7.1 - del@4.1.1: dependencies: - '@types/glob': 7.2.0 + "@types/glob": 7.2.0 globby: 6.1.0 is-path-cwd: 2.2.0 is-path-in-cwd: 2.1.0 @@ -60436,8 +66154,6 @@ snapshots: detect-indent@5.0.0: {} - detect-indent@6.1.0: {} - detect-indent@7.0.2: {} detect-libc@2.1.2: {} @@ -60454,8 +66170,6 @@ snapshots: dependencies: address: 2.0.3 - dev-ip@1.0.1: {} - devalue@2.0.1: {} devalue@5.8.1: {} @@ -60476,7 +66190,7 @@ snapshots: didyoumean2@4.1.0: dependencies: - '@babel/runtime': 7.29.2 + "@babel/runtime": 7.29.7 leven: 3.1.0 lodash.deburr: 4.1.0 @@ -60486,8 +66200,6 @@ snapshots: diff@4.0.4: {} - diff@5.2.2: {} - diff@7.0.0: {} diff@8.0.4: {} @@ -60508,7 +66220,7 @@ snapshots: dns-packet@5.6.1: dependencies: - '@leichtgewicht/ip-codec': 2.0.5 + "@leichtgewicht/ip-codec": 2.0.5 doctrine@2.1.0: dependencies: @@ -60594,7 +66306,7 @@ snapshots: dot-prop@10.1.0: dependencies: - type-fest: 5.6.0 + type-fest: 5.7.0 dot-prop@5.3.0: dependencies: @@ -60622,9 +66334,9 @@ snapshots: dset@3.1.4: {} - dts-resolver@3.0.0(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)): + dts-resolver@3.0.0(oxc-resolver@11.20.0): optionalDependencies: - oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + oxc-resolver: 11.20.0 dunder-proto@1.0.1: dependencies: @@ -60670,17 +66382,17 @@ snapshots: editorconfig@1.0.7: dependencies: - '@one-ini/wasm': 0.1.1 + "@one-ini/wasm": 0.1.1 commander: 10.0.1 minimatch: 9.0.9 - semver: 7.8.1 + semver: 7.8.4 editorconfig@3.0.2: dependencies: - '@one-ini/wasm': 0.2.1 + "@one-ini/wasm": 0.2.1 commander: 14.0.3 minimatch: 10.2.5 - semver: 7.8.1 + semver: 7.8.4 ee-first@1.1.1: {} @@ -60695,13 +66407,13 @@ snapshots: ejs@5.0.1: {} - electron-to-chromium@1.5.361: {} + electron-to-chromium@1.5.372: {} - electron@41.7.1: + electron@42.4.1: dependencies: - '@electron/get': 2.0.3 - '@types/node': 24.12.4 - extract-zip: 2.0.1 + "@electron-internal/extract-zip": 1.0.3 + "@electron/get": 5.0.0(supports-color@8.1.1) + "@types/node": 24.13.2 transitivePeerDependencies: - supports-color @@ -60723,18 +66435,18 @@ snapshots: email-addresses@5.0.0: {} - ember-auto-import@2.13.1(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@embroider/macros': 1.20.2(@babel/core@7.29.0) - '@embroider/reverse-exports': 0.2.0 - '@embroider/shared-internals': 2.9.2 - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + ember-auto-import@2.13.1(supports-color@8.1.1)(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)): + dependencies: + "@babel/core": 7.29.0 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-proposal-private-methods": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-transform-class-static-block": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@embroider/macros": 1.20.4(@babel/core@7.29.0) + "@embroider/reverse-exports": 0.2.0 + "@embroider/shared-internals": 2.9.2(supports-color@8.1.1) + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-ember-template-compilation: 2.4.1 babel-plugin-htmlbars-inline-precompile: 5.3.1 @@ -60744,26 +66456,26 @@ snapshots: broccoli-merge-trees: 4.2.0 broccoli-plugin: 4.0.7 broccoli-source: 3.0.1 - css-loader: 5.2.7(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - debug: 4.4.3(supports-color@5.5.0) + css-loader: 5.2.7(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) + debug: 4.4.3(supports-color@8.1.1) fs-extra: 10.1.0 fs-tree-diff: 2.0.1 handlebars: 4.7.9 is-subdir: 1.2.0 js-string-escape: 1.0.1 lodash: 4.18.1 - mini-css-extract-plugin: 2.10.2(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + mini-css-extract-plugin: 2.10.2(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) minimatch: 3.1.5 parse5: 6.0.1 - pkg-entry-points: 1.1.1 + pkg-entry-points: 1.1.2 resolve: 1.22.12 resolve-package-path: 4.0.3 - semver: 7.8.1 - style-loader: 2.0.0(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + semver: 7.8.4 + style-loader: 2.0.0(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)) typescript-memoize: 1.1.1 walk-sync: 3.0.0 transitivePeerDependencies: - - '@glint/template' + - "@glint/template" - supports-color - webpack @@ -60771,18 +66483,18 @@ snapshots: ember-cli-babel@7.26.11: dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/polyfill': 7.12.1 - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/runtime': 7.12.18 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-proposal-private-methods": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-private-property-in-object": 7.21.11(@babel/core@7.29.0) + "@babel/plugin-transform-modules-amd": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/polyfill": 7.12.1 + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.12.18 amd-name-resolver: 1.3.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.0) babel-plugin-ember-data-packages-polyfill: 0.1.2 @@ -60806,18 +66518,18 @@ snapshots: ember-cli-babel@8.3.1(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/runtime': 7.12.18 + "@babel/core": 7.29.0 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-class-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-class-static-block": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-modules-amd": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-private-methods": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-private-property-in-object": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.12.18 amd-name-resolver: 1.3.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.0) babel-plugin-ember-data-packages-polyfill: 0.1.2 @@ -60833,34 +66545,34 @@ snapshots: ember-cli-version-checker: 5.1.2 ensure-posix-path: 1.1.1 resolve-package-path: 4.0.3 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.4.0(@babel/core@7.29.0)(ember-cli@6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8))(eslint@10.4.1(jiti@2.7.0)): + ember-cli-dependency-checker@3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)) + "@babel/eslint-parser": 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) chalk: 4.1.2 - ember-cli: 6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8) + ember-cli: 7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8) find-yarn-workspace-root: 2.0.0 is-git-url: 1.0.0 resolve: 1.22.12 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - eslint ember-cli-get-component-path-option@1.0.0: {} - ember-cli-htmlbars@7.0.1(@babel/core@7.29.0)(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)): + ember-cli-htmlbars@7.0.1(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1)): dependencies: - '@babel/core': 7.29.0 - '@ember/edition-utils': 1.2.0 + "@babel/core": 7.29.0 + "@ember/edition-utils": 1.2.0 babel-plugin-ember-template-compilation: 2.4.1 broccoli-debug: 0.6.5 broccoli-persistent-filter: 3.1.3 broccoli-plugin: 4.0.7 - ember-source: 6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5) + ember-source: 7.0.0(@glimmer/component@2.1.1) fs-tree-diff: 2.0.1 heimdalljs-logger: 0.1.10 js-string-escape: 1.0.1 @@ -60884,10 +66596,10 @@ snapshots: ember-cli-path-utils@1.0.0: {} - ember-cli-preprocess-registry@5.0.1: + ember-cli-preprocess-registry@5.0.1(supports-color@8.1.1): dependencies: broccoli-funnel: 3.0.8 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -60899,9 +66611,9 @@ snapshots: ember-cli-string-utils@1.1.0: {} - ember-cli-terser@4.0.2: + ember-cli-terser@4.0.2(supports-color@8.1.1): dependencies: - broccoli-terser-sourcemap: 4.1.1 + broccoli-terser-sourcemap: 4.1.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -60914,9 +66626,9 @@ snapshots: ember-cli-typescript@3.0.0(@babel/core@7.29.0): dependencies: - '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.5.5(@babel/core@7.29.0) ansi-to-html: 0.6.15 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ember-cli-babel-plugin-helpers: 1.1.1 execa: 2.1.0 fs-extra: 8.1.0 @@ -60926,19 +66638,19 @@ snapshots: stagehand: 1.0.1 walk-sync: 2.2.0 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color - ember-cli-typescript@5.3.0: + ember-cli-typescript@5.3.0(supports-color@8.1.1): dependencies: ansi-to-html: 0.6.15 broccoli-stew: 3.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) execa: 4.1.0 fs-extra: 9.1.0 resolve: 1.22.12 rsvp: 4.8.5 - semver: 7.8.1 + semver: 7.8.4 stagehand: 1.0.1 walk-sync: 2.2.0 transitivePeerDependencies: @@ -60960,19 +66672,19 @@ snapshots: ember-cli-version-checker@5.1.2: dependencies: resolve-package-path: 3.1.0 - semver: 7.8.1 + semver: 7.8.4 silent-error: 1.1.1 transitivePeerDependencies: - supports-color - ember-cli@6.12.0(@babel/core@7.29.0)(@types/node@25.9.1)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8): + ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8): dependencies: - '@ember-tooling/blueprint-blueprint': 0.2.1 - '@ember-tooling/blueprint-model': 0.5.0 - '@ember-tooling/classic-build-addon-blueprint': 6.12.0 - '@ember-tooling/classic-build-app-blueprint': 6.12.0 - '@ember/app-blueprint': 6.12.3 - '@pnpm/find-workspace-dir': 1000.1.5 + "@ember-tooling/blueprint-blueprint": 0.3.0 + "@ember-tooling/blueprint-model": 0.6.3 + "@ember-tooling/classic-build-addon-blueprint": 7.0.0 + "@ember-tooling/classic-build-app-blueprint": 7.0.0 + "@ember/app-blueprint": 7.0.1 + "@pnpm/find-workspace-dir": 1000.1.5 babel-remove-types: 1.1.0 broccoli: 4.0.0 broccoli-concat: 4.2.7 @@ -61000,7 +66712,7 @@ snapshots: diff: 8.0.4 ember-cli-is-package-missing: 1.0.0 ember-cli-normalize-entity-name: 1.0.0 - ember-cli-preprocess-registry: 5.0.1 + ember-cli-preprocess-registry: 5.0.1(supports-color@8.1.1) ember-cli-string-utils: 1.1.0 ensure-posix-path: 1.1.1 execa: 9.6.1 @@ -61018,21 +66730,21 @@ snapshots: heimdalljs-fs-monitor: 1.1.2 heimdalljs-graph: 1.0.0 heimdalljs-logger: 0.1.10 - http-proxy: 1.18.1(debug@4.4.3) + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) inflection: 3.0.2 - inquirer: 13.4.3(@types/node@25.9.1) + inquirer: 13.4.3(@types/node@25.9.3) is-git-url: 1.0.0 is-language-code: 5.1.3 lodash: 4.18.1 markdown-it: 14.2.0 markdown-it-terminal: 0.4.0(markdown-it@14.2.0) minimatch: 10.2.5 - morgan: 1.10.1 + morgan: 1.11.0 nopt: 3.0.6 npm-package-arg: 13.0.2 os-locale: 6.0.2 p-defer: 4.0.1 - portfinder: 1.0.38 + portfinder: 1.0.38(supports-color@8.1.1) promise-map-series: 0.3.0 promise.hash.helper: 1.0.8 quick-temp: 0.1.9 @@ -61040,11 +66752,11 @@ snapshots: resolve-package-path: 4.0.3 safe-stable-stringify: 2.5.0 sane: 5.0.1 - semver: 7.8.1 + semver: 7.8.4 silent-error: 1.1.1 - sort-package-json: 3.6.1 + sort-package-json: 3.7.1 symlink-or-copy: 1.3.1 - testem: 3.20.0(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8) + testem: 3.20.1(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8) tiny-lr: 2.0.0 tree-sync: 2.1.0 walk-sync: 4.0.2 @@ -61052,8 +66764,8 @@ snapshots: workerpool: 10.0.2 yam: 1.0.0 transitivePeerDependencies: - - '@babel/core' - - '@types/node' + - "@babel/core" + - "@types/node" - arc-templates - atpl - bracket-template @@ -61112,15 +66824,15 @@ snapshots: fs-extra: 9.1.0 semver: 5.7.2 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color ember-disable-prototype-extensions@1.1.3: {} - ember-eslint-parser@0.12.0(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(typescript@6.0.3): + ember-eslint-parser@0.13.0(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(typescript@6.0.3): dependencies: - '@glimmer/syntax': 0.95.0 - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + "@glimmer/syntax": 0.95.0 + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) content-tag: 4.2.0 ember-estree: 0.6.4 eslint-scope: 9.1.2 @@ -61128,64 +66840,44 @@ snapshots: mathml-tag-names: 4.0.0 svg-tags: 1.0.0 optionalDependencies: - '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@babel/eslint-parser": 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - typescript - ember-eslint-parser@0.5.13(@babel/core@7.29.0)(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@babel/core': 7.29.0 - '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)) - '@glimmer/syntax': 0.95.0 - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - content-tag: 2.0.3 - eslint-scope: 7.2.2 - html-tags: 3.3.1 - mathml-tag-names: 2.1.3 - svg-tags: 1.0.0 - optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - transitivePeerDependencies: - - eslint - - typescript - ember-estree@0.6.4: dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/syntax': 0.95.0 + "@glimmer/env": 0.1.7 + "@glimmer/syntax": 0.95.0 content-tag: 4.2.0 oxc-parser: 0.130.0 - ember-load-initializers@3.0.1(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5)): + ember-load-initializers@3.0.1(ember-source@7.0.0(@glimmer/component@2.1.1)): dependencies: - ember-source: 6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5) + ember-source: 7.0.0(@glimmer/component@2.1.1) ember-modifier@4.3.0(@babel/core@7.29.0): dependencies: - '@embroider/addon-shim': 1.10.2 + "@embroider/addon-shim": 1.10.3 decorator-transforms: 2.3.2(@babel/core@7.29.0) transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color ember-page-title@9.0.3: dependencies: - '@embroider/addon-shim': 1.10.2 - '@simple-dom/document': 1.4.0 + "@embroider/addon-shim": 1.10.3 + "@simple-dom/document": 1.4.0 transitivePeerDependencies: - supports-color - ember-qunit@9.0.4(@babel/core@7.29.0)(@ember/test-helpers@5.4.2(@babel/core@7.29.0))(qunit@2.25.0): + ember-qunit@9.1.0(@ember/test-helpers@5.4.3(@babel/core@7.29.0))(qunit@2.26.0): dependencies: - '@ember/test-helpers': 5.4.2(@babel/core@7.29.0) - '@embroider/addon-shim': 1.10.2 - '@embroider/macros': 1.20.2(@babel/core@7.29.0) - qunit: 2.25.0 + "@ember/test-helpers": 5.4.3(@babel/core@7.29.0) + "@embroider/addon-shim": 1.10.3 + qunit: 2.26.0 qunit-theme-ember: 1.0.0 transitivePeerDependencies: - - '@babel/core' - - '@glint/template' - supports-color ember-resolver@13.2.0: {} @@ -61194,22 +66886,22 @@ snapshots: ember-router-generator@2.0.0: dependencies: - '@babel/parser': 7.29.3 - '@babel/traverse': 7.29.0 + "@babel/parser": 7.29.7 + "@babel/traverse": 7.29.7 recast: 0.18.10 transitivePeerDependencies: - supports-color - ember-sinon-qunit@7.5.0(@babel/core@7.29.0)(ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5))(qunit@2.25.0)(sinon@22.0.0): + ember-sinon-qunit@7.5.0(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1))(qunit@2.26.0)(sinon@22.0.0): dependencies: - '@embroider/addon-shim': 1.10.2 - '@types/sinon': 17.0.4 + "@embroider/addon-shim": 1.10.3 + "@types/sinon": 17.0.4 decorator-transforms: 2.3.2(@babel/core@7.29.0) - ember-source: 6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5) - qunit: 2.25.0 + ember-source: 7.0.0(@glimmer/component@2.1.1) + qunit: 2.26.0 sinon: 22.0.0 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - supports-color ember-source-channel-url@3.0.0(encoding@0.1.13): @@ -61218,40 +66910,33 @@ snapshots: transitivePeerDependencies: - encoding - ember-source@6.12.0(@glimmer/component@2.1.1)(rsvp@4.8.5): + ember-source@7.0.0(@glimmer/component@2.1.1): dependencies: - '@babel/core': 7.29.0 - '@ember/edition-utils': 1.2.0 - '@embroider/addon-shim': 1.10.2 - '@glimmer/component': 2.1.1 - '@simple-dom/interface': 1.4.0 + "@babel/core": 7.29.0 + "@embroider/addon-shim": 1.10.3 + "@glimmer/component": 2.1.1 + "@simple-dom/interface": 1.4.0 backburner.js: 2.8.0 broccoli-file-creator: 2.1.1 - broccoli-funnel: 3.0.8 - broccoli-merge-trees: 4.2.0 chalk: 4.1.2 ember-cli-babel: 8.3.1(@babel/core@7.29.0) ember-cli-get-component-path-option: 1.0.0 - ember-cli-is-package-missing: 1.0.0 ember-cli-normalize-entity-name: 1.0.0 ember-cli-path-utils: 1.0.0 ember-cli-string-utils: 1.1.0 ember-cli-typescript-blueprint-polyfill: 0.1.0 - ember-cli-version-checker: 5.1.2 ember-router-generator: 2.0.0 inflection: 2.0.1 route-recognizer: 0.3.4 - router_js: 8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5) - semver: 7.8.1 + semver: 7.8.4 silent-error: 1.1.1 simple-html-tokenizer: 0.5.11 transitivePeerDependencies: - - rsvp - supports-color ember-template-lint@7.9.3: dependencies: - '@lint-todo/utils': 13.1.1 + "@lint-todo/utils": 13.1.1 content-tag: 3.1.3 ember-test-selectors@7.1.0: @@ -61269,22 +66954,22 @@ snapshots: lodash: 4.18.1 package-json: 6.5.0 remote-git-tags: 3.0.0 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - encoding - ember-try@4.0.0(encoding@0.1.13): + ember-try@4.0.0(encoding@0.1.13)(supports-color@8.1.1): dependencies: chalk: 4.1.2 cli-table3: 0.6.5 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ember-try-config: 4.0.0(encoding@0.1.13) - es-toolkit: 1.46.1 + es-toolkit: 1.47.1 execa: 4.1.0 fs-extra: 6.0.1 resolve: 1.22.12 rimraf: 3.0.2 - semver: 7.8.1 + semver: 7.8.4 temp-dir: 2.0.0 walk-sync: 2.2.0 transitivePeerDependencies: @@ -61295,8 +66980,8 @@ snapshots: emmet@2.4.11: dependencies: - '@emmetio/abbreviation': 2.3.3 - '@emmetio/css-abbreviation': 2.1.8 + "@emmetio/abbreviation": 2.3.3 + "@emmetio/css-abbreviation": 2.1.8 emoji-regex-xs@1.0.0: {} @@ -61374,16 +67059,16 @@ snapshots: - supports-color - utf-8-validate - engine.io@6.6.8: + engine.io@6.6.8(supports-color@8.1.1): dependencies: - '@types/cors': 2.8.19 - '@types/node': 25.9.1 - '@types/ws': 8.18.1 + "@types/cors": 2.8.19 + "@types/node": 25.9.3 + "@types/ws": 8.18.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 cors: 2.8.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) engine.io-parser: 5.2.3 ws: 8.20.1 transitivePeerDependencies: @@ -61397,12 +67082,12 @@ snapshots: memory-fs: 0.5.0 tapable: 1.1.3 - enhanced-resolve@5.22.0: + enhanced-resolve@5.22.1: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 - enhanced-resolve@5.22.1: + enhanced-resolve@5.24.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -61460,7 +67145,7 @@ snapshots: enzyme-shallow-equal@1.0.7: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 object-is: 1.1.6 enzyme@3.11.0: @@ -61468,7 +67153,7 @@ snapshots: array.prototype.flat: 1.3.3 cheerio: 1.2.0 enzyme-shallow-equal: 1.0.7 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 has: 1.0.4 html-element-map: 1.4.0 is-boolean-object: 1.2.2 @@ -61486,7 +67171,7 @@ snapshots: object.values: 1.2.1 raf: 3.4.1 rst-selector-parser: 2.2.3 - string.prototype.trim: 1.2.10 + string.prototype.trim: 1.2.11 equivalent-key-map@0.2.2: {} @@ -61504,6 +67189,10 @@ snapshots: dependencies: prr: 1.0.1 + errno@1.0.0: + dependencies: + prr: 1.0.1 + error-causes@3.0.2: {} error-ex@1.3.4: @@ -61539,7 +67228,7 @@ snapshots: es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 @@ -61548,7 +67237,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -61571,15 +67260,15 @@ snapshots: safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 es-array-method-boxes-properly@1.0.0: {} @@ -61587,44 +67276,44 @@ snapshots: es-dev-server@1.60.2: dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@koa/cors': 3.4.3 - '@open-wc/building-utils': 2.21.1 - '@rollup/plugin-node-resolve': 7.1.3(rollup@2.80.0) - '@rollup/pluginutils': 3.1.0(rollup@2.80.0) - '@types/babel__core': 7.20.5 - '@types/browserslist': 4.15.4 - '@types/browserslist-useragent': 3.0.7 - '@types/caniuse-api': 3.0.6 - '@types/command-line-args': 5.2.3 - '@types/command-line-usage': 5.0.4 - '@types/debounce': 1.2.4 - '@types/koa': 2.15.2 - '@types/koa-compress': 2.0.9 - '@types/koa-etag': 3.0.4 - '@types/koa-static': 4.0.4 - '@types/koa__cors': 3.3.1 - '@types/lru-cache': 5.1.1 - '@types/mime-types': 2.1.4 - '@types/minimatch': 3.0.5 - '@types/path-is-inside': 1.0.3 - '@types/whatwg-url': 6.4.0 + "@babel/core": 7.29.0 + "@babel/plugin-proposal-dynamic-import": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-optional-chaining": 7.21.0(@babel/core@7.29.0) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.29.0) + "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.29.0) + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.29.0) + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-transform-template-literals": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@koa/cors": 3.4.3 + "@open-wc/building-utils": 2.21.1 + "@rollup/plugin-node-resolve": 7.1.3(rollup@2.80.0) + "@rollup/pluginutils": 3.1.0(rollup@2.80.0) + "@types/babel__core": 7.20.5 + "@types/browserslist": 4.15.4 + "@types/browserslist-useragent": 3.0.7 + "@types/caniuse-api": 3.0.6 + "@types/command-line-args": 5.2.3 + "@types/command-line-usage": 5.0.4 + "@types/debounce": 1.2.4 + "@types/koa": 2.15.2 + "@types/koa-compress": 2.0.9 + "@types/koa-etag": 3.0.4 + "@types/koa-static": 4.0.4 + "@types/koa__cors": 3.3.1 + "@types/lru-cache": 5.1.1 + "@types/mime-types": 2.1.4 + "@types/minimatch": 3.0.5 + "@types/path-is-inside": 1.0.3 + "@types/whatwg-url": 6.4.0 browserslist: 4.28.2 browserslist-useragent: 3.1.4 builtin-modules: 3.3.0 camelcase: 5.3.1 caniuse-api: 3.0.0 - caniuse-lite: 1.0.30001793 + caniuse-lite: 1.0.30001799 chokidar: 3.6.0 command-line-args: 5.2.1 command-line-usage: 6.1.3 @@ -61645,7 +67334,7 @@ snapshots: parse5: 5.1.1 path-is-inside: 1.0.2 polyfills-loader: 1.7.6 - portfinder: 1.0.38 + portfinder: 1.0.38(supports-color@8.1.1) rollup: 2.80.0 strip-ansi: 5.2.0 systemjs: 6.15.1 @@ -61657,7 +67346,7 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.3.2: + es-iterator-helpers@1.3.3: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -61699,11 +67388,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -61711,181 +67400,171 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.46.1: {} + es-toolkit@1.47.1: {} es6-error@4.1.1: {} - es6-promise@3.3.1: {} - - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: + esbuild-plugin-solid@0.5.0(esbuild@0.28.1)(solid-js@1.9.13): dependencies: - es6-promise: 4.2.8 - - esbuild-plugin-solid@0.5.0(esbuild@0.21.5)(solid-js@1.9.13): - dependencies: - '@babel/core': 7.29.0 - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.13) - esbuild: 0.21.5 + esbuild: 0.28.1 solid-js: 1.9.13 transitivePeerDependencies: - supports-color - esbuild-plugin-solid@0.6.0(esbuild@0.21.5)(solid-js@1.9.13): + esbuild-plugin-solid@0.6.0(esbuild@0.28.1)(solid-js@1.9.13): dependencies: - '@babel/core': 7.29.0 - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.13) - esbuild: 0.21.5 + esbuild: 0.28.1 solid-js: 1.9.13 transitivePeerDependencies: - supports-color - esbuild-wasm@0.27.3: {} - esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 + "@esbuild/aix-ppc64": 0.21.5 + "@esbuild/android-arm": 0.21.5 + "@esbuild/android-arm64": 0.21.5 + "@esbuild/android-x64": 0.21.5 + "@esbuild/darwin-arm64": 0.21.5 + "@esbuild/darwin-x64": 0.21.5 + "@esbuild/freebsd-arm64": 0.21.5 + "@esbuild/freebsd-x64": 0.21.5 + "@esbuild/linux-arm": 0.21.5 + "@esbuild/linux-arm64": 0.21.5 + "@esbuild/linux-ia32": 0.21.5 + "@esbuild/linux-loong64": 0.21.5 + "@esbuild/linux-mips64el": 0.21.5 + "@esbuild/linux-ppc64": 0.21.5 + "@esbuild/linux-riscv64": 0.21.5 + "@esbuild/linux-s390x": 0.21.5 + "@esbuild/linux-x64": 0.21.5 + "@esbuild/netbsd-x64": 0.21.5 + "@esbuild/openbsd-x64": 0.21.5 + "@esbuild/sunos-x64": 0.21.5 + "@esbuild/win32-arm64": 0.21.5 + "@esbuild/win32-ia32": 0.21.5 + "@esbuild/win32-x64": 0.21.5 esbuild@0.25.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - - esbuild@0.27.3: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + "@esbuild/aix-ppc64": 0.25.12 + "@esbuild/android-arm": 0.25.12 + "@esbuild/android-arm64": 0.25.12 + "@esbuild/android-x64": 0.25.12 + "@esbuild/darwin-arm64": 0.25.12 + "@esbuild/darwin-x64": 0.25.12 + "@esbuild/freebsd-arm64": 0.25.12 + "@esbuild/freebsd-x64": 0.25.12 + "@esbuild/linux-arm": 0.25.12 + "@esbuild/linux-arm64": 0.25.12 + "@esbuild/linux-ia32": 0.25.12 + "@esbuild/linux-loong64": 0.25.12 + "@esbuild/linux-mips64el": 0.25.12 + "@esbuild/linux-ppc64": 0.25.12 + "@esbuild/linux-riscv64": 0.25.12 + "@esbuild/linux-s390x": 0.25.12 + "@esbuild/linux-x64": 0.25.12 + "@esbuild/netbsd-arm64": 0.25.12 + "@esbuild/netbsd-x64": 0.25.12 + "@esbuild/openbsd-arm64": 0.25.12 + "@esbuild/openbsd-x64": 0.25.12 + "@esbuild/openharmony-arm64": 0.25.12 + "@esbuild/sunos-x64": 0.25.12 + "@esbuild/win32-arm64": 0.25.12 + "@esbuild/win32-ia32": 0.25.12 + "@esbuild/win32-x64": 0.25.12 esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 + "@esbuild/aix-ppc64": 0.27.7 + "@esbuild/android-arm": 0.27.7 + "@esbuild/android-arm64": 0.27.7 + "@esbuild/android-x64": 0.27.7 + "@esbuild/darwin-arm64": 0.27.7 + "@esbuild/darwin-x64": 0.27.7 + "@esbuild/freebsd-arm64": 0.27.7 + "@esbuild/freebsd-x64": 0.27.7 + "@esbuild/linux-arm": 0.27.7 + "@esbuild/linux-arm64": 0.27.7 + "@esbuild/linux-ia32": 0.27.7 + "@esbuild/linux-loong64": 0.27.7 + "@esbuild/linux-mips64el": 0.27.7 + "@esbuild/linux-ppc64": 0.27.7 + "@esbuild/linux-riscv64": 0.27.7 + "@esbuild/linux-s390x": 0.27.7 + "@esbuild/linux-x64": 0.27.7 + "@esbuild/netbsd-arm64": 0.27.7 + "@esbuild/netbsd-x64": 0.27.7 + "@esbuild/openbsd-arm64": 0.27.7 + "@esbuild/openbsd-x64": 0.27.7 + "@esbuild/openharmony-arm64": 0.27.7 + "@esbuild/sunos-x64": 0.27.7 + "@esbuild/win32-arm64": 0.27.7 + "@esbuild/win32-ia32": 0.27.7 + "@esbuild/win32-x64": 0.27.7 esbuild@0.28.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.28.0 - '@esbuild/android-arm': 0.28.0 - '@esbuild/android-arm64': 0.28.0 - '@esbuild/android-x64': 0.28.0 - '@esbuild/darwin-arm64': 0.28.0 - '@esbuild/darwin-x64': 0.28.0 - '@esbuild/freebsd-arm64': 0.28.0 - '@esbuild/freebsd-x64': 0.28.0 - '@esbuild/linux-arm': 0.28.0 - '@esbuild/linux-arm64': 0.28.0 - '@esbuild/linux-ia32': 0.28.0 - '@esbuild/linux-loong64': 0.28.0 - '@esbuild/linux-mips64el': 0.28.0 - '@esbuild/linux-ppc64': 0.28.0 - '@esbuild/linux-riscv64': 0.28.0 - '@esbuild/linux-s390x': 0.28.0 - '@esbuild/linux-x64': 0.28.0 - '@esbuild/netbsd-arm64': 0.28.0 - '@esbuild/netbsd-x64': 0.28.0 - '@esbuild/openbsd-arm64': 0.28.0 - '@esbuild/openbsd-x64': 0.28.0 - '@esbuild/openharmony-arm64': 0.28.0 - '@esbuild/sunos-x64': 0.28.0 - '@esbuild/win32-arm64': 0.28.0 - '@esbuild/win32-ia32': 0.28.0 - '@esbuild/win32-x64': 0.28.0 + "@esbuild/aix-ppc64": 0.28.0 + "@esbuild/android-arm": 0.28.0 + "@esbuild/android-arm64": 0.28.0 + "@esbuild/android-x64": 0.28.0 + "@esbuild/darwin-arm64": 0.28.0 + "@esbuild/darwin-x64": 0.28.0 + "@esbuild/freebsd-arm64": 0.28.0 + "@esbuild/freebsd-x64": 0.28.0 + "@esbuild/linux-arm": 0.28.0 + "@esbuild/linux-arm64": 0.28.0 + "@esbuild/linux-ia32": 0.28.0 + "@esbuild/linux-loong64": 0.28.0 + "@esbuild/linux-mips64el": 0.28.0 + "@esbuild/linux-ppc64": 0.28.0 + "@esbuild/linux-riscv64": 0.28.0 + "@esbuild/linux-s390x": 0.28.0 + "@esbuild/linux-x64": 0.28.0 + "@esbuild/netbsd-arm64": 0.28.0 + "@esbuild/netbsd-x64": 0.28.0 + "@esbuild/openbsd-arm64": 0.28.0 + "@esbuild/openbsd-x64": 0.28.0 + "@esbuild/openharmony-arm64": 0.28.0 + "@esbuild/sunos-x64": 0.28.0 + "@esbuild/win32-arm64": 0.28.0 + "@esbuild/win32-ia32": 0.28.0 + "@esbuild/win32-x64": 0.28.0 + + esbuild@0.28.1: + optionalDependencies: + "@esbuild/aix-ppc64": 0.28.1 + "@esbuild/android-arm": 0.28.1 + "@esbuild/android-arm64": 0.28.1 + "@esbuild/android-x64": 0.28.1 + "@esbuild/darwin-arm64": 0.28.1 + "@esbuild/darwin-x64": 0.28.1 + "@esbuild/freebsd-arm64": 0.28.1 + "@esbuild/freebsd-x64": 0.28.1 + "@esbuild/linux-arm": 0.28.1 + "@esbuild/linux-arm64": 0.28.1 + "@esbuild/linux-ia32": 0.28.1 + "@esbuild/linux-loong64": 0.28.1 + "@esbuild/linux-mips64el": 0.28.1 + "@esbuild/linux-ppc64": 0.28.1 + "@esbuild/linux-riscv64": 0.28.1 + "@esbuild/linux-s390x": 0.28.1 + "@esbuild/linux-x64": 0.28.1 + "@esbuild/netbsd-arm64": 0.28.1 + "@esbuild/netbsd-x64": 0.28.1 + "@esbuild/openbsd-arm64": 0.28.1 + "@esbuild/openbsd-x64": 0.28.1 + "@esbuild/openharmony-arm64": 0.28.1 + "@esbuild/sunos-x64": 0.28.1 + "@esbuild/win32-arm64": 0.28.1 + "@esbuild/win32-ia32": 0.28.1 + "@esbuild/win32-x64": 0.28.1 escalade@3.2.0: {} @@ -61920,54 +67599,75 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.4.1(jiti@2.7.0)): + eslint-config-next@16.2.9(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - eslint: 10.4.1(jiti@2.7.0) - semver: 7.8.1 + "@next/eslint-plugin-next": 16.2.9 + eslint: 10.5.0(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react: 7.37.5(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react-hooks: 7.1.1(eslint@10.5.0(jiti@2.7.0)) + globals: 16.4.0 + typescript-eslint: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + optionalDependencies: + typescript: 6.0.3 + transitivePeerDependencies: + - "@typescript-eslint/parser" + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color - eslint-config-next@16.2.6(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): + eslint-config-next@16.2.9(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3): dependencies: - '@next/eslint-plugin-next': 16.2.6 - eslint: 10.4.1(jiti@2.7.0) + "@next/eslint-plugin-next": 16.2.9 + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-react: 7.37.5(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-react-hooks: 7.1.1(eslint@10.4.1(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react: 7.37.5(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react-hooks: 7.1.1(eslint@10.5.0(jiti@2.7.0)) globals: 16.4.0 - typescript-eslint: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - - '@typescript-eslint/parser' + - "@typescript-eslint/parser" - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - eslint-config-preact@1.5.0(eslint@10.4.1(jiti@2.7.0)): + eslint-config-preact@2.0.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@babel/core': 7.29.0 - '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - eslint: 10.4.1(jiti@2.7.0) - eslint-plugin-compat: 4.2.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-react: 7.37.5(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-react-hooks: 4.6.2(eslint@10.4.1(jiti@2.7.0)) + "@babel/core": 7.29.0 + "@babel/eslint-parser": 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.29.0) + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@eslint/js": 9.39.4 + eslint: 10.5.0(jiti@2.7.0) + eslint-plugin-compat: 6.2.1(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react: 7.37.5(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-react-hooks: 5.2.0(eslint@10.5.0(jiti@2.7.0)) + globals: 16.5.0 transitivePeerDependencies: - supports-color - eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@10.4.1(jiti@2.7.0)))(eslint-plugin-promise@6.6.0(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-n: 15.7.0(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-promise: 6.6.0(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + + eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@10.5.0(jiti@2.7.0)))(eslint-plugin-promise@6.6.0(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0)): + dependencies: + eslint: 10.5.0(jiti@2.7.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-n: 15.7.0(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-promise: 6.6.0(eslint@10.5.0(jiti@2.7.0)) eslint-import-context@0.1.9(unrs-resolver@1.12.2): dependencies: @@ -61984,109 +67684,95 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + "@nolyfill/is-core-module": 1.0.39 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + "@nolyfill/is-core-module": 1.0.39 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) get-tsconfig: 4.14.0 is-bun-module: 2.0.0 - stable-hash-x: 0.2.0 - tinyglobby: 0.2.16 + stable-hash: 0.0.5 + tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@10.4.1(jiti@2.7.0)): + eslint-import-resolver-typescript@4.4.5(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1): dependencies: - debug: 3.2.7 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + get-tsconfig: 4.14.0 + is-bun-module: 2.0.0 + stable-hash-x: 0.2.0 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.4.1(jiti@2.7.0) - eslint-import-resolver-node: 0.3.10 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)): + eslint-module-utils@2.13.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.4)(eslint@10.4.1(jiti@2.7.0)): + eslint-module-utils@2.13.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) + eslint-import-resolver-typescript: 4.4.5(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - eslint-plugin-compat@4.2.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-compat@6.2.1(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@mdn/browser-compat-data': 5.7.6 + "@mdn/browser-compat-data": 6.1.5 ast-metadata-inferer: 0.8.1 browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) find-up: 5.0.0 + globals: 15.15.0 lodash.memoize: 4.1.2 - semver: 7.8.1 + semver: 7.8.4 - eslint-plugin-ember@12.7.5(@babel/core@7.29.0)(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): + eslint-plugin-ember@13.3.2(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@ember-data/rfc395-data': 0.0.4 - css-tree: 3.2.1 - ember-eslint-parser: 0.5.13(@babel/core@7.29.0)(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - ember-rfc176-data: 0.3.18 - eslint: 10.4.1(jiti@2.7.0) - eslint-utils: 3.0.0(eslint@10.4.1(jiti@2.7.0)) - estraverse: 5.3.0 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - requireindex: 1.2.0 - snake-case: 3.0.4 - optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - transitivePeerDependencies: - - '@babel/core' - - typescript - - eslint-plugin-ember@13.3.0(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@ember-data/rfc395-data': 0.0.4 + "@ember-data/rfc395-data": 0.0.4 aria-query: 5.3.2 axobject-query: 4.1.0 css-tree: 3.2.1 editorconfig: 3.0.2 - ember-eslint-parser: 0.12.0(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(typescript@6.0.3) + ember-eslint-parser: 0.13.0(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(typescript@6.0.3) ember-rfc176-data: 0.3.18 - eslint: 10.4.1(jiti@2.7.0) - eslint-utils: 3.0.0(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-utils: 3.0.0(eslint@10.5.0(jiti@2.7.0)) estraverse: 5.3.0 html-tags: 3.3.1 language-tags: 1.0.9 @@ -62097,42 +67783,42 @@ snapshots: snake-case: 3.0.4 svg-tags: 1.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - - '@babel/eslint-parser' + - "@babel/eslint-parser" - typescript - eslint-plugin-es@3.0.1(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-es@3.0.1(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-es@4.1.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-es@4.1.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-eslint-comments@3.2.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-eslint-comments@3.2.0(eslint@10.5.0(jiti@2.7.0)): dependencies: escape-string-regexp: 1.0.5 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@rtsao/scc': 1.1.0 + "@rtsao/scc": 1.1.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.4)(eslint@10.4.1(jiti@2.7.0)) - hasown: 2.0.3 + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 @@ -62140,28 +67826,28 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.9 + string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/parser": 6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@rtsao/scc': 1.1.0 + "@rtsao/scc": 1.1.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@10.4.1(jiti@2.7.0)) - hasown: 2.0.3 + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 @@ -62169,28 +67855,28 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.9 + string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@rtsao/scc': 1.1.0 + "@rtsao/scc": 1.1.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) - hasown: 2.0.3 + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) + hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 @@ -62198,94 +67884,94 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.9 + string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)))(typescript@6.0.3): + eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(typescript@6.0.3): dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - jest: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + "@typescript-eslint/eslint-plugin": 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@50.8.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-jsdoc@50.8.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1): dependencies: - '@es-joy/jsdoccomment': 0.50.2 + "@es-joy/jsdoccomment": 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) espree: 10.4.0 esquery: 1.7.0 parse-imports-exports: 0.2.4 - semver: 7.8.1 + semver: 7.8.4 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@62.9.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-jsdoc@63.0.5(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: - '@es-joy/jsdoccomment': 0.86.0 - '@es-joy/resolve.exports': 1.2.0 + "@es-joy/jsdoccomment": 0.87.0 + "@es-joy/resolve.exports": 1.2.0 are-docs-informative: 0.0.2 - comment-parser: 1.4.6 - debug: 4.4.3(supports-color@5.5.0) + comment-parser: 1.4.7 + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 object-deep-merge: 2.0.1 parse-imports-exports: 0.2.4 - semver: 7.8.1 + semver: 7.8.4 spdx-expression-parse: 4.0.0 to-valid-identifier: 1.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@63.0.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-jsdoc@63.0.5(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@es-joy/jsdoccomment': 0.86.0 - '@es-joy/resolve.exports': 1.2.0 + "@es-joy/jsdoccomment": 0.87.0 + "@es-joy/resolve.exports": 1.2.0 are-docs-informative: 0.0.2 - comment-parser: 1.4.6 - debug: 4.4.3(supports-color@5.5.0) + comment-parser: 1.4.7 + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 object-deep-merge: 2.0.1 parse-imports-exports: 0.2.4 - semver: 7.8.1 + semver: 7.8.4 spdx-expression-parse: 4.0.0 to-valid-identifier: 1.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.5.0(jiti@2.7.0)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.4 + axe-core: 4.12.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.4.1(jiti@2.7.0) - hasown: 2.0.3 + eslint: 10.5.0(jiti@2.7.0) + hasown: 2.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.5 @@ -62293,127 +67979,127 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-n@15.7.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-n@15.7.0(eslint@10.5.0(jiti@2.7.0)): dependencies: builtins: 5.1.0 - eslint: 10.4.1(jiti@2.7.0) - eslint-plugin-es: 4.1.0(eslint@10.4.1(jiti@2.7.0)) - eslint-utils: 3.0.0(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-plugin-es: 4.1.0(eslint@10.5.0(jiti@2.7.0)) + eslint-utils: 3.0.0(eslint@10.5.0(jiti@2.7.0)) ignore: 5.3.2 is-core-module: 2.16.2 minimatch: 3.1.5 resolve: 1.22.12 - semver: 7.8.1 + semver: 7.8.4 eslint-plugin-no-only-tests@3.4.0: {} - eslint-plugin-node@11.1.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-node@11.1.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) - eslint-plugin-es: 3.0.1(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-plugin-es: 3.0.1(eslint@10.5.0(jiti@2.7.0)) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.5 resolve: 1.22.12 semver: 6.3.1 - eslint-plugin-nuxt@4.0.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-nuxt@4.0.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint-plugin-vue: 9.33.0(eslint@10.4.1(jiti@2.7.0)) - semver: 7.8.1 - vue-eslint-parser: 9.4.3(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-vue: 9.33.0(eslint@10.5.0(jiti@2.7.0)) + semver: 7.8.4 + vue-eslint-parser: 9.4.3(eslint@10.5.0(jiti@2.7.0)) transitivePeerDependencies: - eslint - supports-color - eslint-plugin-playwright@2.10.4(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-playwright@2.10.4(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) globals: 17.6.0 - eslint-plugin-prefer-arrow@1.2.3(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-prefer-arrow@1.2.3(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3): + eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)))(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.8.4): dependencies: - eslint: 10.4.1(jiti@2.7.0) - prettier: 3.8.3 + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + prettier: 3.8.4 prettier-linter-helpers: 1.0.1 - synckit: 0.11.12 + synckit: 0.11.13 optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + "@types/eslint": 9.6.1 + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) - eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3): + eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4): dependencies: - eslint: 10.4.1(jiti@2.7.0) - prettier: 3.8.3 + eslint: 10.5.0(jiti@2.7.0) + prettier: 3.8.4 prettier-linter-helpers: 1.0.1 synckit: 0.11.13 optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + "@types/eslint": 9.6.1 + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(wp-prettier@3.0.3): + eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(wp-prettier@3.0.3): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) prettier: wp-prettier@3.0.3 prettier-linter-helpers: 1.0.1 synckit: 0.11.13 optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) + "@types/eslint": 9.6.1 + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-promise@6.6.0(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-promise@6.6.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - eslint-plugin-qunit@8.2.6(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-qunit@8.2.6(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) requireindex: 1.2.0 - eslint-plugin-qwik@1.20.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2): + eslint-plugin-qwik@1.20.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.2) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) jsx-ast-utils: 3.3.5 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-react-hooks@4.6.2(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-react-hooks@5.2.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - eslint-plugin-react-hooks@7.1.1(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-react-hooks@7.1.1(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.3 - eslint: 10.4.1(jiti@2.7.0) + "@babel/core": 7.29.0 + "@babel/parser": 7.29.7 + eslint: 10.5.0(jiti@2.7.0) hermes-parser: 0.25.1 zod: 4.4.3 zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color - eslint-plugin-react-refresh@0.5.2(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-react-refresh@0.5.3(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) - eslint-plugin-react@7.37.5(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-react@7.37.5(eslint@10.5.0(jiti@2.7.0)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.3.2 - eslint: 10.4.1(jiti@2.7.0) + es-iterator-helpers: 1.3.3 + eslint: 10.5.0(jiti@2.7.0) estraverse: 5.3.0 - hasown: 2.0.3 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.9 @@ -62425,60 +68111,51 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-svelte@2.46.1(eslint@10.4.1(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 10.4.1(jiti@2.7.0) - eslint-compat-utils: 0.5.1(eslint@10.4.1(jiti@2.7.0)) - esutils: 2.0.3 - known-css-properties: 0.35.0 - postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)) - postcss-safe-parser: 6.0.0(postcss@8.5.15) - postcss-selector-parser: 6.1.2 - semver: 7.8.1 - svelte-eslint-parser: 0.43.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) - optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - transitivePeerDependencies: - - ts-node - - eslint-plugin-svelte@3.17.1(eslint@10.4.1(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): + eslint-plugin-svelte@3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@jridgewell/sourcemap-codec": 1.5.5 + eslint: 10.5.0(jiti@2.7.0) esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) postcss-safe-parser: 7.0.1(postcss@8.5.15) - semver: 7.8.1 - svelte-eslint-parser: 1.6.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + semver: 7.8.4 + svelte-eslint-parser: 1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.1)) optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) transitivePeerDependencies: - ts-node - eslint-plugin-tsdoc@0.5.2(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): + eslint-plugin-tsdoc@0.5.2(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): dependencies: - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.1 - '@typescript-eslint/utils': 8.56.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + "@microsoft/tsdoc": 0.16.0 + "@microsoft/tsdoc-config": 0.18.1 + "@typescript-eslint/utils": 8.56.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-unicorn@44.0.2(eslint@10.4.1(jiti@2.7.0)): + eslint-plugin-tsdoc@0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@babel/helper-validator-identifier': 7.28.5 + "@microsoft/tsdoc": 0.16.0 + "@microsoft/tsdoc-config": 0.18.1 + "@typescript-eslint/utils": 8.56.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + eslint-plugin-unicorn@44.0.2(eslint@10.5.0(jiti@2.7.0)): + dependencies: + "@babel/helper-validator-identifier": 7.29.7 ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 10.4.1(jiti@2.7.0) - eslint-utils: 3.0.0(eslint@10.4.1(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) + eslint-utils: 3.0.0(eslint@10.5.0(jiti@2.7.0)) esquery: 1.7.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -62487,47 +68164,33 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.8.1 + semver: 7.8.4 strip-indent: 3.0.0 - eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))): + eslint-plugin-vue@10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 7.1.1 - semver: 7.8.1 - vue-eslint-parser: 10.4.0(eslint@10.4.1(jiti@2.7.0)) + postcss-selector-parser: 7.1.4 + semver: 7.8.4 + vue-eslint-parser: 10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + "@stylistic/eslint-plugin": 5.10.0(eslint@10.5.0(jiti@2.7.0)) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.1(jiti@2.7.0)))(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0))): + eslint-plugin-vue@9.33.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - eslint: 10.4.1(jiti@2.7.0) - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 7.1.1 - semver: 7.8.1 - vue-eslint-parser: 10.4.0(eslint@10.4.1(jiti@2.7.0)) - xml-name-validator: 4.0.0 - optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.4.1(jiti@2.7.0)) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - - eslint-plugin-vue@9.33.0(eslint@10.4.1(jiti@2.7.0)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - eslint: 10.4.1(jiti@2.7.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + eslint: 10.5.0(jiti@2.7.0) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 - semver: 7.8.1 - vue-eslint-parser: 9.4.3(eslint@10.4.1(jiti@2.7.0)) + postcss-selector-parser: 6.1.4 + semver: 7.8.4 + vue-eslint-parser: 9.4.3(eslint@10.5.0(jiti@2.7.0)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -62554,8 +68217,8 @@ snapshots: eslint-scope@9.1.2: dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.9 + "@types/esrecurse": 4.3.1 + "@types/estree": 1.0.9 esrecurse: 4.3.0 estraverse: 5.3.0 @@ -62563,9 +68226,9 @@ snapshots: dependencies: eslint-visitor-keys: 1.3.0 - eslint-utils@3.0.0(eslint@10.4.1(jiti@2.7.0)): + eslint-utils@3.0.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-visitor-keys: 2.1.0 eslint-visitor-keys@1.3.0: {} @@ -62578,31 +68241,68 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint-webpack-plugin@4.2.0(eslint@10.4.1(jiti@2.7.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + eslint-webpack-plugin@4.2.0(eslint@10.5.0(jiti@2.7.0))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@types/eslint': 8.56.12 - eslint: 10.4.1(jiti@2.7.0) + "@types/eslint": 8.56.12 + eslint: 10.5.0(jiti@2.7.0) jest-worker: 29.7.0 micromatch: 4.0.8 normalize-path: 3.0.0 schema-utils: 4.3.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - eslint@10.4.1(jiti@2.7.0): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.6.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + + eslint@10.5.0(jiti@2.7.0): + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)) + "@eslint-community/regexpp": 4.12.2 + "@eslint/config-array": 0.23.5(supports-color@8.1.1) + "@eslint/config-helpers": 0.6.0 + "@eslint/core": 1.2.1 + "@eslint/plugin-kit": 0.7.2 + "@humanfs/node": 0.16.8 + "@humanwhocodes/module-importer": 1.0.1 + "@humanwhocodes/retry": 0.4.3 + "@types/estree": 1.0.9 ajv: 6.15.0 cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + + eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1): + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) + "@eslint-community/regexpp": 4.12.2 + "@eslint/config-array": 0.23.5(supports-color@8.1.1) + "@eslint/config-helpers": 0.6.0 + "@eslint/core": 1.2.1 + "@eslint/plugin-kit": 0.7.2 + "@humanfs/node": 0.16.8 + "@humanwhocodes/module-importer": 1.0.1 + "@humanwhocodes/retry": 0.4.3 + "@types/estree": 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 @@ -62627,24 +68327,28 @@ snapshots: esm-env@1.2.2: {} + esm-import-transformer@3.0.5: + dependencies: + acorn: 8.17.0 + esm@3.2.25: {} espree@10.4.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 4.2.1 espree@11.2.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 5.0.1 espree@9.6.1: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 3.4.3 esprima@3.0.0: {} @@ -62655,11 +68359,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.9(@typescript-eslint/types@8.60.0): + esrap@2.2.11(@typescript-eslint/types@8.61.1): dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + "@jridgewell/sourcemap-codec": 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.60.0 + "@typescript-eslint/types": 8.61.1 esrecurse@4.3.0: dependencies: @@ -62677,12 +68381,14 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.9 + "@types/estree": 1.0.9 esutils@2.0.3: {} etag@1.8.1: {} + evaluate-value@2.0.0: {} + event-pubsub@4.3.0: {} event-target-shim@5.0.1: {} @@ -62695,19 +68401,19 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.8.3 + bare-events: 2.9.1 transitivePeerDependencies: - bare-abort-controller events@3.3.0: {} - eventsource-parser@3.0.8: {} + eventsource-parser@3.1.0: {} eventsource-polyfill@0.9.6: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.8 + eventsource-parser: 3.1.0 evp_bytestokey@1.0.3: dependencies: @@ -62788,7 +68494,7 @@ snapshots: execa@9.6.1: dependencies: - '@sindresorhus/merge-streams': 4.0.0 + "@sindresorhus/merge-streams": 4.0.0 cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 @@ -62833,7 +68539,7 @@ snapshots: expect@29.7.0: dependencies: - '@jest/expect-utils': 29.7.0 + "@jest/expect-utils": 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 @@ -62841,8 +68547,8 @@ snapshots: expect@30.4.1: dependencies: - '@jest/expect-utils': 30.4.1 - '@jest/get-type': 30.1.0 + "@jest/expect-utils": 30.4.1 + "@jest/get-type": 30.1.0 jest-matcher-utils: 30.4.1 jest-message-util: 30.4.1 jest-mock: 30.4.1 @@ -62850,10 +68556,6 @@ snapshots: exponential-backoff@3.1.3: {} - express-rate-limit@7.5.1(express@4.22.2): - dependencies: - express: 4.22.2 - express-rate-limit@8.5.2(express@5.2.1): dependencies: express: 5.2.1 @@ -62898,12 +68600,12 @@ snapshots: express@5.2.1: dependencies: accepts: 2.0.0 - body-parser: 2.2.2 + body-parser: 2.3.0 content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -62949,7 +68651,7 @@ snapshots: externality@1.0.2: dependencies: - enhanced-resolve: 5.22.1 + enhanced-resolve: 5.24.0 mlly: 1.8.2 pathe: 1.1.2 ufo: 1.6.4 @@ -62967,23 +68669,23 @@ snapshots: transitivePeerDependencies: - supports-color - extract-css-chunks-webpack-plugin@4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + extract-css-chunks-webpack-plugin@4.10.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 normalize-url: 1.9.1 schema-utils: 1.0.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 extract-stack@2.0.0: {} - extract-zip@2.0.1: + extract-zip@2.0.1(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.10.3 + "@types/yauzl": 2.10.3 transitivePeerDependencies: - supports-color @@ -62995,29 +68697,18 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@2.2.7: - dependencies: - '@mrmlnc/readdir-enhanced': 2.2.1 - '@nodelib/fs.stat': 1.1.3 - glob-parent: 3.1.0 - is-glob: 4.0.3 - merge2: 1.4.1 - micromatch: 3.1.10 - transitivePeerDependencies: - - supports-color - fast-glob@3.3.1: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 fast-glob@3.3.3: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 @@ -63062,15 +68753,13 @@ snapshots: fastest-levenshtein@1.0.16: {} - fastparse@1.1.2: {} - fastq@1.20.1: dependencies: reusify: 1.1.0 faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 fb-watchman@2.0.2: dependencies: @@ -63115,17 +68804,17 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) file-loader@6.2.0(webpack@5.107.2): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) optional: true file-uri-to-path@1.0.0: {} @@ -63150,10 +68839,12 @@ snapshots: dependencies: filename-reserved-regex: 3.0.0 - filenamify@7.0.1: + filenamify@7.0.2: dependencies: filename-reserved-regex: 4.0.0 + filesize@10.1.6: {} + filesize@11.0.17: {} filesize@6.4.0: {} @@ -63195,7 +68886,7 @@ snapshots: finalhandler@2.1.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -63315,7 +69006,7 @@ snapshots: dependencies: magic-string: 0.30.21 mlly: 1.8.2 - rollup: 4.60.4 + rollup: 4.62.0 fixturify-project@1.10.0: dependencies: @@ -63324,9 +69015,9 @@ snapshots: fixturify@1.3.0: dependencies: - '@types/fs-extra': 5.1.0 - '@types/minimatch': 3.0.5 - '@types/rimraf': 2.0.5 + "@types/fs-extra": 5.1.0 + "@types/minimatch": 3.0.5 + "@types/rimraf": 2.0.5 fs-extra: 7.0.1 matcher-collection: 2.0.1 @@ -63357,7 +69048,7 @@ snapshots: flora-colossus@3.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -63372,9 +69063,9 @@ snapshots: dependencies: tabbable: 6.4.0 - follow-redirects@1.16.0(debug@4.4.3): + follow-redirects@1.16.0(debug@4.4.3(supports-color@8.1.1)): optionalDependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fontace@0.4.1: dependencies: @@ -63412,85 +69103,64 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - '@babel/code-frame': 7.29.0 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.5 - schema-utils: 2.7.0 - semver: 7.8.1 - tapable: 1.1.3 - typescript: 5.9.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) - vue-template-compiler: 2.7.16 - - fork-ts-checker-webpack-plugin@6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + fork-ts-checker-webpack-plugin@6.5.3(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@babel/code-frame': 7.29.0 - '@types/json-schema': 7.0.15 + "@babel/code-frame": 7.29.7 + "@types/json-schema": 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 6.0.0 deepmerge: 4.3.1 fs-extra: 9.1.0 glob: 7.2.3 - memfs: 3.5.3 + memfs: 3.6.0 minimatch: 3.1.5 schema-utils: 2.7.0 - semver: 7.8.1 + semver: 7.8.4 tapable: 1.1.3 - typescript: 5.9.3 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + typescript: 6.0.3 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) vue-template-compiler: 2.7.16 - fork-ts-checker-webpack-plugin@6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + fork-ts-checker-webpack-plugin@6.5.3(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)): dependencies: - '@babel/code-frame': 7.29.0 - '@types/json-schema': 7.0.15 + "@babel/code-frame": 7.29.7 + "@types/json-schema": 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 6.0.0 deepmerge: 4.3.1 fs-extra: 9.1.0 glob: 7.2.3 - memfs: 3.5.3 + memfs: 3.6.0 minimatch: 3.1.5 schema-utils: 2.7.0 - semver: 7.8.1 + semver: 7.8.4 tapable: 1.1.3 typescript: 6.0.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) vue-template-compiler: 2.7.16 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.9.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + fork-ts-checker-webpack-plugin@9.1.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 7.1.0 + chokidar: 4.0.3 + cosmiconfig: 8.3.6(typescript@6.0.3) deepmerge: 4.3.1 fs-extra: 10.1.0 - memfs: 3.5.3 + memfs: 3.6.0 minimatch: 3.1.5 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.8.1 + semver: 7.8.4 tapable: 2.3.3 - typescript: 5.9.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + typescript: 6.0.3 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) form-data@2.3.3: dependencies: @@ -63503,7 +69173,15 @@ snapshots: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.3 + hasown: 2.0.4 + mime-types: 2.1.35 + + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 mime-types: 2.1.35 forwarded-parse@2.1.2: {} @@ -63516,15 +69194,15 @@ snapshots: dependencies: map-cache: 0.2.2 - framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: motion-dom: 11.18.1 motion-utils: 11.18.1 tslib: 2.8.1 optionalDependencies: - '@emotion/is-prop-valid': 1.4.0 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + "@emotion/is-prop-valid": 1.4.0 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) fresh@0.5.2: {} @@ -63630,7 +69308,7 @@ snapshots: fs-mkdirp-stream@2.0.1: dependencies: graceful-fs: 4.2.11 - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -63648,7 +69326,7 @@ snapshots: fs-tree-diff@2.0.1: dependencies: - '@types/symlink-or-copy': 1.2.2 + "@types/symlink-or-copy": 1.2.2 heimdalljs-logger: 0.1.10 object-assign: 4.1.1 path-posix: 1.0.0 @@ -63689,24 +69367,27 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + function.prototype.name@1.2.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 - define-properties: 1.2.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 functions-have-names: 1.2.3 - hasown: 2.0.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 is-callable: 1.2.7 + is-document.all: 1.0.0 functions-have-names@1.2.3: {} - fuse.js@7.3.0: {} + fuse.js@7.4.2: {} fzf@0.5.2: {} galactus@2.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) flora-colossus: 3.0.2 transitivePeerDependencies: - supports-color @@ -63724,10 +69405,6 @@ snapshots: generator-function@2.0.1: {} - generic-names@1.0.3: - dependencies: - loader-utils: 0.2.17 - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -63746,7 +69423,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} @@ -63757,7 +69434,7 @@ snapshots: get-pkg-repo@4.2.1: dependencies: - '@hutson/parse-repository-url': 3.0.2 + "@hutson/parse-repository-url": 3.0.2 hosted-git-info: 4.1.0 through2: 2.0.5 yargs: 16.2.0 @@ -63768,8 +69445,6 @@ snapshots: get-port-please@3.2.0: {} - get-port@3.2.0: {} - get-port@5.1.1: {} get-proto@1.0.1: @@ -63795,7 +69470,7 @@ snapshots: get-stream@9.0.1: dependencies: - '@sec-ant/readable-stream': 0.4.1 + "@sec-ant/readable-stream": 0.4.1 is-stream: 4.0.1 get-symbol-description@1.1.0: @@ -63820,7 +69495,7 @@ snapshots: dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -63845,7 +69520,7 @@ snapshots: fs-extra: 11.3.5 globby: 11.1.0 - giget@3.2.0: {} + giget@3.3.0: {} git-config-path@2.0.0: {} @@ -63861,7 +69536,7 @@ snapshots: git-raw-commits@5.0.1(conventional-commits-parser@6.4.0): dependencies: - '@conventional-changelog/git-client': 2.7.0(conventional-commits-parser@6.4.0) + "@conventional-changelog/git-client": 2.7.0(conventional-commits-parser@6.4.0) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -63877,7 +69552,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.8.1 + semver: 7.8.4 git-up@7.0.0: dependencies: @@ -63911,6 +69586,7 @@ snapshots: dependencies: is-glob: 3.1.0 path-dirname: 1.0.2 + optional: true glob-parent@5.1.2: dependencies: @@ -63922,14 +69598,14 @@ snapshots: glob-stream@8.0.3: dependencies: - '@gulpjs/to-absolute-glob': 4.0.0 + "@gulpjs/to-absolute-glob": 4.0.0 anymatch: 3.1.3 fastq: 1.20.1 glob-parent: 6.0.2 is-glob: 4.0.3 is-negated-glob: 1.0.0 normalize-path: 3.0.0 - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -63938,8 +69614,6 @@ snapshots: dependencies: tslib: 2.8.1 - glob-to-regexp@0.3.0: {} - glob-to-regexp@0.4.1: {} glob-watcher@6.0.0: @@ -64016,16 +69690,6 @@ snapshots: minipass: 4.2.8 path-scurry: 1.11.1 - global-agent@3.0.0: - dependencies: - boolean: 3.2.0 - es6-error: 4.1.1 - matcher: 3.0.0 - roarr: 2.15.4 - semver: 7.8.1 - serialize-error: 7.0.1 - optional: true - global-directory@4.0.1: dependencies: ini: 4.1.1 @@ -64078,6 +69742,8 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@15.15.0: {} + globals@16.4.0: {} globals@16.5.0: {} @@ -64113,7 +69779,7 @@ snapshots: globby@14.1.0: dependencies: - '@sindresorhus/merge-streams': 2.3.0 + "@sindresorhus/merge-streams": 2.3.0 fast-glob: 3.3.3 ignore: 7.0.5 path-type: 6.0.0 @@ -64122,22 +69788,13 @@ snapshots: globby@16.2.0: dependencies: - '@sindresorhus/merge-streams': 4.0.0 + "@sindresorhus/merge-streams": 4.0.0 fast-glob: 3.3.3 ignore: 7.0.5 is-path-inside: 4.0.0 slash: 5.1.0 unicorn-magic: 0.4.0 - globby@5.0.0: - dependencies: - array-union: 1.0.2 - arrify: 1.0.1 - glob: 7.2.3 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - globby@6.1.0: dependencies: array-union: 1.0.2 @@ -64156,26 +69813,12 @@ snapshots: gopd@1.2.0: {} - got@11.8.6: - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - got@9.6.0: dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 + "@sindresorhus/is": 0.14.0 + "@szmarczak/http-timer": 1.1.2 + "@types/keyv": 3.1.4 + "@types/responselike": 1.0.3 cacheable-request: 6.1.0 decompress-response: 3.3.0 duplexer3: 0.1.5 @@ -64207,7 +69850,7 @@ snapshots: gulp-cli@3.1.0: dependencies: - '@gulpjs/messages': 1.1.0 + "@gulpjs/messages": 1.1.0 chalk: 4.1.2 copy-props: 4.0.0 gulplog: 2.2.0 @@ -64254,7 +69897,8 @@ snapshots: ufo: 1.6.4 uncrypto: 0.1.3 - hamljs@0.6.2: {} + hamljs@0.6.2: + optional: true handle-thing@2.0.1: {} @@ -64276,7 +69920,7 @@ snapshots: hard-rejection@2.1.0: {} - hard-source-webpack-plugin@0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + hard-source-webpack-plugin@0.13.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 2.4.2 find-cache-dir: 2.1.0 @@ -64289,7 +69933,7 @@ snapshots: rimraf: 2.7.1 semver: 5.7.2 tapable: 1.1.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 write-json-file: 2.3.0 @@ -64311,8 +69955,6 @@ snapshots: has-cors@1.1.0: {} - has-flag@1.0.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -64401,13 +70043,13 @@ snapshots: dependencies: function-bind: 1.1.2 - hasown@2.0.3: + hasown@2.0.4: dependencies: function-bind: 1.1.2 hast-util-from-html@2.0.3: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 devlop: 1.1.0 hast-util-from-parse5: 8.0.3 parse5: 7.3.0 @@ -64416,28 +70058,28 @@ snapshots: hast-util-from-parse5@8.0.3: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.1.0 + property-information: 7.2.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-is-element@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw@9.1.0: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.1 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + "@ungap/structured-clone": 1.3.1 hast-util-from-parse5: 8.0.3 hast-util-to-parse5: 8.0.1 html-void-elements: 3.0.0 @@ -64451,45 +70093,45 @@ snapshots: hast-util-to-html@9.0.5: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 hast-util-to-parse5@8.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 hast-util-to-text@4.0.2: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hastscript@9.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 he@1.2.0: {} @@ -64550,7 +70192,7 @@ snapshots: dependencies: parse-passwd: 1.0.0 - hono@4.12.22: {} + hono@4.12.25: {} hookable@4.4.1: {} @@ -64578,7 +70220,7 @@ snapshots: hosted-git-info@9.0.3: dependencies: - lru-cache: 11.5.0 + lru-cache: 11.5.1 hpack.js@2.1.6: dependencies: @@ -64608,9 +70250,9 @@ snapshots: html-encoding-sniffer@6.0.0(@noble/hashes@2.2.0): dependencies: - '@exodus/bytes': 1.15.1(@noble/hashes@2.2.0) + "@exodus/bytes": 1.15.1(@noble/hashes@2.2.0) transitivePeerDependencies: - - '@noble/hashes' + - "@noble/hashes" html-entities@2.3.3: {} @@ -64620,15 +70262,15 @@ snapshots: html-escaper@3.0.3: {} - html-minifier-next@6.2.7(@swc/core@1.15.40): + html-minifier-next@6.2.11(@swc/core@1.15.41): dependencies: - commander: 14.0.3 + commander: 15.0.0 entities: 8.0.0 lightningcss: 1.32.0 svgo: 4.0.1 terser: 5.48.0 optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 html-minifier-terser@5.1.1: dependencies: @@ -64680,7 +70322,7 @@ snapshots: html-webpack-exclude-assets-plugin@0.0.7: {} - html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: html-minifier: 3.5.21 loader-utils: 0.2.17 @@ -64689,62 +70331,40 @@ snapshots: tapable: 1.1.3 toposort: 1.0.7 util.promisify: 1.0.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - html-webpack-plugin@4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + html-webpack-plugin@4.5.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@types/html-minifier-terser': 5.1.2 - '@types/tapable': 1.0.12 - '@types/webpack': 4.41.40 + "@types/html-minifier-terser": 5.1.2 + "@types/tapable": 1.0.12 + "@types/webpack": 4.41.40 html-minifier-terser: 5.1.1 loader-utils: 1.4.2 lodash: 4.18.1 pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - html-webpack-plugin@5.6.7(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.18.1 - pretty-error: 4.0.0 - tapable: 2.3.3 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optional: true + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - html-webpack-plugin@5.6.7(webpack@5.107.1): + html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@types/html-minifier-terser': 6.1.0 + "@types/html-minifier-terser": 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.18.1 pretty-error: 4.0.0 tapable: 2.3.3 optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + html-webpack-plugin@5.6.7(webpack@5.107.2): dependencies: - '@types/html-minifier-terser': 6.1.0 + "@types/html-minifier-terser": 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.18.1 pretty-error: 4.0.0 tapable: 2.3.3 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.18.1 - pretty-error: 4.0.0 - tapable: 2.3.3 - optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optional: true + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) htmlparser2@10.1.0: dependencies: @@ -64776,7 +70396,7 @@ snapshots: http-deceiver@1.2.7: {} - http-equiv-refresh@1.0.0: {} + http-equiv-refresh@2.0.1: {} http-errors@1.6.3: dependencies: @@ -64807,46 +70427,35 @@ snapshots: http-proxy-agent@5.0.0: dependencies: - '@tootallnate/once': 2.0.1 + "@tootallnate/once": 2.0.1 agent-base: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3): + http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)): dependencies: - '@types/http-proxy': 1.17.17 - http-proxy: 1.18.1(debug@4.4.3) + "@types/http-proxy": 1.17.17 + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.8 optionalDependencies: - '@types/express': 4.17.25 + "@types/express": 4.17.25 transitivePeerDependencies: - debug - http-proxy-middleware@3.0.5: - dependencies: - '@types/http-proxy': 1.17.17 - debug: 4.4.3(supports-color@5.5.0) - http-proxy: 1.18.1(debug@4.4.3) - is-glob: 4.0.3 - is-plain-object: 5.0.0 - micromatch: 4.0.8 - transitivePeerDependencies: - - supports-color - - http-proxy@1.18.1(debug@4.4.3): + http-proxy@1.18.1(debug@4.4.3(supports-color@8.1.1)): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.16.0(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -64859,31 +70468,26 @@ snapshots: jsprim: 1.4.2 sshpk: 1.18.0 - http2-wrapper@1.0.3: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - https-browserify@1.0.0: {} - https-proxy-agent@2.2.4: - dependencies: - agent-base: 4.3.0 - debug: 3.2.7 - transitivePeerDependencies: - - supports-color - https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + https-proxy-agent@9.0.0(supports-color@8.1.1): + dependencies: + agent-base: 9.0.0 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -64917,8 +70521,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-replace-symbols@1.1.0: {} - icss-utils@5.1.0(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -64960,9 +70562,7 @@ snapshots: image-ssim@0.2.0: {} - immediate@3.0.6: {} - - immutable@5.1.5: {} + immutable@5.1.6: {} import-fresh@2.0.0: dependencies: @@ -64976,8 +70576,8 @@ snapshots: import-in-the-middle@1.15.0: dependencies: - acorn: 8.16.0 - acorn-import-attributes: 1.9.5(acorn@8.16.0) + acorn: 8.17.0 + acorn-import-attributes: 1.9.5(acorn@8.17.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -64999,7 +70599,7 @@ snapshots: impound@1.1.5: dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 es-module-lexer: 2.1.0 pathe: 2.0.3 unplugin: 3.0.0 @@ -65058,11 +70658,11 @@ snapshots: init-package-json@8.2.2: dependencies: - '@npmcli/package-json': 7.0.2 - npm-package-arg: 13.0.1 + "@npmcli/package-json": 7.0.2 + npm-package-arg: 13.0.2 promzard: 2.0.0 read: 4.1.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-license: 3.0.4 validate-npm-package-name: 6.0.2 @@ -65076,29 +70676,29 @@ snapshots: inquirer: 6.5.2 rxjs: 6.6.7 - inquirer@12.9.6(@types/node@25.9.1): + inquirer@12.9.6(@types/node@25.9.3): dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.1) - '@inquirer/prompts': 7.10.1(@types/node@25.9.1) - '@inquirer/type': 3.0.10(@types/node@25.9.1) + "@inquirer/ansi": 1.0.2 + "@inquirer/core": 10.3.2(@types/node@25.9.3) + "@inquirer/prompts": 7.10.1(@types/node@25.9.3) + "@inquirer/type": 3.0.10(@types/node@25.9.3) mute-stream: 2.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 - inquirer@13.4.3(@types/node@25.9.1): + inquirer@13.4.3(@types/node@25.9.3): dependencies: - '@inquirer/ansi': 2.0.5 - '@inquirer/core': 11.1.10(@types/node@25.9.1) - '@inquirer/prompts': 8.4.3(@types/node@25.9.1) - '@inquirer/type': 4.0.5(@types/node@25.9.1) + "@inquirer/ansi": 2.0.7 + "@inquirer/core": 11.2.1(@types/node@25.9.3) + "@inquirer/prompts": 8.5.2(@types/node@25.9.3) + "@inquirer/type": 4.0.7(@types/node@25.9.3) mute-stream: 3.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 inquirer@6.5.2: dependencies: @@ -65142,8 +70742,8 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.3 - side-channel: 1.1.0 + hasown: 2.0.4 + side-channel: 1.1.1 interpret@3.1.1: {} @@ -65151,9 +70751,9 @@ snapshots: intl-messageformat@10.7.18: dependencies: - '@formatjs/ecma402-abstract': 2.3.6 - '@formatjs/fast-memoize': 2.2.7 - '@formatjs/icu-messageformat-parser': 2.11.4 + "@formatjs/ecma402-abstract": 2.3.6 + "@formatjs/fast-memoize": 2.2.7 + "@formatjs/icu-messageformat-parser": 2.11.4 tslib: 2.8.1 invariant@2.2.4: @@ -65164,16 +70764,14 @@ snapshots: ionicons@8.0.13: dependencies: - '@stencil/core': 4.43.4 + "@stencil/core": 4.43.5 - ioredis@5.10.1: + ioredis@5.11.1: dependencies: - '@ioredis/commands': 1.5.1 - cluster-key-slot: 1.1.2 - debug: 4.4.3(supports-color@5.5.0) + "@ioredis/commands": 1.10.0 + cluster-key-slot: 1.1.1 + debug: 4.4.3(supports-color@8.1.1) denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 redis-errors: 1.2.0 redis-parser: 3.0.0 standard-as-callback: 2.1.0 @@ -65205,15 +70803,22 @@ snapshots: is-accessor-descriptor@1.0.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-alphabetical@1.0.4: {} + is-alphabetical@2.0.1: {} + is-alphanumerical@1.0.4: dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.9 @@ -65260,7 +70865,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 is-callable@1.2.7: {} @@ -65283,11 +70888,11 @@ snapshots: is-core-module@2.16.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-descriptor@1.0.1: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -65302,6 +70907,8 @@ snapshots: is-decimal@1.0.4: {} + is-decimal@2.0.1: {} + is-descriptor@0.1.8: dependencies: is-accessor-descriptor: 1.0.2 @@ -65320,6 +70927,10 @@ snapshots: is-docker@4.0.0: {} + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + is-expression@4.0.0: dependencies: acorn: 7.4.1 @@ -65368,6 +70979,7 @@ snapshots: is-glob@3.1.0: dependencies: is-extglob: 2.1.1 + optional: true is-glob@4.0.3: dependencies: @@ -65442,24 +71054,14 @@ snapshots: dependencies: symbol-observable: 1.2.0 - is-path-cwd@1.0.0: {} - is-path-cwd@2.2.0: {} is-path-cwd@3.0.0: {} - is-path-in-cwd@1.0.1: - dependencies: - is-path-inside: 1.0.1 - is-path-in-cwd@2.1.0: dependencies: is-path-inside: 2.1.0 - is-path-inside@1.0.1: - dependencies: - path-is-inside: 1.0.2 - is-path-inside@2.1.0: dependencies: path-is-inside: 1.0.2 @@ -65490,18 +71092,18 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.9 + "@types/estree": 1.0.9 is-reference@3.0.3: dependencies: - '@types/estree': 1.0.9 + "@types/estree": 1.0.9 is-regex@1.2.1: dependencies: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 is-regexp@1.0.0: {} @@ -65558,7 +71160,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 is-typedarray@1.0.0: {} @@ -65589,8 +71191,6 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-what@3.14.1: {} - is-what@4.1.16: {} is-what@5.5.0: {} @@ -65639,7 +71239,7 @@ snapshots: isexe@4.0.0: {} - iso-639-1@2.1.15: {} + iso-639-1@3.1.5: {} isobject@2.1.0: dependencies: @@ -65668,30 +71268,21 @@ snapshots: istanbul-lib-instrument@3.3.0: dependencies: - '@babel/generator': 7.29.1 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + "@babel/generator": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 istanbul-lib-coverage: 2.0.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - istanbul-lib-instrument@4.0.3: - dependencies: - '@babel/core': 7.29.0 - '@istanbuljs/schema': 0.1.6 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.3 - '@istanbuljs/schema': 0.1.6 + "@babel/core": 7.29.0 + "@babel/parser": 7.29.7 + "@istanbuljs/schema": 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -65699,31 +71290,21 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.3 - '@istanbuljs/schema': 0.1.6 + "@babel/core": 7.29.0 + "@babel/parser": 7.29.7 + "@istanbuljs/schema": 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - istanbul-lib-processinfo@2.0.3: - dependencies: - archy: 1.0.0 - cross-spawn: 7.0.6 - istanbul-lib-coverage: 3.2.2 - p-map: 3.0.0 - rimraf: 3.0.2 - uuid: 8.3.2 - - istanbul-lib-processinfo@3.0.0: + istanbul-lib-processinfo@3.0.1: dependencies: archy: 1.0.0 cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 6.1.3 - uuid: 8.3.2 istanbul-lib-report@3.0.1: dependencies: @@ -65731,9 +71312,9 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@3.0.6: + istanbul-lib-source-maps@3.0.6(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 2.0.5 make-dir: 2.1.0 rimraf: 2.7.1 @@ -65741,9 +71322,9 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@4.0.1(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -65777,13 +71358,13 @@ snapshots: jackspeak@3.4.3: dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 jackspeak@4.2.3: dependencies: - '@isaacs/cliui': 9.0.0 + "@isaacs/cliui": 9.0.0 jake@10.9.4: dependencies: @@ -65791,24 +71372,14 @@ snapshots: filelist: 1.0.6 picocolors: 1.1.1 - jasmine-core@2.8.0: {} - jasmine-core@4.6.1: {} - jasmine-core@6.2.0: {} + jasmine-core@6.3.0: {} jasmine-spec-reporter@7.0.0: dependencies: colors: 1.4.0 - jasmine@2.8.0: - dependencies: - exit: 0.1.2 - glob: 7.2.3 - jasmine-core: 2.8.0 - - jasminewd2@2.2.0: {} - javascript-natural-sort@0.7.1: {} javascript-stringify@2.1.0: {} @@ -65821,11 +71392,11 @@ snapshots: jest-circus@29.7.0(babel-plugin-macros@3.1.0): dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.2(babel-plugin-macros@3.1.0) @@ -65845,32 +71416,30 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): + jest-cli@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + "@jest/core": 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + create-jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 - optionalDependencies: - node-notifier: 10.0.1 transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node - jest-config@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): + jest-config@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: - '@babel/core': 7.29.0 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 + "@babel/core": 7.29.0 + "@jest/test-sequencer": 29.7.0 + "@jest/types": 29.6.3 babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 @@ -65891,8 +71460,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.9.1 - ts-node: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + "@types/node": 25.9.3 + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -65919,8 +71488,8 @@ snapshots: jest-diff@30.4.1: dependencies: - '@jest/diff-sequences': 30.4.0 - '@jest/get-type': 30.1.0 + "@jest/diff-sequences": 30.4.0 + "@jest/get-type": 30.1.0 chalk: 4.1.2 pretty-format: 30.4.1 @@ -65930,7 +71499,7 @@ snapshots: jest-each@29.7.0: dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 @@ -65938,8 +71507,8 @@ snapshots: jest-environment-jsdom@30.4.1(canvas@3.2.3): dependencies: - '@jest/environment': 30.4.1 - '@jest/environment-jsdom-abstract': 30.4.1(canvas@3.2.3)(jsdom@26.1.0(canvas@3.2.3)) + "@jest/environment": 30.4.1 + "@jest/environment-jsdom-abstract": 30.4.1(canvas@3.2.3)(jsdom@26.1.0(canvas@3.2.3)) jsdom: 26.1.0(canvas@3.2.3) optionalDependencies: canvas: 3.2.3 @@ -65950,10 +71519,10 @@ snapshots: jest-environment-node@29.7.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -65961,9 +71530,9 @@ snapshots: jest-haste-map@29.7.0: dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 25.9.1 + "@jest/types": 29.6.3 + "@types/graceful-fs": 4.1.9 + "@types/node": 25.9.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -65989,16 +71558,16 @@ snapshots: jest-matcher-utils@30.4.1: dependencies: - '@jest/get-type': 30.1.0 + "@jest/get-type": 30.1.0 chalk: 4.1.2 jest-diff: 30.4.1 pretty-format: 30.4.1 jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.29.0 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 + "@babel/code-frame": 7.29.7 + "@jest/types": 29.6.3 + "@types/stack-utils": 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 @@ -66008,9 +71577,9 @@ snapshots: jest-message-util@30.4.1: dependencies: - '@babel/code-frame': 7.29.0 - '@jest/types': 30.4.1 - '@types/stack-utils': 2.0.3 + "@babel/code-frame": 7.29.7 + "@jest/types": 30.4.1 + "@types/stack-utils": 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 jest-util: 30.4.1 @@ -66021,14 +71590,14 @@ snapshots: jest-mock@29.7.0: dependencies: - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 jest-util: 29.7.0 jest-mock@30.4.1: dependencies: - '@jest/types': 30.4.1 - '@types/node': 25.9.1 + "@jest/types": 30.4.1 + "@types/node": 25.9.3 jest-util: 30.4.1 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -66060,12 +71629,12 @@ snapshots: jest-runner@29.7.0: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/console": 29.7.0 + "@jest/environment": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -66086,14 +71655,14 @@ snapshots: jest-runtime@29.7.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/globals": 29.7.0 + "@jest/source-map": 29.6.3 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.3 @@ -66113,14 +71682,14 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + "@babel/core": 7.29.0 + "@babel/generator": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 + "@jest/expect-utils": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) chalk: 4.1.2 expect: 29.7.0 @@ -66132,14 +71701,14 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -66147,8 +71716,8 @@ snapshots: jest-util@30.4.1: dependencies: - '@jest/types': 30.4.1 - '@types/node': 25.9.1 + "@jest/types": 30.4.1 + "@types/node": 25.9.3 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -66156,7 +71725,7 @@ snapshots: jest-validate@29.7.0: dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.6.3 @@ -66165,9 +71734,9 @@ snapshots: jest-watcher@29.7.0: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 25.9.1 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 25.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -66176,33 +71745,31 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): + jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) - '@jest/types': 29.6.3 + "@jest/core": 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + "@jest/types": 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@25.9.1)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)) - optionalDependencies: - node-notifier: 10.0.1 + jest-cli: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node @@ -66217,23 +71784,23 @@ snapshots: jmespath@0.16.0: {} - joi@17.13.3: + joi@17.13.4: dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 + "@hapi/hoek": 9.3.0 + "@hapi/topo": 5.1.0 + "@sideway/address": 4.1.5 + "@sideway/formula": 3.0.1 + "@sideway/pinpoint": 2.0.0 joi@18.2.1: dependencies: - '@hapi/address': 5.1.1 - '@hapi/formula': 3.0.2 - '@hapi/hoek': 11.0.7 - '@hapi/pinpoint': 2.0.1 - '@hapi/tlds': 1.1.6 - '@hapi/topo': 6.0.2 - '@standard-schema/spec': 1.1.0 + "@hapi/address": 5.1.1 + "@hapi/formula": 3.0.2 + "@hapi/hoek": 11.0.7 + "@hapi/pinpoint": 2.0.1 + "@hapi/tlds": 1.1.7 + "@hapi/topo": 6.0.2 + "@standard-schema/spec": 1.1.0 jose@6.2.3: {} @@ -66241,21 +71808,17 @@ snapshots: jpeg-js@0.4.4: {} - jquery@3.7.1: {} - jquery@4.0.0: {} - js-base64@2.6.4: {} - js-beautify@1.15.4: dependencies: config-chain: 1.1.13 editorconfig: 1.0.7 glob: 10.5.0 - js-cookie: 3.0.7 + js-cookie: 3.0.8 nopt: 7.2.1 - js-cookie@3.0.7: {} + js-cookie@3.0.8: {} js-library-detector@6.7.0: {} @@ -66287,16 +71850,16 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@4.2.0: + dependencies: + argparse: 2.0.1 + jsbn@0.1.1: {} jsdoc-type-pratt-parser@4.1.0: {} jsdoc-type-pratt-parser@7.2.0: {} - jsdom-global@3.0.2(jsdom@24.1.3): - dependencies: - jsdom: 24.1.3 - jsdom-global@3.0.2(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3)): dependencies: jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) @@ -66313,7 +71876,7 @@ snapshots: domexception: 1.0.1 escodegen: 1.14.3 html-encoding-sniffer: 1.0.2 - nwsapi: 2.2.23 + nwsapi: 2.2.24 parse5: 5.1.0 pn: 1.1.0 request: 2.88.2 @@ -66332,34 +71895,6 @@ snapshots: - bufferutil - utf-8-validate - jsdom@24.1.3: - dependencies: - cssstyle: 4.6.0 - data-urls: 5.0.0 - decimal.js: 10.6.0 - form-data: 4.0.5 - html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 - parse5: 7.3.0 - rrweb-cssom: 0.7.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.21.0 - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - jsdom@26.1.0(canvas@3.2.3): dependencies: cssstyle: 4.6.0 @@ -66369,7 +71904,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 + nwsapi: 2.2.24 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -66391,22 +71926,22 @@ snapshots: jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3): dependencies: - '@asamuzakjp/css-color': 5.1.11 - '@asamuzakjp/dom-selector': 7.1.1 - '@bramus/specificity': 2.4.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.4(css-tree@3.2.1) - '@exodus/bytes': 1.15.1(@noble/hashes@2.2.0) + "@asamuzakjp/css-color": 5.1.11 + "@asamuzakjp/dom-selector": 7.1.1 + "@bramus/specificity": 2.4.2 + "@csstools/css-syntax-patches-for-csstree": 1.1.5(css-tree@3.2.1) + "@exodus/bytes": 1.15.1(@noble/hashes@2.2.0) css-tree: 3.2.1 data-urls: 7.0.0(@noble/hashes@2.2.0) decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0(@noble/hashes@2.2.0) is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.0 + lru-cache: 11.5.1 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.25.0 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -66415,7 +71950,7 @@ snapshots: optionalDependencies: canvas: 3.2.3 transitivePeerDependencies: - - '@noble/hashes' + - "@noble/hashes" jsesc@0.5.0: {} @@ -66459,8 +71994,6 @@ snapshots: json-stringify-safe@5.0.1: {} - json2php@0.0.7: {} - json2php@0.0.9: {} json5@0.5.1: {} @@ -66531,14 +72064,7 @@ snapshots: object.assign: 4.1.7 object.values: 1.2.1 - jszip@3.10.1: - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - setimmediate: 1.0.5 - - junk@1.0.3: {} + junk@3.1.0: {} junk@4.0.1: {} @@ -66549,43 +72075,43 @@ snapshots: karma-chai@0.1.0(chai@4.5.0)(karma@6.4.4): dependencies: chai: 4.5.0 - karma: 6.4.4 + karma: 6.4.4(supports-color@8.1.1) karma-chrome-launcher@3.2.0: dependencies: which: 1.3.1 - karma-coverage-istanbul-reporter@3.0.3: + karma-coverage-istanbul-reporter@3.0.3(supports-color@8.1.1): dependencies: istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 3.0.6 + istanbul-lib-source-maps: 3.0.6(supports-color@8.1.1) istanbul-reports: 3.2.0 minimatch: 3.1.5 transitivePeerDependencies: - supports-color - karma-coverage@2.2.1: + karma-coverage@2.2.1(supports-color@8.1.1): dependencies: istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1) istanbul-reports: 3.2.0 minimatch: 3.1.5 transitivePeerDependencies: - supports-color - karma-jasmine-html-reporter@2.2.0(jasmine-core@6.2.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4): + karma-jasmine-html-reporter@2.2.0(jasmine-core@6.3.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4): dependencies: - jasmine-core: 6.2.0 - karma: 6.4.4 + jasmine-core: 6.3.0 + karma: 6.4.4(supports-color@8.1.1) karma-jasmine: 5.1.0(karma@6.4.4) karma-jasmine@5.1.0(karma@6.4.4): dependencies: jasmine-core: 4.6.1 - karma: 6.4.4 + karma: 6.4.4(supports-color@8.1.1) karma-mocha-reporter@2.2.5(karma@5.2.3): dependencies: @@ -66625,10 +72151,10 @@ snapshots: dom-serialize: 2.2.1 glob: 7.2.3 graceful-fs: 4.2.11 - http-proxy: 1.18.1(debug@4.4.3) + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) isbinaryfile: 4.0.10 lodash: 4.18.1 - log4js: 6.9.1 + log4js: 6.9.1(supports-color@8.1.1) mime: 2.6.0 minimatch: 3.1.5 qjobs: 1.2.0 @@ -66645,9 +72171,9 @@ snapshots: - supports-color - utf-8-validate - karma@6.4.4: + karma@6.4.4(supports-color@8.1.1): dependencies: - '@colors/colors': 1.5.0 + "@colors/colors": 1.5.0 body-parser: 1.20.5 braces: 3.0.3 chokidar: 3.6.0 @@ -66656,19 +72182,19 @@ snapshots: dom-serialize: 2.2.1 glob: 7.2.3 graceful-fs: 4.2.11 - http-proxy: 1.18.1(debug@4.4.3) + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) isbinaryfile: 4.0.10 lodash: 4.18.1 - log4js: 6.9.1 + log4js: 6.9.1(supports-color@8.1.1) mime: 2.6.0 minimatch: 3.1.5 mkdirp: 0.5.6 qjobs: 1.2.0 range-parser: 1.2.1 rimraf: 3.0.2 - socket.io: 4.8.3 + socket.io: 4.8.3(supports-color@8.1.1) source-map: 0.6.1 - tmp: 0.2.5 + tmp: 0.2.7 ua-parser-js: 0.7.41 yargs: 16.2.0 transitivePeerDependencies: @@ -66691,7 +72217,7 @@ snapshots: keyv@5.6.0: dependencies: - '@keyv/serialize': 1.1.1 + "@keyv/serialize": 1.1.1 kind-of@2.0.1: dependencies: @@ -66717,8 +72243,6 @@ snapshots: knitwork@1.3.0: {} - known-css-properties@0.35.0: {} - known-css-properties@0.37.0: {} koa-compose@4.1.0: {} @@ -66748,7 +72272,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -66768,7 +72292,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -66816,11 +72340,11 @@ snapshots: dependencies: package-json: 10.0.1 - launch-editor-middleware@2.13.2: + launch-editor-middleware@2.14.1: dependencies: - launch-editor: 2.13.2 + launch-editor: 2.14.1 - launch-editor@2.13.2: + launch-editor@2.14.1: dependencies: picocolors: 1.1.1 shell-quote: 1.8.4 @@ -66841,14 +72365,14 @@ snapshots: legacy-javascript@0.0.1: {} - lerna@9.0.7(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)(@types/node@25.9.1)(babel-plugin-macros@3.1.0): + lerna@9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@25.9.3)(babel-plugin-macros@3.1.0): dependencies: - '@npmcli/arborist': 9.1.6 - '@npmcli/package-json': 7.0.2 - '@npmcli/run-script': 10.0.3 - '@nx/devkit': 22.7.4(nx@22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40)) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 20.1.2 + "@npmcli/arborist": 9.1.6 + "@npmcli/package-json": 7.0.2 + "@npmcli/run-script": 10.0.3 + "@nx/devkit": 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41)) + "@octokit/plugin-enterprise-rest": 6.0.1 + "@octokit/rest": 20.1.2 aproba: 2.0.0 byte-size: 8.1.1 chalk: 4.1.0 @@ -66872,7 +72396,7 @@ snapshots: import-local: 3.1.0 ini: 1.3.8 init-package-json: 8.2.2 - inquirer: 12.9.6(@types/node@25.9.1) + inquirer: 12.9.6(@types/node@25.9.3) is-ci: 3.0.1 jest-diff: 30.4.1 js-yaml: 4.1.1 @@ -66884,7 +72408,7 @@ snapshots: npm-package-arg: 13.0.1 npm-packlist: 10.0.3 npm-registry-fetch: 19.1.0 - nx: 22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40) + nx: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -66910,48 +72434,14 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - '@types/node' + - "@swc-node/register" + - "@swc/core" + - "@types/node" - babel-plugin-macros - debug - supports-color - less-loader@12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - less: 4.4.2 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - less@3.13.1: - dependencies: - copy-anything: 2.0.6 - tslib: 1.14.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - native-request: 1.1.2 - source-map: 0.6.1 - optional: true - - less@4.4.2: - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.8.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.5.0 - source-map: 0.6.1 - - less@4.6.4: + less@4.6.6: dependencies: copy-anything: 3.0.5 parse-node-version: 1.0.1 @@ -66959,7 +72449,7 @@ snapshots: errno: 0.1.8 graceful-fs: 4.2.11 image-size: 0.5.5 - make-dir: 2.1.0 + make-dir: 5.1.0 mime: 1.6.0 needle: 3.5.0 source-map: 0.6.1 @@ -66978,34 +72468,24 @@ snapshots: libnpmaccess@10.0.3: dependencies: - npm-package-arg: 13.0.1 + npm-package-arg: 13.0.2 npm-registry-fetch: 19.1.0 transitivePeerDependencies: - supports-color libnpmpublish@11.1.2: dependencies: - '@npmcli/package-json': 7.0.2 - ci-info: 4.3.1 - npm-package-arg: 13.0.1 + "@npmcli/package-json": 7.0.2 + ci-info: 4.4.0 + npm-package-arg: 13.0.2 npm-registry-fetch: 19.1.0 proc-log: 5.0.0 - semver: 7.8.1 + semver: 7.8.4 sigstore: 4.1.1 ssri: 12.0.0 transitivePeerDependencies: - supports-color - license-webpack-plugin@4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - webpack-sources: 3.5.0 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - lie@3.3.0: - dependencies: - immediate: 3.0.6 - liftoff@5.0.1: dependencies: extend: 3.0.2 @@ -67018,18 +72498,18 @@ snapshots: lighthouse-logger@2.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) marky: 1.3.0 transitivePeerDependencies: - supports-color lighthouse-stack-packs@1.12.2: {} - lighthouse@12.8.2: + lighthouse@12.8.2(supports-color@8.1.1): dependencies: - '@paulirish/trace_engine': 0.0.59 - '@sentry/node': 9.47.1 - axe-core: 4.11.4 + "@paulirish/trace_engine": 0.0.59 + "@sentry/node": 9.47.1(supports-color@8.1.1) + axe-core: 4.12.1 chrome-launcher: 1.2.1 configstore: 7.1.0 csp_evaluator: 1.1.5 @@ -67046,11 +72526,11 @@ snapshots: metaviewport-parser: 0.3.0 open: 8.4.2 parse-cache-control: 1.0.1 - puppeteer-core: 24.43.1 + puppeteer-core: 24.43.1(supports-color@8.1.1) robots-parser: 3.0.1 speedline-core: 1.4.3 third-party-web: 0.27.0 - tldts-icann: 7.1.2 + tldts-icann: 7.4.3 ws: 7.5.11 yargs: 17.7.2 yargs-parser: 21.1.1 @@ -67132,21 +72612,17 @@ snapshots: dependencies: uc.micro: 1.0.6 - linkify-it@4.0.1: - dependencies: - uc.micro: 1.0.6 - linkify-it@5.0.1: dependencies: uc.micro: 2.1.0 - lint-staged@16.4.0: + lint-staged@17.0.7: dependencies: - commander: 14.0.3 - listr2: 9.0.5 + listr2: 10.2.1 picomatch: 4.0.4 string-argv: 0.3.2 - tinyexec: 1.2.2 + tinyexec: 1.2.4 + optionalDependencies: yaml: 2.9.0 liquidjs@10.27.0: @@ -67157,11 +72633,11 @@ snapshots: listhen@1.10.0(srvx@0.11.16): dependencies: - '@parcel/watcher': 2.5.6 - '@parcel/watcher-wasm': 2.5.6 + "@parcel/watcher": 2.5.6 + "@parcel/watcher-wasm": 2.5.6 citty: 0.2.2 consola: 3.4.2 - crossws: 0.4.5(srvx@0.11.16) + crossws: 0.4.6(srvx@0.11.16) defu: 6.1.7 get-port-please: 3.2.0 h3: 1.15.11 @@ -67171,7 +72647,7 @@ snapshots: node-forge: 1.4.0 pathe: 2.0.3 std-env: 4.1.0 - tinyclip: 0.1.12 + tinyclip: 0.1.14 ufo: 1.6.4 untun: 0.1.3 uqr: 0.1.3 @@ -67206,18 +72682,17 @@ snapshots: date-fns: 1.30.1 figures: 2.0.0 - listr2@9.0.5: + listr2@10.2.1: dependencies: cli-truncate: 5.2.0 - colorette: 2.0.20 eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.2 + wrap-ansi: 10.0.0 listr@0.14.3: dependencies: - '@samverschueren/stream-to-observable': 0.3.1(rxjs@6.6.7) + "@samverschueren/stream-to-observable": 0.3.1(rxjs@6.6.7) is-observable: 1.1.0 is-promise: 2.2.2 is-stream: 1.1.0 @@ -67230,32 +72705,31 @@ snapshots: - zen-observable - zenObservable - lit-analyzer@1.2.1: + lit-analyzer@2.0.3: dependencies: + "@vscode/web-custom-data": 0.4.13 chalk: 2.4.2 didyoumean2: 4.1.0 - fast-glob: 2.2.7 + fast-glob: 3.3.3 parse5: 5.1.0 - ts-simple-type: 1.0.7 + ts-simple-type: 2.0.0-next.0 vscode-css-languageservice: 4.3.0 vscode-html-languageservice: 3.1.0 - web-component-analyzer: 1.1.7 - transitivePeerDependencies: - - supports-color + web-component-analyzer: 2.0.0 lit-element@4.2.2: dependencies: - '@lit-labs/ssr-dom-shim': 1.6.0 - '@lit/reactive-element': 2.1.2 + "@lit-labs/ssr-dom-shim": 1.6.0 + "@lit/reactive-element": 2.1.2 lit-html: 3.3.3 lit-html@3.3.3: dependencies: - '@types/trusted-types': 2.0.7 + "@types/trusted-types": 2.0.7 lit@3.3.3: dependencies: - '@lit/reactive-element': 2.1.2 + "@lit/reactive-element": 2.1.2 lit-element: 4.2.2 lit-html: 3.3.3 @@ -67283,22 +72757,22 @@ snapshots: - bufferutil - utf-8-validate - lmdb@3.5.1: + lmdb@3.5.4: dependencies: - '@harperfast/extended-iterable': 1.0.3 - msgpackr: 1.11.12 + "@harperfast/extended-iterable": 1.0.3 + msgpackr: 1.12.1 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.1 weak-lru-cache: 1.2.2 optionalDependencies: - '@lmdb/lmdb-darwin-arm64': 3.5.1 - '@lmdb/lmdb-darwin-x64': 3.5.1 - '@lmdb/lmdb-linux-arm': 3.5.1 - '@lmdb/lmdb-linux-arm64': 3.5.1 - '@lmdb/lmdb-linux-x64': 3.5.1 - '@lmdb/lmdb-win32-arm64': 3.5.1 - '@lmdb/lmdb-win32-x64': 3.5.1 + "@lmdb/lmdb-darwin-arm64": 3.5.4 + "@lmdb/lmdb-darwin-x64": 3.5.4 + "@lmdb/lmdb-linux-arm": 3.5.4 + "@lmdb/lmdb-linux-arm64": 3.5.4 + "@lmdb/lmdb-linux-x64": 3.5.4 + "@lmdb/lmdb-win32-arm64": 3.5.4 + "@lmdb/lmdb-win32-x64": 3.5.4 optional: true load-json-file@4.0.0: @@ -67340,7 +72814,8 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - loader-utils@3.3.1: {} + loader-utils@3.3.1: + optional: true loader.js@4.7.0: {} @@ -67348,11 +72823,6 @@ snapshots: local-pkg@0.4.3: {} - local-pkg@0.5.1: - dependencies: - mlly: 1.8.2 - pkg-types: 1.3.1 - local-pkg@1.2.1: dependencies: mlly: 1.8.2 @@ -67397,16 +72867,12 @@ snapshots: lodash.deburr@4.1.0: {} - lodash.defaults@4.2.0: {} - lodash.defaultsdeep@4.6.1: {} lodash.escape@4.0.1: {} lodash.flattendeep@4.4.0: {} - lodash.isarguments@3.1.0: {} - lodash.isequal@4.5.0: {} lodash.ismatch@4.4.0: {} @@ -67482,30 +72948,30 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 9.0.2 - log4js@4.5.1: + log4js@4.5.1(supports-color@8.1.1): dependencies: date-format: 2.1.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) flatted: 2.0.2 rfdc: 1.4.1 streamroller: 1.0.6 transitivePeerDependencies: - supports-color - log4js@6.9.1: + log4js@6.9.1(supports-color@8.1.1): dependencies: date-format: 4.0.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) flatted: 3.4.2 rfdc: 1.4.1 - streamroller: 3.1.5 + streamroller: 3.1.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color logform@2.7.0: dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.5 + "@colors/colors": 1.6.0 + "@types/triple-beam": 1.3.5 fecha: 4.2.3 ms: 2.1.3 safe-stable-stringify: 2.5.0 @@ -67539,8 +73005,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.5.0: {} - lru-cache@11.5.1: {} lru-cache@4.1.5: @@ -67568,7 +73032,7 @@ snapshots: macos-version@6.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 magic-regexp@0.11.0: dependencies: @@ -67587,16 +73051,16 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + "@jridgewell/sourcemap-codec": 1.5.5 magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + "@jridgewell/sourcemap-codec": 1.5.5 magicast@0.5.3: dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 source-map-js: 1.2.1 make-dir@1.3.0: @@ -67614,14 +73078,17 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 + + make-dir@5.1.0: + optional: true make-error@1.3.6: {} - make-fetch-happen@10.2.1: + make-fetch-happen@10.2.1(bluebird@3.7.2): dependencies: agentkeepalive: 4.6.0 - cacache: 16.1.3 + cacache: 16.1.3(bluebird@3.7.2) http-cache-semantics: 4.2.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -67662,7 +73129,7 @@ snapshots: make-fetch-happen@15.0.2: dependencies: - '@npmcli/agent': 4.0.0 + "@npmcli/agent": 4.0.2 cacache: 20.0.4 http-cache-semantics: 4.2.0 minipass: 7.1.3 @@ -67676,11 +73143,11 @@ snapshots: transitivePeerDependencies: - supports-color - make-fetch-happen@15.0.5: + make-fetch-happen@15.0.6: dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/agent': 4.0.0 - '@npmcli/redact': 4.0.0 + "@gar/promise-retry": 1.0.3 + "@npmcli/agent": 4.0.2 + "@npmcli/redact": 4.0.0 cacache: 20.0.4 http-cache-semantics: 4.2.0 minipass: 7.1.3 @@ -67733,14 +73200,6 @@ snapshots: mdurl: 1.0.1 uc.micro: 1.0.6 - markdown-it@13.0.2: - dependencies: - argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 - markdown-it@14.2.0: dependencies: argparse: 2.0.1 @@ -67762,7 +73221,7 @@ snapshots: get-stdin: 9.0.0 glob: 7.2.3 ignore: 5.2.4 - js-yaml: 4.1.1 + js-yaml: 4.2.0 jsonc-parser: 3.0.0 markdownlint: 0.25.1 markdownlint-rule-helpers: 0.16.0 @@ -67783,27 +73242,15 @@ snapshots: matcher-collection@2.0.1: dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 minimatch: 3.1.5 - matcher@3.0.0: - dependencies: - escape-string-regexp: 4.0.0 - optional: true - math-intrinsics@1.1.0: {} mathml-tag-names@2.1.3: {} mathml-tag-names@4.0.0: {} - maximatch@0.1.0: - dependencies: - array-differ: 1.0.0 - array-union: 1.0.2 - arrify: 1.0.1 - minimatch: 3.1.5 - md5.js@1.3.5: dependencies: hash-base: 3.0.5 @@ -67812,21 +73259,21 @@ snapshots: mdast-util-definitions@6.0.0: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 unist-util-visit: 5.1.0 mdast-util-find-and-replace@3.0.2: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 mdast-util-from-markdown@2.0.3: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 @@ -67842,7 +73289,7 @@ snapshots: mdast-util-gfm-autolink-literal@2.0.1: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.2 @@ -67850,7 +73297,7 @@ snapshots: mdast-util-gfm-footnote@2.1.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 @@ -67860,7 +73307,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -67868,7 +73315,7 @@ snapshots: mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.3 @@ -67878,7 +73325,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 @@ -67899,14 +73346,14 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 unist-util-is: 6.0.1 mdast-util-to-hast@13.2.1: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.1 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@ungap/structured-clone": 1.3.1 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -67916,8 +73363,8 @@ snapshots: mdast-util-to-markdown@2.1.2: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 @@ -67928,7 +73375,7 @@ snapshots: mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdn-data@2.0.14: {} @@ -67955,26 +73402,22 @@ snapshots: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - memfs@3.5.3: - dependencies: - fs-monkey: 1.1.0 - memfs@3.6.0: dependencies: fs-monkey: 1.1.0 - memfs@4.57.2(tslib@2.8.1): - dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-to-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + memfs@4.57.7(tslib@2.8.1): + dependencies: + "@jsonjoy.com/fs-core": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-fsa": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-builtins": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-to-fsa": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-node-utils": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-print": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/fs-snapshot": 4.57.7(tslib@2.8.1) + "@jsonjoy.com/json-pack": 1.21.0(tslib@2.8.1) + "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) @@ -68004,7 +73447,7 @@ snapshots: meow@8.1.2: dependencies: - '@types/minimist': 1.2.5 + "@types/minimist": 1.2.5 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -68018,7 +73461,7 @@ snapshots: meow@9.0.0: dependencies: - '@types/minimist': 1.2.5 + "@types/minimist": 1.2.5 camelcase-keys: 6.2.2 decamelize: 1.2.0 decamelize-keys: 1.1.1 @@ -68235,8 +73678,8 @@ snapshots: micromark@4.0.2: dependencies: - '@types/debug': 4.1.13 - debug: 4.4.3(supports-color@5.5.0) + "@types/debug": 4.1.13 + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -68321,53 +73764,41 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@1.6.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + mini-css-extract-plugin@1.6.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 - mini-css-extract-plugin@2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + mini-css-extract-plugin@2.10.2(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - mini-css-extract-plugin@2.10.2(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + mini-css-extract-plugin@2.10.2(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - mini-css-extract-plugin@2.10.2(webpack@5.107.1): - dependencies: - schema-utils: 4.3.3 - tapable: 2.3.3 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@5.1.4) - - mini-css-extract-plugin@2.10.2(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - schema-utils: 4.3.3 - tapable: 2.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) mini-css-extract-plugin@2.10.2(webpack@5.107.2): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - minify@15.3.1: + minify@15.3.1(supports-color@8.1.1): dependencies: - '@putout/minify': 6.0.7 - '@swc/core': 1.15.40 + "@putout/minify": 6.1.0 + "@swc/core": 1.15.41 clean-css: 5.3.3 css-b64-images: 0.2.5 - debug: 4.4.3(supports-color@5.5.0) - esbuild: 0.28.0 + debug: 4.4.3(supports-color@8.1.1) + esbuild: 0.28.1 find-up: 8.0.0 - html-minifier-next: 6.2.7(@swc/core@1.15.40) + html-minifier-next: 6.2.11(@swc/core@1.15.41) lightningcss: 1.32.0 montag: 1.2.1 oxc-minify: 0.125.0 @@ -68377,7 +73808,7 @@ snapshots: try-catch: 4.0.9 try-to-catch: 4.0.5 transitivePeerDependencies: - - '@swc/helpers' + - "@swc/helpers" - supports-color minimalistic-assert@1.0.1: {} @@ -68390,39 +73821,39 @@ snapshots: minimatch@3.0.4: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@3.0.8: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@3.1.4: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@5.1.9: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimatch@7.4.9: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimatch@8.0.7: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimatch@9.0.3: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimatch@9.0.9: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimist-options@4.1.0: dependencies: @@ -68568,34 +73999,11 @@ snapshots: mlly@1.8.2: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 - mocha@10.8.2: - dependencies: - ansi-colors: 4.1.3 - browser-stdout: 1.3.1 - chokidar: 3.6.0 - debug: 4.4.3(supports-color@8.1.1) - diff: 5.2.2 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 8.1.0 - he: 1.2.0 - js-yaml: 4.1.1 - log-symbols: 4.1.0 - minimatch: 5.1.9 - ms: 2.1.3 - serialize-javascript: 6.0.2 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.5.1 - yargs: 16.2.0 - yargs-parser: 20.2.9 - yargs-unparser: 2.0.0 - mocha@11.7.6: dependencies: browser-stdout: 1.3.1 @@ -68607,7 +74015,7 @@ snapshots: glob: 10.5.0 he: 1.2.0 is-path-inside: 3.0.3 - js-yaml: 4.1.1 + js-yaml: 4.2.0 log-symbols: 4.1.0 minimatch: 9.0.9 ms: 2.1.3 @@ -68664,14 +74072,16 @@ snapshots: montag@1.2.1: {} + moo@0.5.2: {} + moo@0.5.3: {} - morgan@1.10.1: + morgan@1.11.0: dependencies: basic-auth: 2.0.1 debug: 2.6.9 depd: 2.0.0 - on-finished: 2.3.0 + on-finished: 2.4.1 on-headers: 1.1.0 transitivePeerDependencies: - supports-color @@ -68705,21 +74115,21 @@ snapshots: ms@2.1.3: {} - msgpackr-extract@3.0.3: + msgpackr-extract@3.0.4: dependencies: node-gyp-build-optional-packages: 5.2.2 optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + "@msgpackr-extract/msgpackr-extract-darwin-arm64": 3.0.4 + "@msgpackr-extract/msgpackr-extract-darwin-x64": 3.0.4 + "@msgpackr-extract/msgpackr-extract-linux-arm": 3.0.4 + "@msgpackr-extract/msgpackr-extract-linux-arm64": 3.0.4 + "@msgpackr-extract/msgpackr-extract-linux-x64": 3.0.4 + "@msgpackr-extract/msgpackr-extract-win32-x64": 3.0.4 optional: true - msgpackr@1.11.12: + msgpackr@1.12.1: optionalDependencies: - msgpackr-extract: 3.0.3 + msgpackr-extract: 3.0.4 optional: true muggle-string@0.4.1: {} @@ -68729,14 +74139,6 @@ snapshots: dns-packet: 5.6.1 thunky: 1.1.0 - multimatch@5.0.0: - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.5 - mustache@2.3.2: {} mustache@4.2.0: {} @@ -68786,15 +74188,12 @@ snapshots: napi-postinstall@0.3.4: {} - native-request@1.1.2: - optional: true - - native-run@2.0.3: + native-run@2.0.3(supports-color@8.1.1): dependencies: - '@ionic/utils-fs': 3.1.7 - '@ionic/utils-terminal': 2.3.5 + "@ionic/utils-fs": 3.1.7(supports-color@8.1.1) + "@ionic/utils-terminal": 2.3.5 bplist-parser: 0.3.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) elementtree: 0.1.7 ini: 4.1.3 plist: 3.1.1 @@ -68840,75 +74239,74 @@ snapshots: dependencies: type-fest: 2.19.0 - next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.100.0): + next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0): dependencies: - '@next/env': 16.2.6 - '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.10.32 - caniuse-lite: 1.0.30001793 + "@next/env": 16.2.9 + "@swc/helpers": 0.5.15 + baseline-browser-mapping: 2.10.37 + caniuse-lite: 1.0.30001799 postcss: 8.4.31 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - styled-jsx: 5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + styled-jsx: 5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.7) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.6 - '@next/swc-darwin-x64': 16.2.6 - '@next/swc-linux-arm64-gnu': 16.2.6 - '@next/swc-linux-arm64-musl': 16.2.6 - '@next/swc-linux-x64-gnu': 16.2.6 - '@next/swc-linux-x64-musl': 16.2.6 - '@next/swc-win32-arm64-msvc': 16.2.6 - '@next/swc-win32-x64-msvc': 16.2.6 - '@opentelemetry/api': 1.9.1 - '@playwright/test': 1.60.0 - sass: 1.100.0 + "@next/swc-darwin-arm64": 16.2.9 + "@next/swc-darwin-x64": 16.2.9 + "@next/swc-linux-arm64-gnu": 16.2.9 + "@next/swc-linux-arm64-musl": 16.2.9 + "@next/swc-linux-x64-gnu": 16.2.9 + "@next/swc-linux-x64-musl": 16.2.9 + "@next/swc-win32-arm64-msvc": 16.2.9 + "@next/swc-win32-x64-msvc": 16.2.9 + "@opentelemetry/api": 1.9.1 + "@playwright/test": 1.61.0 + sass: 1.101.0 sharp: 0.34.5 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - babel-plugin-macros - ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3): + ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3): dependencies: - '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) - '@rollup/plugin-json': 6.1.0(rollup@4.60.4) - '@rollup/wasm-node': 4.60.4 + "@ampproject/remapping": 2.3.0 + "@angular/compiler-cli": 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) + "@rollup/plugin-json": 6.1.0(rollup@4.62.0) + "@rollup/wasm-node": 4.62.0 ajv: 8.20.0 - ansi-colors: 4.1.3 browserslist: 4.28.2 chokidar: 5.0.0 commander: 14.0.3 dependency-graph: 1.0.0 - esbuild: 0.27.7 + esbuild: 0.28.1 find-cache-directory: 6.0.0 injection-js: 2.6.1 jsonc-parser: 3.3.1 - less: 4.6.4 + less: 4.6.6 ora: 9.4.0 - piscina: 5.1.4 + piscina: 5.2.0 postcss: 8.5.15 - rollup-plugin-dts: 6.4.1(rollup@4.60.4)(typescript@5.9.3) + rollup-plugin-dts: 6.4.1(rollup@4.62.0)(typescript@6.0.3) rxjs: 7.8.2 - sass: 1.100.0 - tinyglobby: 0.2.16 + sass: 1.101.0 + tinyglobby: 0.2.17 tslib: 2.8.1 - typescript: 5.9.3 + typescript: 6.0.3 optionalDependencies: - rollup: 4.60.4 + rollup: 4.62.0 nice-try@1.0.5: {} - nitropack@2.13.4(encoding@0.1.13)(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(xml2js@0.6.2): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@rollup/plugin-alias': 6.0.0(rollup@4.60.4) - '@rollup/plugin-commonjs': 29.0.2(rollup@4.60.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.60.4) - '@rollup/plugin-json': 6.1.0(rollup@4.60.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.4) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) - '@rollup/plugin-terser': 1.0.0(rollup@4.60.4) - '@vercel/nft': 1.5.0(encoding@0.1.13)(rollup@4.60.4) + nitropack@2.13.4(encoding@0.1.13)(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(xml2js@0.6.2): + dependencies: + "@cloudflare/kv-asset-handler": 0.4.2 + "@rollup/plugin-alias": 6.0.0(rollup@4.62.0) + "@rollup/plugin-commonjs": 29.0.3(rollup@4.62.0) + "@rollup/plugin-inject": 5.0.5(rollup@4.62.0) + "@rollup/plugin-json": 6.1.0(rollup@4.62.0) + "@rollup/plugin-node-resolve": 16.0.3(rollup@4.62.0) + "@rollup/plugin-replace": 6.0.3(rollup@4.62.0) + "@rollup/plugin-terser": 1.0.0(rollup@4.62.0) + "@vercel/nft": 1.10.2(encoding@0.1.13)(rollup@4.62.0) archiver: 7.0.1 c12: 3.3.4(magicast@0.5.3) chokidar: 5.0.0 @@ -68923,7 +74321,7 @@ snapshots: defu: 6.1.7 destr: 2.0.5 dot-prop: 10.1.0 - esbuild: 0.28.0 + esbuild: 0.28.1 escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.8 @@ -68932,7 +74330,7 @@ snapshots: h3: 1.15.11 hookable: 5.5.3 httpxy: 0.5.3 - ioredis: 5.10.1 + ioredis: 5.11.1 jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 @@ -68950,10 +74348,117 @@ snapshots: pkg-types: 2.3.1 pretty-bytes: 7.1.0 radix3: 1.1.2 - rollup: 4.60.4 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + rollup: 4.62.0 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 + serve-placeholder: 2.0.2 + serve-static: 2.2.1 + source-map: 0.7.6 + std-env: 4.1.0 + ufo: 1.6.4 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.5.0 + unenv: 2.0.0-rc.24 + unimport: 6.3.0(oxc-parser@0.132.0)(rolldown@1.1.1) + unplugin-utils: 0.3.1 + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + untyped: 2.0.0 + unwasm: 0.5.3 + youch: 4.1.1 + youch-core: 0.3.3 + optionalDependencies: + xml2js: 0.6.2 + transitivePeerDependencies: + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - sqlite3 + - srvx + - supports-color + - uploadthing + + nitropack@2.13.4(encoding@0.1.13)(oxc-parser@0.133.0)(rolldown@1.1.1)(xml2js@0.6.2): + dependencies: + "@cloudflare/kv-asset-handler": 0.4.2 + "@rollup/plugin-alias": 6.0.0(rollup@4.62.0) + "@rollup/plugin-commonjs": 29.0.3(rollup@4.62.0) + "@rollup/plugin-inject": 5.0.5(rollup@4.62.0) + "@rollup/plugin-json": 6.1.0(rollup@4.62.0) + "@rollup/plugin-node-resolve": 16.0.3(rollup@4.62.0) + "@rollup/plugin-replace": 6.0.3(rollup@4.62.0) + "@rollup/plugin-terser": 1.0.0(rollup@4.62.0) + "@vercel/nft": 1.10.2(encoding@0.1.13)(rollup@4.62.0) + archiver: 7.0.1 + c12: 3.3.4(magicast@0.5.3) + chokidar: 5.0.0 + citty: 0.2.2 + compatx: 0.2.0 + confbox: 0.2.4 + consola: 3.4.2 + cookie-es: 2.0.1 + croner: 10.0.1 + crossws: 0.3.5 + db0: 0.3.4 + defu: 6.1.7 + destr: 2.0.5 + dot-prop: 10.1.0 + esbuild: 0.28.1 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + exsolve: 1.0.8 + globby: 16.2.0 + gzip-size: 7.0.0 + h3: 1.15.11 + hookable: 5.5.3 + httpxy: 0.5.3 + ioredis: 5.11.1 + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + listhen: 1.10.0(srvx@0.11.16) + magic-string: 0.30.21 + magicast: 0.5.3 + mime: 4.1.0 + mlly: 1.8.2 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.4 + ofetch: 1.5.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + pretty-bytes: 7.1.0 + radix3: 1.1.2 + rollup: 4.62.0 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) + scule: 1.3.0 + semver: 7.8.4 serve-placeholder: 2.0.2 serve-static: 2.2.1 source-map: 0.7.6 @@ -68963,9 +74468,9 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unimport: 6.3.0(oxc-parser@0.133.0)(rolldown@1.1.1) unplugin-utils: 0.3.1 - unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) untyped: 2.0.0 unwasm: 0.5.3 youch: 4.1.1 @@ -68973,22 +74478,22 @@ snapshots: optionalDependencies: xml2js: 0.6.2 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" - aws4fetch - bare-abort-controller - bare-buffer @@ -69007,7 +74512,7 @@ snapshots: nlcst-to-string@4.0.0: dependencies: - '@types/nlcst': 2.0.3 + "@types/nlcst": 2.0.3 no-case@2.3.2: dependencies: @@ -69020,7 +74525,7 @@ snapshots: node-abi@3.92.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 node-abort-controller@3.1.1: {} @@ -69058,30 +74563,30 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@12.3.0: + node-gyp@12.4.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.3 graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.1 - tar: 7.5.11 - tinyglobby: 0.2.16 - undici: 6.25.0 + semver: 7.8.4 + tar: 7.5.16 + tinyglobby: 0.2.17 + undici: 6.27.0 which: 6.0.1 - node-gyp@9.4.1: + node-gyp@9.4.1(bluebird@3.7.2): dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.3 glob: 7.2.3 graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 + make-fetch-happen: 10.2.1(bluebird@3.7.2) nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.8.1 + semver: 7.8.4 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -69125,22 +74630,13 @@ snapshots: node-mock-http@1.0.4: {} - node-notifier@10.0.1: - dependencies: - growly: 1.3.0 - is-wsl: 2.2.0 - semver: 7.8.1 - shellwords: 0.1.1 - uuid: 8.3.2 - which: 2.0.2 - node-object-hash@1.4.2: {} node-preload@0.2.1: dependencies: process-on-spawn: 1.1.0 - node-releases@2.0.46: {} + node-releases@2.0.47: {} node-res@5.0.1: dependencies: @@ -69155,6 +74651,12 @@ snapshots: is-builtin-module: 3.2.1 lodash: 4.18.1 + node-retrieve-globals@6.0.1: + dependencies: + acorn: 8.17.0 + acorn-walk: 8.3.5 + esm-import-transformer: 3.0.5 + node-watch@0.7.3: {} nodemon@3.1.14: @@ -69164,7 +74666,7 @@ snapshots: ignore-by-default: 1.0.1 minimatch: 10.2.5 pstree.remy: 1.1.8 - semver: 7.8.1 + semver: 7.8.4 simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.1 @@ -69206,20 +74708,20 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.2 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-license: 3.0.4 normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.3 is-core-module: 2.16.2 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-license: 3.0.4 normalize-package-data@8.0.0: dependencies: hosted-git-info: 9.0.3 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -69248,12 +74750,12 @@ snapshots: dependencies: once: 1.4.0 - np@11.0.3(@types/node@25.9.1)(typescript@6.0.2): + np@11.2.1(@types/node@25.9.3)(typescript@6.0.3): dependencies: chalk: 5.6.2 chalk-template: 1.1.2 clipboardy: 5.3.1 - cosmiconfig: 9.0.1(typescript@6.0.2) + cosmiconfig: 9.0.2(typescript@6.0.3) del: 8.0.1 escape-goat: 4.0.0 escape-string-regexp: 5.0.0 @@ -69263,7 +74765,7 @@ snapshots: hosted-git-info: 9.0.3 ignore-walk: 8.0.0 import-local: 3.2.0 - inquirer: 13.4.3(@types/node@25.9.1) + inquirer: 13.4.3(@types/node@25.9.3) is-installed-globally: 1.0.0 is-interactive: 2.0.0 is-scoped: 3.0.0 @@ -69282,12 +74784,12 @@ snapshots: read-package-up: 12.0.0 read-pkg: 10.1.0 rxjs: 7.8.2 - semver: 7.8.1 + semver: 7.8.4 symbol-observable: 4.0.0 terminal-link: 5.0.0 update-notifier: 7.3.1 transitivePeerDependencies: - - '@types/node' + - "@types/node" - typescript - zen-observable - zenObservable @@ -69310,15 +74812,15 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 npm-install-checks@7.1.2: dependencies: - semver: 7.8.1 + semver: 7.8.4 npm-install-checks@8.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 npm-name@8.1.0: dependencies: @@ -69344,37 +74846,37 @@ snapshots: dependencies: hosted-git-info: 6.1.3 proc-log: 3.0.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-name: 5.0.1 npm-package-arg@12.0.2: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.1: dependencies: hosted-git-info: 9.0.3 proc-log: 5.0.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.2: dependencies: hosted-git-info: 9.0.3 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.8.4 validate-npm-package-name: 7.0.2 - npm-package-json-lint@6.4.0(typescript@6.0.3): + npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3): dependencies: ajv: 6.15.0 ajv-errors: 1.0.1(ajv@6.15.0) chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@6.0.3) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 ignore: 5.3.2 is-plain-obj: 3.0.0 @@ -69382,7 +74884,7 @@ snapshots: log-symbols: 4.1.0 meow: 9.0.0 plur: 4.0.0 - semver: 7.8.1 + semver: 7.8.4 slash: 3.0.0 strip-json-comments: 3.1.1 type-fest: 3.13.1 @@ -69417,21 +74919,21 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.8.1 + semver: 7.8.4 npm-pick-manifest@11.0.3: dependencies: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 - npm-package-arg: 13.0.1 - semver: 7.8.1 + npm-package-arg: 13.0.2 + semver: 7.8.4 npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.8.1 + semver: 7.8.4 npm-registry-fetch@14.0.5: dependencies: @@ -69447,22 +74949,22 @@ snapshots: npm-registry-fetch@19.1.0: dependencies: - '@npmcli/redact': 3.2.2 + "@npmcli/redact": 3.2.2 jsonparse: 1.3.1 make-fetch-happen: 15.0.2 minipass: 7.1.3 minipass-fetch: 4.0.1 minizlib: 3.1.0 - npm-package-arg: 13.0.1 + npm-package-arg: 13.0.2 proc-log: 5.0.0 transitivePeerDependencies: - supports-color npm-registry-fetch@19.1.1: dependencies: - '@npmcli/redact': 4.0.0 + "@npmcli/redact": 4.0.0 jsonparse: 1.3.1 - make-fetch-happen: 15.0.5 + make-fetch-happen: 15.0.6 minipass: 7.1.3 minipass-fetch: 5.0.2 minizlib: 3.1.0 @@ -69529,25 +75031,25 @@ snapshots: optionalDependencies: chokidar: 3.6.0 - nuxt@2.18.1(@vue/compiler-sfc@3.5.34)(buffer@6.0.3)(consola@3.4.2)(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@nuxt/babel-preset-app': 2.18.1(vue@2.7.16) - '@nuxt/builder': 2.18.1(@vue/compiler-sfc@3.5.34)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - '@nuxt/cli': 2.18.1(buffer@6.0.3) - '@nuxt/components': 2.2.1(consola@3.4.2) - '@nuxt/config': 2.18.1 - '@nuxt/core': 2.18.1 - '@nuxt/generator': 2.18.1 - '@nuxt/loading-screen': 2.0.4 - '@nuxt/opencollective': 0.4.1 - '@nuxt/server': 2.18.1 - '@nuxt/telemetry': 1.5.0(encoding@0.1.13) - '@nuxt/utils': 2.18.1 - '@nuxt/vue-app': 2.18.1 - '@nuxt/vue-renderer': 2.18.1 - '@nuxt/webpack': 2.18.1(@vue/compiler-sfc@3.5.34)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - transitivePeerDependencies: - - '@vue/compiler-sfc' + nuxt@2.18.1(@vue/compiler-sfc@3.5.38)(buffer@6.0.3)(consola@3.4.2)(ejs@3.1.10)(encoding@0.1.13)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): + dependencies: + "@nuxt/babel-preset-app": 2.18.1(vue@2.7.16) + "@nuxt/builder": 2.18.1(@vue/compiler-sfc@3.5.38)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + "@nuxt/cli": 2.18.1(buffer@6.0.3) + "@nuxt/components": 2.2.1(consola@3.4.2) + "@nuxt/config": 2.18.1 + "@nuxt/core": 2.18.1 + "@nuxt/generator": 2.18.1 + "@nuxt/loading-screen": 2.0.4 + "@nuxt/opencollective": 0.4.1 + "@nuxt/server": 2.18.1 + "@nuxt/telemetry": 1.5.0(encoding@0.1.13) + "@nuxt/utils": 2.18.1 + "@nuxt/vue-app": 2.18.1 + "@nuxt/vue-renderer": 2.18.1 + "@nuxt/webpack": 2.18.1(@vue/compiler-sfc@3.5.38)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(tslib@2.8.1)(typescript@6.0.3)(underscore@1.13.8)(vue@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + transitivePeerDependencies: + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -69614,25 +75116,25 @@ snapshots: - webpack-command - whiskers - nuxt@2.18.1(@vue/compiler-sfc@3.5.34)(buffer@6.0.3)(consola@3.4.2)(encoding@0.1.13)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@nuxt/babel-preset-app': 2.18.1(vue@2.7.16) - '@nuxt/builder': 2.18.1(@vue/compiler-sfc@3.5.34)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - '@nuxt/cli': 2.18.1(buffer@6.0.3) - '@nuxt/components': 2.2.1(consola@3.4.2) - '@nuxt/config': 2.18.1 - '@nuxt/core': 2.18.1 - '@nuxt/generator': 2.18.1 - '@nuxt/loading-screen': 2.0.4 - '@nuxt/opencollective': 0.4.1 - '@nuxt/server': 2.18.1 - '@nuxt/telemetry': 1.5.0(encoding@0.1.13) - '@nuxt/utils': 2.18.1 - '@nuxt/vue-app': 2.18.1 - '@nuxt/vue-renderer': 2.18.1 - '@nuxt/webpack': 2.18.1(@vue/compiler-sfc@3.5.34)(prettier@3.8.3)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - transitivePeerDependencies: - - '@vue/compiler-sfc' + nuxt@2.18.1(@vue/compiler-sfc@3.5.38)(buffer@6.0.3)(consola@3.4.2)(encoding@0.1.13)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): + dependencies: + "@nuxt/babel-preset-app": 2.18.1(vue@2.7.16) + "@nuxt/builder": 2.18.1(@vue/compiler-sfc@3.5.38)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + "@nuxt/cli": 2.18.1(buffer@6.0.3) + "@nuxt/components": 2.2.1(consola@3.4.2) + "@nuxt/config": 2.18.1 + "@nuxt/core": 2.18.1 + "@nuxt/generator": 2.18.1 + "@nuxt/loading-screen": 2.0.4 + "@nuxt/opencollective": 0.4.1 + "@nuxt/server": 2.18.1 + "@nuxt/telemetry": 1.5.0(encoding@0.1.13) + "@nuxt/utils": 2.18.1 + "@nuxt/vue-app": 2.18.1 + "@nuxt/vue-renderer": 2.18.1 + "@nuxt/webpack": 2.18.1(@vue/compiler-sfc@3.5.38)(prettier@3.8.4)(tslib@2.8.1)(typescript@6.0.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + transitivePeerDependencies: + - "@vue/compiler-sfc" - arc-templates - atpl - babel-core @@ -69699,18 +75201,18 @@ snapshots: - webpack-command - whiskers - nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): - dependencies: - '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) - '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@nuxt/nitro-server': 3.21.6(db0@0.3.4)(encoding@0.1.13)(ioredis@5.10.1)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2) - '@nuxt/schema': 3.21.6 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.6(magicast@0.5.3)) - '@nuxt/vite-builder': 3.21.6(af0c9bed837661d268aa6459792fb775) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + dependencies: + "@dxup/nuxt": 0.4.1(magicast@0.5.3)(typescript@6.0.3) + "@nuxt/cli": 3.35.2(@nuxt/schema@3.21.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)(supports-color@8.1.1) + "@nuxt/devtools": 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@nuxt/nitro-server": 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2) + "@nuxt/schema": 3.21.8 + "@nuxt/telemetry": 2.8.0(@nuxt/kit@3.21.8(magicast@0.5.3)) + "@nuxt/vite-builder": 3.21.8(9a2ba7ad2787a68a46599744ee88c30c) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 c12: 3.3.4(magicast@0.5.3) chokidar: 5.0.0 compatx: 0.2.0 @@ -69732,55 +75234,55 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 nanotar: 0.3.0 - nypm: 0.6.6 + nypm: 0.6.7 ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-minify: 0.131.0 - oxc-parser: 0.131.0 - oxc-transform: 0.131.0 - oxc-walker: 1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2) + oxc-minify: 0.132.0 + oxc-parser: 0.132.0 + oxc-transform: 0.132.0 + oxc-walker: 1.0.0(oxc-parser@0.132.0)(rolldown@1.1.1) pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 rou3: 0.8.1 scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 std-env: 4.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ufo: 1.6.4 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unimport: 6.3.0(oxc-parser@0.132.0)(rolldown@1.1.1) unplugin: 3.0.0 - unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.34)(vue-router@4.6.4(vue@3.5.34(typescript@6.0.3)))(vue@3.5.34(typescript@6.0.3)) + unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.38)(vue-router@4.6.4(vue@3.5.38(typescript@6.0.3)))(vue@3.5.38(typescript@6.0.3)) untyped: 2.0.0 - vue: 3.5.34(typescript@6.0.3) - vue-router: 4.6.4(vue@3.5.34(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) + vue-router: 4.6.4(vue@3.5.38(typescript@6.0.3)) optionalDependencies: - '@parcel/watcher': 2.5.6 - '@types/node': 25.9.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vitejs/devtools' - - '@vue/compiler-sfc' + "@parcel/watcher": 2.5.6 + "@types/node": 25.9.3 + transitivePeerDependencies: + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@biomejs/biome" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" + - "@vitejs/devtools" + - "@vue/compiler-sfc" - aws4fetch - bare-abort-controller - bare-buffer @@ -69825,18 +75327,18 @@ snapshots: - xml2js - yaml - nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): - dependencies: - '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) - '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@nuxt/kit': 3.21.6(magicast@0.5.3) - '@nuxt/nitro-server': 3.21.6(db0@0.3.4)(encoding@0.1.13)(ioredis@5.10.1)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(typescript@6.0.3)(xml2js@0.6.2) - '@nuxt/schema': 3.21.6 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.6(magicast@0.5.3)) - '@nuxt/vite-builder': 3.21.6(a814d6651e761b9225bd9f861d7a3641) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + dependencies: + "@dxup/nuxt": 0.4.1(magicast@0.5.3)(typescript@6.0.3) + "@nuxt/cli": 3.35.2(@nuxt/schema@3.21.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)(supports-color@8.1.1) + "@nuxt/devtools": 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@nuxt/kit": 3.21.8(magicast@0.5.3) + "@nuxt/nitro-server": 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2) + "@nuxt/schema": 3.21.8 + "@nuxt/telemetry": 2.8.0(@nuxt/kit@3.21.8(magicast@0.5.3)) + "@nuxt/vite-builder": 3.21.8(7107088f52ca05d3b951cdb5018e32bb) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 c12: 3.3.4(magicast@0.5.3) chokidar: 5.0.0 compatx: 0.2.0 @@ -69858,55 +75360,55 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 nanotar: 0.3.0 - nypm: 0.6.6 + nypm: 0.6.7 ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-minify: 0.131.0 - oxc-parser: 0.131.0 - oxc-transform: 0.131.0 - oxc-walker: 1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2) + oxc-minify: 0.132.0 + oxc-parser: 0.132.0 + oxc-transform: 0.132.0 + oxc-walker: 1.0.0(oxc-parser@0.132.0)(rolldown@1.1.1) pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 rou3: 0.8.1 scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 std-env: 4.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ufo: 1.6.4 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unimport: 6.3.0(oxc-parser@0.132.0)(rolldown@1.1.1) unplugin: 3.0.0 - unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.34)(vue-router@4.6.4(vue@3.5.34(typescript@6.0.3)))(vue@3.5.34(typescript@6.0.3)) + unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.38)(vue-router@4.6.4(vue@3.5.38(typescript@6.0.3)))(vue@3.5.38(typescript@6.0.3)) untyped: 2.0.0 - vue: 3.5.34(typescript@6.0.3) - vue-router: 4.6.4(vue@3.5.34(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) + vue-router: 4.6.4(vue@3.5.38(typescript@6.0.3)) optionalDependencies: - '@parcel/watcher': 2.5.6 - '@types/node': 25.9.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vitejs/devtools' - - '@vue/compiler-sfc' + "@parcel/watcher": 2.5.6 + "@types/node": 25.9.3 + transitivePeerDependencies: + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@biomejs/biome" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" + - "@vitejs/devtools" + - "@vue/compiler-sfc" - aws4fetch - bare-abort-controller - bare-buffer @@ -69951,18 +75453,18 @@ snapshots: - xml2js - yaml - nuxt@4.4.6(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.0.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.4))(@types/node@25.9.1)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(ioredis@5.10.1)(less@4.6.4)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.100.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): - dependencies: - '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) - '@nuxt/cli': 3.35.2(@nuxt/schema@4.4.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)) - '@nuxt/kit': 4.4.6(magicast@0.5.3) - '@nuxt/nitro-server': 4.4.6(55238389370ad2821931107119bc4c3a) - '@nuxt/schema': 4.4.6 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.6(magicast@0.5.3)) - '@nuxt/vite-builder': 4.4.6(15c818e1e29bbe73447d2c89c14cd368) - '@unhead/vue': 2.1.15(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + nuxt@4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + dependencies: + "@dxup/nuxt": 0.4.1(magicast@0.5.3)(typescript@6.0.3) + "@nuxt/cli": 3.35.2(@nuxt/schema@4.4.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) + "@nuxt/devtools": 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + "@nuxt/kit": 4.4.8(magicast@0.5.3) + "@nuxt/nitro-server": 4.4.8(c4ff195fe9034f1d7cb8c0ada1da132d) + "@nuxt/schema": 4.4.8 + "@nuxt/telemetry": 2.8.0(@nuxt/kit@4.4.8(magicast@0.5.3)) + "@nuxt/vite-builder": 4.4.8(3f3fa0b1816a1dc51b95898b17635868) + "@unhead/vue": 2.1.15(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 @@ -69981,61 +75483,62 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 nanotar: 0.3.0 - nypm: 0.6.6 + nypm: 0.6.7 ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-minify: 0.131.0 - oxc-parser: 0.131.0 - oxc-transform: 0.131.0 - oxc-walker: 1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2) + oxc-minify: 0.133.0 + oxc-parser: 0.133.0 + oxc-transform: 0.133.0 + oxc-walker: 1.0.0(oxc-parser@0.133.0)(rolldown@1.1.1) pathe: 2.0.3 perfect-debounce: 2.1.0 picomatch: 4.0.4 pkg-types: 2.3.1 rou3: 0.8.1 scule: 1.3.0 - semver: 7.8.1 + semver: 7.8.4 std-env: 4.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ufo: 1.6.4 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unhead: 2.1.15 + unimport: 6.3.0(oxc-parser@0.133.0)(rolldown@1.1.1) unplugin: 3.0.0 unrouting: 0.1.7 untyped: 2.0.0 - vue: 3.5.34(typescript@6.0.3) - vue-router: 5.0.7(@vue/compiler-sfc@3.5.34)(vue@3.5.34(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) + vue-router: 5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) optionalDependencies: - '@parcel/watcher': 2.5.6 - '@types/node': 25.9.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@babel/plugin-proposal-decorators' - - '@babel/plugin-syntax-jsx' - - '@babel/plugin-syntax-typescript' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@pinia/colada' - - '@planetscale/database' - - '@rollup/plugin-babel' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vitejs/devtools' - - '@vue/compiler-sfc' + "@parcel/watcher": 2.5.6 + "@types/node": 25.9.3 + transitivePeerDependencies: + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@babel/plugin-proposal-decorators" + - "@babel/plugin-syntax-jsx" + - "@babel/plugin-syntax-typescript" + - "@biomejs/biome" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@pinia/colada" + - "@planetscale/database" + - "@rollup/plugin-babel" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/functions" + - "@vercel/kv" + - "@vitejs/devtools" + - "@vue/compiler-sfc" - aws4fetch - bare-abort-controller - bare-buffer @@ -70075,13 +75578,11 @@ snapshots: - uploadthing - utf-8-validate - vite - - vls - - vti - vue-tsc - xml2js - yaml - nwsapi@2.2.23: {} + nwsapi@2.2.24: {} nx-cloud@19.1.3: dependencies: @@ -70100,16 +75601,16 @@ snapshots: - debug - react-native-b4a - nx@22.7.4(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40): + nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41): dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@emnapi/wasi-threads': 1.0.4 - '@jest/diff-sequences': 30.0.1 - '@napi-rs/wasm-runtime': 0.2.4 - '@tybys/wasm-util': 0.9.0 - '@yarnpkg/lockfile': 1.1.0 - '@zkochan/js-yaml': 0.0.7 + "@emnapi/core": 1.4.5 + "@emnapi/runtime": 1.4.5 + "@emnapi/wasi-threads": 1.0.4 + "@jest/diff-sequences": 30.0.1 + "@napi-rs/wasm-runtime": 0.2.4 + "@tybys/wasm-util": 0.9.0 + "@yarnpkg/lockfile": 1.1.0 + "@zkochan/js-yaml": 0.0.7 ansi-colors: 4.1.3 ansi-regex: 5.0.1 ansi-styles: 4.3.0 @@ -70148,7 +75649,7 @@ snapshots: escape-string-regexp: 1.0.5 figures: 3.2.0 flat: 5.0.2 - follow-redirects: 1.16.0(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) form-data: 4.0.5 fs-constants: 1.0.0 function-bind: 1.1.2 @@ -70200,7 +75701,7 @@ snapshots: strip-bom: 3.0.0 supports-color: 7.2.0 tar-stream: 2.2.0 - tmp: 0.2.4 + tmp: 0.2.6 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 @@ -70213,31 +75714,31 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.7.4 - '@nx/nx-darwin-x64': 22.7.4 - '@nx/nx-freebsd-x64': 22.7.4 - '@nx/nx-linux-arm-gnueabihf': 22.7.4 - '@nx/nx-linux-arm64-gnu': 22.7.4 - '@nx/nx-linux-arm64-musl': 22.7.4 - '@nx/nx-linux-x64-gnu': 22.7.4 - '@nx/nx-linux-x64-musl': 22.7.4 - '@nx/nx-win32-arm64-msvc': 22.7.4 - '@nx/nx-win32-x64-msvc': 22.7.4 - '@swc-node/register': 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3) - '@swc/core': 1.15.40 + "@nx/nx-darwin-arm64": 22.7.5 + "@nx/nx-darwin-x64": 22.7.5 + "@nx/nx-freebsd-x64": 22.7.5 + "@nx/nx-linux-arm-gnueabihf": 22.7.5 + "@nx/nx-linux-arm64-gnu": 22.7.5 + "@nx/nx-linux-arm64-musl": 22.7.5 + "@nx/nx-linux-x64-gnu": 22.7.5 + "@nx/nx-linux-x64-musl": 22.7.5 + "@nx/nx-win32-arm64-msvc": 22.7.5 + "@nx/nx-win32-x64-msvc": 22.7.5 + "@swc-node/register": 1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3) + "@swc/core": 1.15.41 transitivePeerDependencies: - debug - nx@22.7.5(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.40): + nx@23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41): dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@emnapi/wasi-threads': 1.0.4 - '@jest/diff-sequences': 30.0.1 - '@napi-rs/wasm-runtime': 0.2.4 - '@tybys/wasm-util': 0.9.0 - '@yarnpkg/lockfile': 1.1.0 - '@zkochan/js-yaml': 0.0.7 + "@emnapi/core": 1.4.5 + "@emnapi/runtime": 1.4.5 + "@emnapi/wasi-threads": 1.0.4 + "@jest/diff-sequences": 30.0.1 + "@napi-rs/wasm-runtime": 0.2.4 + "@tybys/wasm-util": 0.9.0 + "@yarnpkg/lockfile": 1.1.0 + "@zkochan/js-yaml": 0.0.7 ansi-colors: 4.1.3 ansi-regex: 5.0.1 ansi-styles: 4.3.0 @@ -70276,7 +75777,7 @@ snapshots: escape-string-regexp: 1.0.5 figures: 3.2.0 flat: 5.0.2 - follow-redirects: 1.16.0(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1)) form-data: 4.0.5 fs-constants: 1.0.0 function-bind: 1.1.2 @@ -70296,8 +75797,9 @@ snapshots: is-interactive: 1.0.0 is-unicode-supported: 0.1.0 is-wsl: 2.2.0 + isexe: 2.0.0 json5: 2.2.3 - jsonc-parser: 3.2.0 + jsonc-parser: 3.3.1 lines-and-columns: 2.0.3 log-symbols: 4.1.0 math-intrinsics: 1.1.0 @@ -70310,7 +75812,7 @@ snapshots: once: 1.4.0 onetime: 5.1.2 open: 8.4.2 - ora: 5.3.0 + ora: 5.4.1 path-key: 3.1.1 picocolors: 1.1.1 proxy-from-env: 2.1.0 @@ -70329,11 +75831,11 @@ snapshots: supports-color: 7.2.0 tar-stream: 2.2.0 tmp: 0.2.6 - tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 util-deprecate: 1.0.2 wcwidth: 1.0.1 + which: 3.0.1 wrap-ansi: 7.0.0 wrappy: 1.0.2 y18n: 5.0.8 @@ -70341,57 +75843,25 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.7.5 - '@nx/nx-darwin-x64': 22.7.5 - '@nx/nx-freebsd-x64': 22.7.5 - '@nx/nx-linux-arm-gnueabihf': 22.7.5 - '@nx/nx-linux-arm64-gnu': 22.7.5 - '@nx/nx-linux-arm64-musl': 22.7.5 - '@nx/nx-linux-x64-gnu': 22.7.5 - '@nx/nx-linux-x64-musl': 22.7.5 - '@nx/nx-win32-arm64-msvc': 22.7.5 - '@nx/nx-win32-x64-msvc': 22.7.5 - '@swc-node/register': 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.40)(@swc/types@0.1.26)(typescript@6.0.3) - '@swc/core': 1.15.40 + "@nx/nx-darwin-arm64": 23.0.0 + "@nx/nx-darwin-x64": 23.0.0 + "@nx/nx-freebsd-x64": 23.0.0 + "@nx/nx-linux-arm-gnueabihf": 23.0.0 + "@nx/nx-linux-arm64-gnu": 23.0.0 + "@nx/nx-linux-arm64-musl": 23.0.0 + "@nx/nx-linux-x64-gnu": 23.0.0 + "@nx/nx-linux-x64-musl": 23.0.0 + "@nx/nx-win32-arm64-msvc": 23.0.0 + "@nx/nx-win32-x64-msvc": 23.0.0 + "@swc-node/register": 1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3) + "@swc/core": 1.15.41 transitivePeerDependencies: - debug - nyc@15.1.0: - dependencies: - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.6 - caching-transform: 4.0.0 - convert-source-map: 1.9.0 - decamelize: 1.2.0 - find-cache-dir: 3.3.2 - find-up: 4.1.0 - foreground-child: 2.0.0 - get-package-type: 0.1.0 - glob: 7.2.3 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-hook: 3.0.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-processinfo: 2.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.2.0 - make-dir: 3.1.0 - node-preload: 0.2.1 - p-map: 3.0.0 - process-on-spawn: 1.1.0 - resolve-from: 5.0.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - spawn-wrap: 2.0.0 - test-exclude: 6.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - nyc@18.0.0: dependencies: - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.6 + "@istanbuljs/load-nyc-config": 1.1.0 + "@istanbuljs/schema": 0.1.6 caching-transform: 4.0.0 convert-source-map: 1.9.0 decamelize: 1.2.0 @@ -70403,9 +75873,9 @@ snapshots: istanbul-lib-coverage: 3.2.2 istanbul-lib-hook: 3.0.0 istanbul-lib-instrument: 6.0.3 - istanbul-lib-processinfo: 3.0.0 + istanbul-lib-processinfo: 3.0.1 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1) istanbul-reports: 3.2.0 make-dir: 3.1.0 node-preload: 0.2.1 @@ -70420,11 +75890,11 @@ snapshots: transitivePeerDependencies: - supports-color - nypm@0.6.6: + nypm@0.6.7: dependencies: citty: 0.2.2 pathe: 2.0.3 - tinyexec: 1.2.2 + tinyexec: 1.2.4 oauth-sign@0.9.0: {} @@ -70521,7 +75991,7 @@ snapshots: obuf@1.1.2: {} - obug@2.1.1: {} + obug@2.1.3: {} ofetch@1.5.1: dependencies: @@ -70616,12 +76086,12 @@ snapshots: opener@1.5.2: {} - optimize-css-assets-webpack-plugin@6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + optimize-css-assets-webpack-plugin@6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cssnano: 5.1.15(postcss@8.5.15) last-call-webpack-plugin: 3.0.0 postcss: 8.5.15 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionator@0.8.3: dependencies: @@ -70657,7 +76127,7 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.6.1 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -70687,17 +76157,6 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.2.0 - ora@9.3.0: - dependencies: - chalk: 5.6.2 - cli-cursor: 5.0.0 - cli-spinners: 3.4.0 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 7.0.1 - stdin-discarder: 0.3.2 - string-width: 8.2.1 - ora@9.4.0: dependencies: chalk: 5.6.2 @@ -70732,159 +76191,231 @@ snapshots: oxc-minify@0.125.0: optionalDependencies: - '@oxc-minify/binding-android-arm-eabi': 0.125.0 - '@oxc-minify/binding-android-arm64': 0.125.0 - '@oxc-minify/binding-darwin-arm64': 0.125.0 - '@oxc-minify/binding-darwin-x64': 0.125.0 - '@oxc-minify/binding-freebsd-x64': 0.125.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.125.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.125.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.125.0 - '@oxc-minify/binding-linux-arm64-musl': 0.125.0 - '@oxc-minify/binding-linux-ppc64-gnu': 0.125.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.125.0 - '@oxc-minify/binding-linux-riscv64-musl': 0.125.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.125.0 - '@oxc-minify/binding-linux-x64-gnu': 0.125.0 - '@oxc-minify/binding-linux-x64-musl': 0.125.0 - '@oxc-minify/binding-openharmony-arm64': 0.125.0 - '@oxc-minify/binding-wasm32-wasi': 0.125.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.125.0 - '@oxc-minify/binding-win32-ia32-msvc': 0.125.0 - '@oxc-minify/binding-win32-x64-msvc': 0.125.0 - - oxc-minify@0.131.0: + "@oxc-minify/binding-android-arm-eabi": 0.125.0 + "@oxc-minify/binding-android-arm64": 0.125.0 + "@oxc-minify/binding-darwin-arm64": 0.125.0 + "@oxc-minify/binding-darwin-x64": 0.125.0 + "@oxc-minify/binding-freebsd-x64": 0.125.0 + "@oxc-minify/binding-linux-arm-gnueabihf": 0.125.0 + "@oxc-minify/binding-linux-arm-musleabihf": 0.125.0 + "@oxc-minify/binding-linux-arm64-gnu": 0.125.0 + "@oxc-minify/binding-linux-arm64-musl": 0.125.0 + "@oxc-minify/binding-linux-ppc64-gnu": 0.125.0 + "@oxc-minify/binding-linux-riscv64-gnu": 0.125.0 + "@oxc-minify/binding-linux-riscv64-musl": 0.125.0 + "@oxc-minify/binding-linux-s390x-gnu": 0.125.0 + "@oxc-minify/binding-linux-x64-gnu": 0.125.0 + "@oxc-minify/binding-linux-x64-musl": 0.125.0 + "@oxc-minify/binding-openharmony-arm64": 0.125.0 + "@oxc-minify/binding-wasm32-wasi": 0.125.0 + "@oxc-minify/binding-win32-arm64-msvc": 0.125.0 + "@oxc-minify/binding-win32-ia32-msvc": 0.125.0 + "@oxc-minify/binding-win32-x64-msvc": 0.125.0 + + oxc-minify@0.132.0: + optionalDependencies: + "@oxc-minify/binding-android-arm-eabi": 0.132.0 + "@oxc-minify/binding-android-arm64": 0.132.0 + "@oxc-minify/binding-darwin-arm64": 0.132.0 + "@oxc-minify/binding-darwin-x64": 0.132.0 + "@oxc-minify/binding-freebsd-x64": 0.132.0 + "@oxc-minify/binding-linux-arm-gnueabihf": 0.132.0 + "@oxc-minify/binding-linux-arm-musleabihf": 0.132.0 + "@oxc-minify/binding-linux-arm64-gnu": 0.132.0 + "@oxc-minify/binding-linux-arm64-musl": 0.132.0 + "@oxc-minify/binding-linux-ppc64-gnu": 0.132.0 + "@oxc-minify/binding-linux-riscv64-gnu": 0.132.0 + "@oxc-minify/binding-linux-riscv64-musl": 0.132.0 + "@oxc-minify/binding-linux-s390x-gnu": 0.132.0 + "@oxc-minify/binding-linux-x64-gnu": 0.132.0 + "@oxc-minify/binding-linux-x64-musl": 0.132.0 + "@oxc-minify/binding-openharmony-arm64": 0.132.0 + "@oxc-minify/binding-wasm32-wasi": 0.132.0 + "@oxc-minify/binding-win32-arm64-msvc": 0.132.0 + "@oxc-minify/binding-win32-ia32-msvc": 0.132.0 + "@oxc-minify/binding-win32-x64-msvc": 0.132.0 + + oxc-minify@0.133.0: optionalDependencies: - '@oxc-minify/binding-android-arm-eabi': 0.131.0 - '@oxc-minify/binding-android-arm64': 0.131.0 - '@oxc-minify/binding-darwin-arm64': 0.131.0 - '@oxc-minify/binding-darwin-x64': 0.131.0 - '@oxc-minify/binding-freebsd-x64': 0.131.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.131.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.131.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.131.0 - '@oxc-minify/binding-linux-arm64-musl': 0.131.0 - '@oxc-minify/binding-linux-ppc64-gnu': 0.131.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.131.0 - '@oxc-minify/binding-linux-riscv64-musl': 0.131.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.131.0 - '@oxc-minify/binding-linux-x64-gnu': 0.131.0 - '@oxc-minify/binding-linux-x64-musl': 0.131.0 - '@oxc-minify/binding-openharmony-arm64': 0.131.0 - '@oxc-minify/binding-wasm32-wasi': 0.131.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.131.0 - '@oxc-minify/binding-win32-ia32-msvc': 0.131.0 - '@oxc-minify/binding-win32-x64-msvc': 0.131.0 + "@oxc-minify/binding-android-arm-eabi": 0.133.0 + "@oxc-minify/binding-android-arm64": 0.133.0 + "@oxc-minify/binding-darwin-arm64": 0.133.0 + "@oxc-minify/binding-darwin-x64": 0.133.0 + "@oxc-minify/binding-freebsd-x64": 0.133.0 + "@oxc-minify/binding-linux-arm-gnueabihf": 0.133.0 + "@oxc-minify/binding-linux-arm-musleabihf": 0.133.0 + "@oxc-minify/binding-linux-arm64-gnu": 0.133.0 + "@oxc-minify/binding-linux-arm64-musl": 0.133.0 + "@oxc-minify/binding-linux-ppc64-gnu": 0.133.0 + "@oxc-minify/binding-linux-riscv64-gnu": 0.133.0 + "@oxc-minify/binding-linux-riscv64-musl": 0.133.0 + "@oxc-minify/binding-linux-s390x-gnu": 0.133.0 + "@oxc-minify/binding-linux-x64-gnu": 0.133.0 + "@oxc-minify/binding-linux-x64-musl": 0.133.0 + "@oxc-minify/binding-openharmony-arm64": 0.133.0 + "@oxc-minify/binding-wasm32-wasi": 0.133.0 + "@oxc-minify/binding-win32-arm64-msvc": 0.133.0 + "@oxc-minify/binding-win32-ia32-msvc": 0.133.0 + "@oxc-minify/binding-win32-x64-msvc": 0.133.0 oxc-parser@0.130.0: dependencies: - '@oxc-project/types': 0.130.0 + "@oxc-project/types": 0.130.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.130.0 - '@oxc-parser/binding-android-arm64': 0.130.0 - '@oxc-parser/binding-darwin-arm64': 0.130.0 - '@oxc-parser/binding-darwin-x64': 0.130.0 - '@oxc-parser/binding-freebsd-x64': 0.130.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.130.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.130.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.130.0 - '@oxc-parser/binding-linux-arm64-musl': 0.130.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.130.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.130.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.130.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.130.0 - '@oxc-parser/binding-linux-x64-gnu': 0.130.0 - '@oxc-parser/binding-linux-x64-musl': 0.130.0 - '@oxc-parser/binding-openharmony-arm64': 0.130.0 - '@oxc-parser/binding-wasm32-wasi': 0.130.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.130.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.130.0 - '@oxc-parser/binding-win32-x64-msvc': 0.130.0 - - oxc-parser@0.131.0: - dependencies: - '@oxc-project/types': 0.131.0 + "@oxc-parser/binding-android-arm-eabi": 0.130.0 + "@oxc-parser/binding-android-arm64": 0.130.0 + "@oxc-parser/binding-darwin-arm64": 0.130.0 + "@oxc-parser/binding-darwin-x64": 0.130.0 + "@oxc-parser/binding-freebsd-x64": 0.130.0 + "@oxc-parser/binding-linux-arm-gnueabihf": 0.130.0 + "@oxc-parser/binding-linux-arm-musleabihf": 0.130.0 + "@oxc-parser/binding-linux-arm64-gnu": 0.130.0 + "@oxc-parser/binding-linux-arm64-musl": 0.130.0 + "@oxc-parser/binding-linux-ppc64-gnu": 0.130.0 + "@oxc-parser/binding-linux-riscv64-gnu": 0.130.0 + "@oxc-parser/binding-linux-riscv64-musl": 0.130.0 + "@oxc-parser/binding-linux-s390x-gnu": 0.130.0 + "@oxc-parser/binding-linux-x64-gnu": 0.130.0 + "@oxc-parser/binding-linux-x64-musl": 0.130.0 + "@oxc-parser/binding-openharmony-arm64": 0.130.0 + "@oxc-parser/binding-wasm32-wasi": 0.130.0 + "@oxc-parser/binding-win32-arm64-msvc": 0.130.0 + "@oxc-parser/binding-win32-ia32-msvc": 0.130.0 + "@oxc-parser/binding-win32-x64-msvc": 0.130.0 + + oxc-parser@0.132.0: + dependencies: + "@oxc-project/types": 0.132.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.131.0 - '@oxc-parser/binding-android-arm64': 0.131.0 - '@oxc-parser/binding-darwin-arm64': 0.131.0 - '@oxc-parser/binding-darwin-x64': 0.131.0 - '@oxc-parser/binding-freebsd-x64': 0.131.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.131.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.131.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.131.0 - '@oxc-parser/binding-linux-arm64-musl': 0.131.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.131.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.131.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.131.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.131.0 - '@oxc-parser/binding-linux-x64-gnu': 0.131.0 - '@oxc-parser/binding-linux-x64-musl': 0.131.0 - '@oxc-parser/binding-openharmony-arm64': 0.131.0 - '@oxc-parser/binding-wasm32-wasi': 0.131.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.131.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.131.0 - '@oxc-parser/binding-win32-x64-msvc': 0.131.0 - - oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): + "@oxc-parser/binding-android-arm-eabi": 0.132.0 + "@oxc-parser/binding-android-arm64": 0.132.0 + "@oxc-parser/binding-darwin-arm64": 0.132.0 + "@oxc-parser/binding-darwin-x64": 0.132.0 + "@oxc-parser/binding-freebsd-x64": 0.132.0 + "@oxc-parser/binding-linux-arm-gnueabihf": 0.132.0 + "@oxc-parser/binding-linux-arm-musleabihf": 0.132.0 + "@oxc-parser/binding-linux-arm64-gnu": 0.132.0 + "@oxc-parser/binding-linux-arm64-musl": 0.132.0 + "@oxc-parser/binding-linux-ppc64-gnu": 0.132.0 + "@oxc-parser/binding-linux-riscv64-gnu": 0.132.0 + "@oxc-parser/binding-linux-riscv64-musl": 0.132.0 + "@oxc-parser/binding-linux-s390x-gnu": 0.132.0 + "@oxc-parser/binding-linux-x64-gnu": 0.132.0 + "@oxc-parser/binding-linux-x64-musl": 0.132.0 + "@oxc-parser/binding-openharmony-arm64": 0.132.0 + "@oxc-parser/binding-wasm32-wasi": 0.132.0 + "@oxc-parser/binding-win32-arm64-msvc": 0.132.0 + "@oxc-parser/binding-win32-ia32-msvc": 0.132.0 + "@oxc-parser/binding-win32-x64-msvc": 0.132.0 + + oxc-parser@0.133.0: + dependencies: + "@oxc-project/types": 0.133.0 optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.19.1 - '@oxc-resolver/binding-android-arm64': 11.19.1 - '@oxc-resolver/binding-darwin-arm64': 11.19.1 - '@oxc-resolver/binding-darwin-x64': 11.19.1 - '@oxc-resolver/binding-freebsd-x64': 11.19.1 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.19.1 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.19.1 - '@oxc-resolver/binding-linux-arm64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-arm64-musl': 11.19.1 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-riscv64-musl': 11.19.1 - '@oxc-resolver/binding-linux-s390x-gnu': 11.19.1 - '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-x64-musl': 11.19.1 - '@oxc-resolver/binding-openharmony-arm64': 11.19.1 - '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 - '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 - '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - oxc-transform@0.131.0: + "@oxc-parser/binding-android-arm-eabi": 0.133.0 + "@oxc-parser/binding-android-arm64": 0.133.0 + "@oxc-parser/binding-darwin-arm64": 0.133.0 + "@oxc-parser/binding-darwin-x64": 0.133.0 + "@oxc-parser/binding-freebsd-x64": 0.133.0 + "@oxc-parser/binding-linux-arm-gnueabihf": 0.133.0 + "@oxc-parser/binding-linux-arm-musleabihf": 0.133.0 + "@oxc-parser/binding-linux-arm64-gnu": 0.133.0 + "@oxc-parser/binding-linux-arm64-musl": 0.133.0 + "@oxc-parser/binding-linux-ppc64-gnu": 0.133.0 + "@oxc-parser/binding-linux-riscv64-gnu": 0.133.0 + "@oxc-parser/binding-linux-riscv64-musl": 0.133.0 + "@oxc-parser/binding-linux-s390x-gnu": 0.133.0 + "@oxc-parser/binding-linux-x64-gnu": 0.133.0 + "@oxc-parser/binding-linux-x64-musl": 0.133.0 + "@oxc-parser/binding-openharmony-arm64": 0.133.0 + "@oxc-parser/binding-wasm32-wasi": 0.133.0 + "@oxc-parser/binding-win32-arm64-msvc": 0.133.0 + "@oxc-parser/binding-win32-ia32-msvc": 0.133.0 + "@oxc-parser/binding-win32-x64-msvc": 0.133.0 + + oxc-resolver@11.20.0: optionalDependencies: - '@oxc-transform/binding-android-arm-eabi': 0.131.0 - '@oxc-transform/binding-android-arm64': 0.131.0 - '@oxc-transform/binding-darwin-arm64': 0.131.0 - '@oxc-transform/binding-darwin-x64': 0.131.0 - '@oxc-transform/binding-freebsd-x64': 0.131.0 - '@oxc-transform/binding-linux-arm-gnueabihf': 0.131.0 - '@oxc-transform/binding-linux-arm-musleabihf': 0.131.0 - '@oxc-transform/binding-linux-arm64-gnu': 0.131.0 - '@oxc-transform/binding-linux-arm64-musl': 0.131.0 - '@oxc-transform/binding-linux-ppc64-gnu': 0.131.0 - '@oxc-transform/binding-linux-riscv64-gnu': 0.131.0 - '@oxc-transform/binding-linux-riscv64-musl': 0.131.0 - '@oxc-transform/binding-linux-s390x-gnu': 0.131.0 - '@oxc-transform/binding-linux-x64-gnu': 0.131.0 - '@oxc-transform/binding-linux-x64-musl': 0.131.0 - '@oxc-transform/binding-openharmony-arm64': 0.131.0 - '@oxc-transform/binding-wasm32-wasi': 0.131.0 - '@oxc-transform/binding-win32-arm64-msvc': 0.131.0 - '@oxc-transform/binding-win32-ia32-msvc': 0.131.0 - '@oxc-transform/binding-win32-x64-msvc': 0.131.0 - - oxc-walker@1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2): + "@oxc-resolver/binding-android-arm-eabi": 11.20.0 + "@oxc-resolver/binding-android-arm64": 11.20.0 + "@oxc-resolver/binding-darwin-arm64": 11.20.0 + "@oxc-resolver/binding-darwin-x64": 11.20.0 + "@oxc-resolver/binding-freebsd-x64": 11.20.0 + "@oxc-resolver/binding-linux-arm-gnueabihf": 11.20.0 + "@oxc-resolver/binding-linux-arm-musleabihf": 11.20.0 + "@oxc-resolver/binding-linux-arm64-gnu": 11.20.0 + "@oxc-resolver/binding-linux-arm64-musl": 11.20.0 + "@oxc-resolver/binding-linux-ppc64-gnu": 11.20.0 + "@oxc-resolver/binding-linux-riscv64-gnu": 11.20.0 + "@oxc-resolver/binding-linux-riscv64-musl": 11.20.0 + "@oxc-resolver/binding-linux-s390x-gnu": 11.20.0 + "@oxc-resolver/binding-linux-x64-gnu": 11.20.0 + "@oxc-resolver/binding-linux-x64-musl": 11.20.0 + "@oxc-resolver/binding-openharmony-arm64": 11.20.0 + "@oxc-resolver/binding-wasm32-wasi": 11.20.0 + "@oxc-resolver/binding-win32-arm64-msvc": 11.20.0 + "@oxc-resolver/binding-win32-x64-msvc": 11.20.0 + + oxc-transform@0.132.0: + optionalDependencies: + "@oxc-transform/binding-android-arm-eabi": 0.132.0 + "@oxc-transform/binding-android-arm64": 0.132.0 + "@oxc-transform/binding-darwin-arm64": 0.132.0 + "@oxc-transform/binding-darwin-x64": 0.132.0 + "@oxc-transform/binding-freebsd-x64": 0.132.0 + "@oxc-transform/binding-linux-arm-gnueabihf": 0.132.0 + "@oxc-transform/binding-linux-arm-musleabihf": 0.132.0 + "@oxc-transform/binding-linux-arm64-gnu": 0.132.0 + "@oxc-transform/binding-linux-arm64-musl": 0.132.0 + "@oxc-transform/binding-linux-ppc64-gnu": 0.132.0 + "@oxc-transform/binding-linux-riscv64-gnu": 0.132.0 + "@oxc-transform/binding-linux-riscv64-musl": 0.132.0 + "@oxc-transform/binding-linux-s390x-gnu": 0.132.0 + "@oxc-transform/binding-linux-x64-gnu": 0.132.0 + "@oxc-transform/binding-linux-x64-musl": 0.132.0 + "@oxc-transform/binding-openharmony-arm64": 0.132.0 + "@oxc-transform/binding-wasm32-wasi": 0.132.0 + "@oxc-transform/binding-win32-arm64-msvc": 0.132.0 + "@oxc-transform/binding-win32-ia32-msvc": 0.132.0 + "@oxc-transform/binding-win32-x64-msvc": 0.132.0 + + oxc-transform@0.133.0: + optionalDependencies: + "@oxc-transform/binding-android-arm-eabi": 0.133.0 + "@oxc-transform/binding-android-arm64": 0.133.0 + "@oxc-transform/binding-darwin-arm64": 0.133.0 + "@oxc-transform/binding-darwin-x64": 0.133.0 + "@oxc-transform/binding-freebsd-x64": 0.133.0 + "@oxc-transform/binding-linux-arm-gnueabihf": 0.133.0 + "@oxc-transform/binding-linux-arm-musleabihf": 0.133.0 + "@oxc-transform/binding-linux-arm64-gnu": 0.133.0 + "@oxc-transform/binding-linux-arm64-musl": 0.133.0 + "@oxc-transform/binding-linux-ppc64-gnu": 0.133.0 + "@oxc-transform/binding-linux-riscv64-gnu": 0.133.0 + "@oxc-transform/binding-linux-riscv64-musl": 0.133.0 + "@oxc-transform/binding-linux-s390x-gnu": 0.133.0 + "@oxc-transform/binding-linux-x64-gnu": 0.133.0 + "@oxc-transform/binding-linux-x64-musl": 0.133.0 + "@oxc-transform/binding-openharmony-arm64": 0.133.0 + "@oxc-transform/binding-wasm32-wasi": 0.133.0 + "@oxc-transform/binding-win32-arm64-msvc": 0.133.0 + "@oxc-transform/binding-win32-ia32-msvc": 0.133.0 + "@oxc-transform/binding-win32-x64-msvc": 0.133.0 + + oxc-walker@1.0.0(oxc-parser@0.132.0)(rolldown@1.1.1): dependencies: magic-regexp: 0.11.0 optionalDependencies: - oxc-parser: 0.131.0 - rolldown: 1.0.2 + oxc-parser: 0.132.0 + rolldown: 1.1.1 - p-cancelable@1.1.0: {} + oxc-walker@1.0.0(oxc-parser@0.133.0)(rolldown@1.1.1): + dependencies: + magic-regexp: 0.11.0 + optionalDependencies: + oxc-parser: 0.133.0 + rolldown: 1.1.1 - p-cancelable@2.1.1: {} + p-cancelable@1.1.0: {} p-defer@1.0.0: {} @@ -70914,10 +76445,6 @@ snapshots: dependencies: yocto-queue: 1.2.2 - p-limit@5.0.0: - dependencies: - yocto-queue: 1.2.2 - p-limit@7.3.0: dependencies: yocto-queue: 1.2.2 @@ -70977,12 +76504,12 @@ snapshots: p-retry@4.6.2: dependencies: - '@types/retry': 0.12.0 + "@types/retry": 0.12.0 retry: 0.13.1 p-retry@6.2.1: dependencies: - '@types/retry': 0.12.2 + "@types/retry": 0.12.2 is-network-error: 1.3.2 retry: 0.13.1 @@ -71002,9 +76529,9 @@ snapshots: pac-proxy-agent@7.2.0: dependencies: - '@tootallnate/quickjs-emscripten': 0.23.0 + "@tootallnate/quickjs-emscripten": 0.23.0 agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -71036,7 +76563,7 @@ snapshots: ky: 1.14.3 registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.8.1 + semver: 7.8.4 package-json@6.5.0: dependencies: @@ -71047,12 +76574,12 @@ snapshots: package-manager-detector@1.6.0: {} - pacote@15.2.0: + pacote@15.2.0(bluebird@3.7.2)(supports-color@8.1.1): dependencies: - '@npmcli/git': 4.1.0 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/promise-spawn': 6.0.2 - '@npmcli/run-script': 6.0.2 + "@npmcli/git": 4.1.0(bluebird@3.7.2) + "@npmcli/installed-package-contents": 2.1.0 + "@npmcli/promise-spawn": 6.0.2 + "@npmcli/run-script": 6.0.2(bluebird@3.7.2) cacache: 17.1.4 fs-minipass: 3.0.3 minipass: 5.0.0 @@ -71064,7 +76591,7 @@ snapshots: promise-retry: 2.0.1 read-package-json: 6.0.4 read-package-json-fast: 3.0.2 - sigstore: 1.9.0 + sigstore: 1.9.0(supports-color@8.1.1) ssri: 10.0.6 tar: 6.2.1 transitivePeerDependencies: @@ -71073,15 +76600,15 @@ snapshots: pacote@21.0.1: dependencies: - '@npmcli/git': 6.0.3 - '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 8.0.3 - '@npmcli/run-script': 10.0.3 + "@npmcli/git": 6.0.3 + "@npmcli/installed-package-contents": 3.0.0 + "@npmcli/package-json": 7.0.2 + "@npmcli/promise-spawn": 8.0.3 + "@npmcli/run-script": 10.0.3 cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 - npm-package-arg: 13.0.1 + npm-package-arg: 13.0.2 npm-packlist: 10.0.3 npm-pick-manifest: 10.0.0 npm-registry-fetch: 19.1.0 @@ -71089,17 +76616,18 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.1.1 ssri: 12.0.0 - tar: 7.5.11 + tar: 7.5.16 transitivePeerDependencies: - supports-color - pacote@21.3.1: + pacote@21.5.0: dependencies: - '@npmcli/git': 7.0.2 - '@npmcli/installed-package-contents': 4.0.0 - '@npmcli/package-json': 7.0.5 - '@npmcli/promise-spawn': 9.0.1 - '@npmcli/run-script': 10.0.4 + "@gar/promise-retry": 1.0.3 + "@npmcli/git": 7.0.2 + "@npmcli/installed-package-contents": 4.0.0 + "@npmcli/package-json": 7.0.5 + "@npmcli/promise-spawn": 9.0.1 + "@npmcli/run-script": 10.0.4 cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 @@ -71108,32 +76636,31 @@ snapshots: npm-pick-manifest: 11.0.3 npm-registry-fetch: 19.1.1 proc-log: 6.1.0 - promise-retry: 2.0.1 sigstore: 4.1.1 ssri: 13.0.1 - tar: 7.5.15 + tar: 7.5.16 transitivePeerDependencies: - supports-color - pacote@21.5.0: + pacote@21.5.1: dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/git': 7.0.2 - '@npmcli/installed-package-contents': 4.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 9.0.1 - '@npmcli/run-script': 10.0.3 + "@gar/promise-retry": 1.0.3 + "@npmcli/git": 7.0.2 + "@npmcli/installed-package-contents": 4.0.0 + "@npmcli/package-json": 7.0.2 + "@npmcli/promise-spawn": 9.0.1 + "@npmcli/run-script": 10.0.3 cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 - npm-package-arg: 13.0.1 - npm-packlist: 10.0.3 + npm-package-arg: 13.0.2 + npm-packlist: 10.0.4 npm-pick-manifest: 11.0.3 npm-registry-fetch: 19.1.0 proc-log: 6.1.0 sigstore: 4.1.1 ssri: 13.0.1 - tar: 7.5.11 + tar: 7.5.16 transitivePeerDependencies: - supports-color @@ -71163,7 +76690,7 @@ snapshots: asn1.js: 4.10.1 browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 - pbkdf2: 3.1.5 + pbkdf2: 3.1.6 safe-buffer: 5.2.1 parse-author@2.0.0: @@ -71209,21 +76736,21 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 index-to-position: 1.2.0 type-fest: 4.41.0 parse-latin@7.0.0: dependencies: - '@types/nlcst': 2.0.3 - '@types/unist': 3.0.3 + "@types/nlcst": 2.0.3 + "@types/unist": 3.0.3 nlcst-to-string: 4.0.0 unist-util-modify-children: 4.0.0 unist-util-visit-children: 3.0.0 @@ -71249,9 +76776,9 @@ snapshots: dependencies: parse-path: 7.1.0 - parse5-html-rewriting-stream@8.0.0: + parse5-html-rewriting-stream@8.0.1: dependencies: - entities: 6.0.1 + entities: 8.0.0 parse5: 8.0.1 parse5-sax-parser: 8.0.0 @@ -71312,7 +76839,8 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - path-dirname@1.0.2: {} + path-dirname@1.0.2: + optional: true path-exists@3.0.0: {} @@ -71347,7 +76875,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.0 + lru-cache: 11.5.1 minipass: 7.1.3 path-to-regexp@0.1.13: {} @@ -71375,7 +76903,7 @@ snapshots: pathval@1.1.1: {} - pbkdf2@3.1.5: + pbkdf2@3.1.6: dependencies: create-hash: 1.2.0 create-hmac: 1.1.7 @@ -71440,7 +76968,11 @@ snapshots: piscina@5.1.4: optionalDependencies: - '@napi-rs/nice': 1.1.1 + "@napi-rs/nice": 1.1.1 + + piscina@5.2.0: + optionalDependencies: + "@napi-rs/nice": 1.1.1 pkce-challenge@5.0.1: {} @@ -71460,7 +76992,7 @@ snapshots: dependencies: find-up-simple: 1.0.1 - pkg-entry-points@1.1.1: {} + pkg-entry-points@1.1.2: {} pkg-types@1.3.1: dependencies: @@ -71484,18 +77016,18 @@ snapshots: pkijs@3.4.0: dependencies: - '@noble/hashes': 1.4.0 + "@noble/hashes": 1.4.0 asn1js: 3.0.10 bytestreamjs: 2.0.1 pvtsutils: 1.3.6 pvutils: 1.1.5 tslib: 2.8.1 - playwright-core@1.60.0: {} + playwright-core@1.61.0: {} - playwright@1.60.0: + playwright@1.61.0: dependencies: - playwright-core: 1.60.0 + playwright-core: 1.61.0 optionalDependencies: fsevents: 2.3.2 @@ -71505,13 +77037,13 @@ snapshots: plist@3.1.1: dependencies: - '@xmldom/xmldom': 0.9.10 + "@xmldom/xmldom": 0.9.10 base64-js: 1.5.1 xmlbuilder: 15.1.1 plist@5.0.0: dependencies: - '@xmldom/xmldom': 0.9.10 + "@xmldom/xmldom": 0.9.10 xmlbuilder: 15.1.1 plur@4.0.0: @@ -71522,12 +77054,6 @@ snapshots: pn@1.1.0: {} - pnp-webpack-plugin@1.7.0(typescript@5.9.3): - dependencies: - ts-pnp: 1.2.0(typescript@5.9.3) - transitivePeerDependencies: - - typescript - pnp-webpack-plugin@1.7.0(typescript@6.0.3): dependencies: ts-pnp: 1.2.0(typescript@6.0.3) @@ -71536,9 +77062,9 @@ snapshots: polyfills-loader@1.7.6: dependencies: - '@babel/core': 7.29.0 - '@open-wc/building-utils': 2.21.1 - '@webcomponents/webcomponentsjs': 2.8.0 + "@babel/core": 7.29.0 + "@open-wc/building-utils": 2.21.1 + "@webcomponents/webcomponentsjs": 2.8.0 abortcontroller-polyfill: 1.7.8 core-js-bundle: 3.49.0 deepmerge: 4.3.1 @@ -71554,10 +77080,10 @@ snapshots: transitivePeerDependencies: - supports-color - portfinder@1.0.38: + portfinder@1.0.38(supports-color@8.1.1): dependencies: async: 3.2.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -71568,30 +77094,30 @@ snapshots: postcss-attribute-case-insensitive@6.0.3(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-calc@10.1.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 postcss-calc@7.0.5: dependencies: postcss: 7.0.39 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 postcss-calc@8.2.4(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 postcss-calc@9.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 postcss-clamp@4.1.0(postcss@8.5.15): @@ -71601,22 +77127,22 @@ snapshots: postcss-color-functional-notation@6.0.14(postcss@8.5.15): dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-color-hex-alpha@9.0.4(postcss@8.5.15): dependencies: - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-color-rebeccapurple@9.0.3(postcss@8.5.15): dependencies: - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -71646,17 +77172,17 @@ snapshots: postcss-colormin@7.0.10(postcss@8.5.15): dependencies: - '@colordx/core': 5.4.3 + "@colordx/core": 5.4.3 browserslist: 4.28.2 caniuse-api: 3.0.0 postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-colormin@8.0.0(postcss@8.5.15): + postcss-colormin@8.0.1(postcss@8.5.15): dependencies: - '@colordx/core': 5.4.3 + "@colordx/core": 5.4.3 browserslist: 4.28.2 - caniuse-api: 3.0.0 + caniuse-api: 4.0.0 postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -71683,7 +77209,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-convert-values@8.0.0(postcss@8.5.15): + postcss-convert-values@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 postcss: 8.5.15 @@ -71691,33 +77217,33 @@ snapshots: postcss-custom-media@10.0.8(postcss@8.5.15): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/cascade-layer-name-parser": 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/media-query-list-parser": 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.5.15 postcss-custom-properties@13.3.12(postcss@8.5.15): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/cascade-layer-name-parser": 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-custom-selectors@7.1.12(postcss@8.5.15): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + "@csstools/cascade-layer-name-parser": 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-dir-pseudo-class@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-discard-comments@4.0.2: dependencies: @@ -71734,12 +77260,12 @@ snapshots: postcss-discard-comments@7.0.8(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - postcss-discard-comments@8.0.0(postcss@8.5.15): + postcss-discard-comments@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-discard-duplicates@4.0.2: dependencies: @@ -71757,7 +77283,7 @@ snapshots: dependencies: postcss: 8.5.15 - postcss-discard-duplicates@8.0.0(postcss@8.5.15): + postcss-discard-duplicates@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -71777,7 +77303,7 @@ snapshots: dependencies: postcss: 8.5.15 - postcss-discard-empty@8.0.0(postcss@8.5.15): + postcss-discard-empty@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -71797,26 +77323,26 @@ snapshots: dependencies: postcss: 8.5.15 - postcss-discard-overridden@8.0.0(postcss@8.5.15): + postcss-discard-overridden@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-double-position-gradients@5.0.7(postcss@8.5.15): dependencies: - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-focus-visible@9.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-focus-within@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-font-variant@5.0.0(postcss@8.5.15): dependencies: @@ -71828,7 +77354,7 @@ snapshots: postcss-image-set-function@6.0.3(postcss@8.5.15): dependencies: - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -71852,37 +77378,20 @@ snapshots: postcss-lab-function@6.0.19(postcss@8.5.15): dependencies: - '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/utilities': 1.0.0(postcss@8.5.15) + "@csstools/css-color-parser": 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + "@csstools/css-parser-algorithms": 2.7.1(@csstools/css-tokenizer@2.4.1) + "@csstools/css-tokenizer": 2.4.1 + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/utilities": 1.0.0(postcss@8.5.15) postcss: 8.5.15 - postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)): + postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: postcss: 8.5.15 - ts-node: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5) - optional: true - - postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.3 - optionalDependencies: - postcss: 8.5.15 - ts-node: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3) - - postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3)): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.3 - optionalDependencies: - postcss: 8.5.15 - ts-node: 10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0): dependencies: @@ -71892,42 +77401,31 @@ snapshots: postcss: 8.5.15 yaml: 2.9.0 - postcss-loader@4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + postcss-loader@4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 loader-utils: 2.0.4 postcss: 8.5.15 schema-utils: 3.3.0 - semver: 7.8.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + semver: 7.8.4 + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - postcss-loader@6.2.1(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + postcss-loader@6.2.1(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.5.15 - semver: 7.8.1 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + semver: 7.8.4 + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) postcss-loader@6.2.1(postcss@8.5.15)(webpack@5.107.2): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.5.15 - semver: 7.8.1 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - postcss-loader@8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - cosmiconfig: 9.0.1(typescript@5.9.3) - jiti: 2.7.0 - postcss: 8.5.12 - semver: 7.8.1 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - transitivePeerDependencies: - - typescript + semver: 7.8.4 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) postcss-logical@7.0.1(postcss@8.5.15): dependencies: @@ -71961,11 +77459,11 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 7.0.11(postcss@8.5.15) - postcss-merge-longhand@8.0.0(postcss@8.5.15): + postcss-merge-longhand@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 - stylehacks: 8.0.0(postcss@8.5.15) + stylehacks: 8.0.1(postcss@8.5.15) postcss-merge-rules@4.0.3: dependencies: @@ -71982,7 +77480,7 @@ snapshots: caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.5.15) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-merge-rules@6.1.1(postcss@8.5.15): dependencies: @@ -71990,7 +77488,7 @@ snapshots: caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.15) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-merge-rules@7.0.11(postcss@8.5.15): dependencies: @@ -71998,15 +77496,15 @@ snapshots: caniuse-api: 3.0.0 cssnano-utils: 5.0.3(postcss@8.5.15) postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - postcss-merge-rules@8.0.0(postcss@8.5.15): + postcss-merge-rules@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 - caniuse-api: 3.0.0 - cssnano-utils: 6.0.0(postcss@8.5.15) + caniuse-api: 4.0.0 + cssnano-utils: 6.0.1(postcss@8.5.15) postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-minify-font-values@4.0.2: dependencies: @@ -72028,7 +77526,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-font-values@8.0.0(postcss@8.5.15): + postcss-minify-font-values@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72056,15 +77554,15 @@ snapshots: postcss-minify-gradients@7.0.5(postcss@8.5.15): dependencies: - '@colordx/core': 5.4.3 + "@colordx/core": 5.4.3 cssnano-utils: 5.0.3(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-gradients@8.0.0(postcss@8.5.15): + postcss-minify-gradients@8.0.1(postcss@8.5.15): dependencies: - '@colordx/core': 5.4.3 - cssnano-utils: 6.0.0(postcss@8.5.15) + "@colordx/core": 5.4.3 + cssnano-utils: 6.0.1(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72098,10 +77596,10 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-params@8.0.0(postcss@8.5.15): + postcss-minify-params@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 - cssnano-utils: 6.0.0(postcss@8.5.15) + cssnano-utils: 6.0.1(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72115,12 +77613,12 @@ snapshots: postcss-minify-selectors@5.2.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-minify-selectors@6.0.4(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-minify-selectors@7.1.2(postcss@8.5.15): dependencies: @@ -72128,50 +77626,31 @@ snapshots: caniuse-api: 3.0.0 cssesc: 3.0.0 postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - postcss-minify-selectors@8.0.1(postcss@8.5.15): + postcss-minify-selectors@8.0.2(postcss@8.5.15): dependencies: browserslist: 4.28.2 - caniuse-api: 3.0.0 + caniuse-api: 4.0.0 cssesc: 3.0.0 postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-modules-extract-imports@3.1.0(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-modules-local-by-default@1.2.0: - dependencies: - css-selector-tokenizer: 0.7.3 - postcss: 6.0.23 - postcss-modules-local-by-default@4.2.0(postcss@8.5.15): dependencies: icss-utils: 5.1.0(postcss@8.5.15) postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 - postcss-modules-scope@1.1.0: - dependencies: - css-selector-tokenizer: 0.7.3 - postcss: 6.0.23 - postcss-modules-scope@3.2.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 - - postcss-modules-sync@1.0.0: - dependencies: - generic-names: 1.0.3 - icss-replace-symbols: 1.1.0 - postcss: 5.2.18 - postcss-modules-local-by-default: 1.2.0 - postcss-modules-scope: 1.1.0 - string-hash: 1.1.3 + postcss-selector-parser: 7.1.4 postcss-modules-values@4.0.0(postcss@8.5.15): dependencies: @@ -72180,10 +77659,10 @@ snapshots: postcss-nesting@12.1.5(postcss@8.5.15): dependencies: - '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.1.2) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) + "@csstools/selector-resolve-nested": 1.1.0(postcss-selector-parser@6.1.4) + "@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.1.4) postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-normalize-charset@4.0.1: dependencies: @@ -72201,7 +77680,7 @@ snapshots: dependencies: postcss: 8.5.15 - postcss-normalize-charset@8.0.0(postcss@8.5.15): + postcss-normalize-charset@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -72226,7 +77705,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-display-values@8.0.0(postcss@8.5.15): + postcss-normalize-display-values@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72253,7 +77732,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-positions@8.0.0(postcss@8.5.15): + postcss-normalize-positions@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72280,7 +77759,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@8.0.0(postcss@8.5.15): + postcss-normalize-repeat-style@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72306,7 +77785,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-string@8.0.0(postcss@8.5.15): + postcss-normalize-string@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72332,7 +77811,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@8.0.0(postcss@8.5.15): + postcss-normalize-timing-functions@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72361,7 +77840,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@8.0.0(postcss@8.5.15): + postcss-normalize-unicode@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 postcss: 8.5.15 @@ -72390,7 +77869,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-url@8.0.0(postcss@8.5.15): + postcss-normalize-url@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72415,7 +77894,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@8.0.0(postcss@8.5.15): + postcss-normalize-whitespace@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72448,9 +77927,9 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-ordered-values@8.0.0(postcss@8.5.15): + postcss-ordered-values@8.0.1(postcss@8.5.15): dependencies: - cssnano-utils: 6.0.0(postcss@8.5.15) + cssnano-utils: 6.0.1(postcss@8.5.15) postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72474,36 +77953,36 @@ snapshots: postcss-preset-env@9.6.0(postcss@8.5.15): dependencies: - '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.5.15) - '@csstools/postcss-color-function': 3.0.19(postcss@8.5.15) - '@csstools/postcss-color-mix-function': 2.0.19(postcss@8.5.15) - '@csstools/postcss-content-alt-text': 1.0.0(postcss@8.5.15) - '@csstools/postcss-exponential-functions': 1.0.9(postcss@8.5.15) - '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.5.15) - '@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.5.15) - '@csstools/postcss-gradients-interpolation-method': 4.0.20(postcss@8.5.15) - '@csstools/postcss-hwb-function': 3.0.18(postcss@8.5.15) - '@csstools/postcss-ic-unit': 3.0.7(postcss@8.5.15) - '@csstools/postcss-initial': 1.0.1(postcss@8.5.15) - '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.5.15) - '@csstools/postcss-light-dark-function': 1.0.8(postcss@8.5.15) - '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.5.15) - '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.5.15) - '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.5.15) - '@csstools/postcss-logical-resize': 2.0.1(postcss@8.5.15) - '@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.5.15) - '@csstools/postcss-media-minmax': 1.1.8(postcss@8.5.15) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.5.15) - '@csstools/postcss-nested-calc': 3.0.2(postcss@8.5.15) - '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.5.15) - '@csstools/postcss-oklab-function': 3.0.19(postcss@8.5.15) - '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15) - '@csstools/postcss-relative-color-syntax': 2.0.19(postcss@8.5.15) - '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.5.15) - '@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.5.15) - '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.5.15) - '@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.5.15) - '@csstools/postcss-unset-value': 3.0.1(postcss@8.5.15) + "@csstools/postcss-cascade-layers": 4.0.6(postcss@8.5.15) + "@csstools/postcss-color-function": 3.0.19(postcss@8.5.15) + "@csstools/postcss-color-mix-function": 2.0.19(postcss@8.5.15) + "@csstools/postcss-content-alt-text": 1.0.0(postcss@8.5.15) + "@csstools/postcss-exponential-functions": 1.0.9(postcss@8.5.15) + "@csstools/postcss-font-format-keywords": 3.0.2(postcss@8.5.15) + "@csstools/postcss-gamut-mapping": 1.0.11(postcss@8.5.15) + "@csstools/postcss-gradients-interpolation-method": 4.0.20(postcss@8.5.15) + "@csstools/postcss-hwb-function": 3.0.18(postcss@8.5.15) + "@csstools/postcss-ic-unit": 3.0.7(postcss@8.5.15) + "@csstools/postcss-initial": 1.0.1(postcss@8.5.15) + "@csstools/postcss-is-pseudo-class": 4.0.8(postcss@8.5.15) + "@csstools/postcss-light-dark-function": 1.0.8(postcss@8.5.15) + "@csstools/postcss-logical-float-and-clear": 2.0.1(postcss@8.5.15) + "@csstools/postcss-logical-overflow": 1.0.1(postcss@8.5.15) + "@csstools/postcss-logical-overscroll-behavior": 1.0.1(postcss@8.5.15) + "@csstools/postcss-logical-resize": 2.0.1(postcss@8.5.15) + "@csstools/postcss-logical-viewport-units": 2.0.11(postcss@8.5.15) + "@csstools/postcss-media-minmax": 1.1.8(postcss@8.5.15) + "@csstools/postcss-media-queries-aspect-ratio-number-values": 2.0.11(postcss@8.5.15) + "@csstools/postcss-nested-calc": 3.0.2(postcss@8.5.15) + "@csstools/postcss-normalize-display-values": 3.0.2(postcss@8.5.15) + "@csstools/postcss-oklab-function": 3.0.19(postcss@8.5.15) + "@csstools/postcss-progressive-custom-properties": 3.3.0(postcss@8.5.15) + "@csstools/postcss-relative-color-syntax": 2.0.19(postcss@8.5.15) + "@csstools/postcss-scope-pseudo-class": 3.0.1(postcss@8.5.15) + "@csstools/postcss-stepped-value-functions": 3.0.10(postcss@8.5.15) + "@csstools/postcss-text-decoration-shorthand": 3.0.7(postcss@8.5.15) + "@csstools/postcss-trigonometric-functions": 3.0.10(postcss@8.5.15) + "@csstools/postcss-unset-value": 3.0.1(postcss@8.5.15) autoprefixer: 10.5.0(postcss@8.5.15) browserslist: 4.28.2 css-blank-pseudo: 6.0.2(postcss@8.5.15) @@ -72540,7 +78019,7 @@ snapshots: postcss-pseudo-class-any-link@9.0.2(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-reduce-initial@4.0.3: dependencies: @@ -72567,10 +78046,10 @@ snapshots: caniuse-api: 3.0.0 postcss: 8.5.15 - postcss-reduce-initial@8.0.0(postcss@8.5.15): + postcss-reduce-initial@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 - caniuse-api: 3.0.0 + caniuse-api: 4.0.0 postcss: 8.5.15 postcss-reduce-transforms@4.0.2: @@ -72595,7 +78074,7 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@8.0.0(postcss@8.5.15): + postcss-reduce-transforms@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72606,10 +78085,6 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@6.0.0(postcss@8.5.15): - dependencies: - postcss: 8.5.15 - postcss-safe-parser@7.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -72621,7 +78096,7 @@ snapshots: postcss-selector-not@7.0.2(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-selector-parser@3.1.2: dependencies: @@ -72629,12 +78104,12 @@ snapshots: indexes-of: 1.0.1 uniq: 1.0.1 - postcss-selector-parser@6.1.2: + postcss-selector-parser@6.1.4: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: + postcss-selector-parser@7.1.4: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -72663,7 +78138,7 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 4.0.1 - postcss-svgo@8.0.0(postcss@8.5.15): + postcss-svgo@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-value-parser: 4.2.0 @@ -72678,22 +78153,22 @@ snapshots: postcss-unique-selectors@5.1.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-unique-selectors@6.0.4(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-unique-selectors@7.0.7(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - postcss-unique-selectors@8.0.0(postcss@8.5.15): + postcss-unique-selectors@8.0.1(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-url@10.1.4(postcss@8.5.15): dependencies: @@ -72712,19 +78187,6 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@5.2.18: - dependencies: - chalk: 1.1.3 - js-base64: 2.6.4 - source-map: 0.5.7 - supports-color: 3.2.3 - - postcss@6.0.23: - dependencies: - chalk: 2.4.2 - source-map: 0.6.1 - supports-color: 5.5.0 - postcss@7.0.39: dependencies: picocolors: 0.2.1 @@ -72736,12 +78198,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.12: - dependencies: - nanoid: 3.3.12 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.15: dependencies: nanoid: 3.3.12 @@ -72758,6 +78214,10 @@ snapshots: dependencies: xtend: 4.0.2 + posthtml-match-helper@2.0.3(posthtml@0.16.7): + dependencies: + posthtml: 0.16.7 + posthtml-parser@0.11.0: dependencies: htmlparser2: 7.2.0 @@ -72766,13 +78226,6 @@ snapshots: dependencies: is-json: 2.0.1 - posthtml-urls@1.0.0: - dependencies: - http-equiv-refresh: 1.0.0 - list-to-array: 1.1.0 - parse-srcset: 1.0.2 - promise-each: 2.2.0 - posthtml@0.16.7: dependencies: posthtml-parser: 0.11.0 @@ -72786,93 +78239,93 @@ snapshots: powershell-utils@0.2.0: {} - preact-cli@3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.4.1(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.29.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-transform-object-assign': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@preact/async-loader': 3.0.2(preact@10.29.2) - '@prefresh/babel-plugin': 0.4.4 - '@prefresh/webpack': 3.3.4(@prefresh/babel-plugin@0.4.4)(preact@10.29.2)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - '@types/webpack': 4.41.40 + preact-cli@3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): + dependencies: + "@babel/core": 7.29.0 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-proposal-object-rest-spread": 7.20.7(@babel/core@7.29.0) + "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.29.0) + "@babel/plugin-transform-object-assign": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-react-jsx": 7.29.7(@babel/core@7.29.0) + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.0) + "@preact/async-loader": 3.0.2(preact@10.29.2) + "@prefresh/babel-plugin": 0.4.4 + "@prefresh/webpack": 3.3.4(@prefresh/babel-plugin@0.4.4)(preact@10.29.2)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + "@types/webpack": 4.41.40 autoprefixer: 10.5.0(postcss@8.5.15) - babel-esm-plugin: 0.9.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + babel-esm-plugin: 0.9.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 browserslist: 4.28.2 - compression-webpack-plugin: 6.1.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + compression-webpack-plugin: 6.1.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) console-clear: 1.1.1 - copy-webpack-plugin: 6.4.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - critters-webpack-plugin: 2.5.0(html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)))) + copy-webpack-plugin: 6.4.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + critters-webpack-plugin: 2.5.0(html-webpack-plugin@3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)))) cross-spawn-promise: 0.10.2 - css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) dotenv: 16.6.1 ejs-loader: 0.5.0 envinfo: 7.21.0 esm: 3.2.25 - file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) get-port: 5.1.1 gittar: 0.1.1 glob: 8.1.0 html-webpack-exclude-assets-plugin: 0.0.7 - html-webpack-plugin: 3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + html-webpack-plugin: 3.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ip: 1.1.9 isomorphic-unfetch: 3.1.0(encoding@0.1.13) kleur: 4.1.5 loader-utils: 2.0.4 - mini-css-extract-plugin: 1.6.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + mini-css-extract-plugin: 1.6.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) minimatch: 3.1.5 native-url: 0.3.4 - optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ora: 5.4.1 - pnp-webpack-plugin: 1.7.0(typescript@5.9.3) + pnp-webpack-plugin: 1.7.0(typescript@6.0.3) postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)) - postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) preact: 10.29.2 preact-render-to-string: 6.7.0(preact@10.29.2) - progress-bar-webpack-plugin: 2.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + progress-bar-webpack-plugin: 2.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) promise-polyfill: 8.3.0 prompts: 2.4.2 - raw-loader: 4.0.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + raw-loader: 4.0.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) react-refresh: 0.10.0 rimraf: 3.0.2 sade: 1.8.1 - size-plugin: 3.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + size-plugin: 3.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) source-map: 0.7.6 - source-map-loader: 1.1.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + source-map-loader: 1.1.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) stack-trace: 0.0.10 - style-loader: 2.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + style-loader: 2.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) update-notifier: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) validate-npm-package-name: 4.0.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) webpack-fix-style-only-entries: 0.6.1 - webpack-manifest-plugin: 4.1.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-manifest-plugin: 4.1.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) webpack-merge: 5.10.0 webpack-plugin-replace: 1.2.0 which: 2.0.2 - workbox-cacheable-response: 6.5.4 + workbox-cacheable-response: 6.6.0 workbox-core: 6.6.0 workbox-precaching: 6.6.0 workbox-routing: 6.6.0 workbox-strategies: 6.6.0 - workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - - '@types/babel__core' + - "@types/babel__core" - bluebird - bufferutil - debug @@ -72926,27 +78379,27 @@ snapshots: prettier-plugin-astro@0.14.1: dependencies: - '@astrojs/compiler': 2.13.1 - prettier: 3.8.3 + "@astrojs/compiler": 2.13.1 + prettier: 3.8.4 sass-formatter: 0.7.9 - prettier-plugin-multiline-arrays@4.1.8(prettier@3.8.3): + prettier-plugin-multiline-arrays@4.1.9(prettier@3.8.4): dependencies: - '@augment-vir/assert': 31.70.1 - '@augment-vir/common': 31.70.1 - prettier: 3.8.3 - proxy-vir: 2.0.2 + "@augment-vir/assert": 31.73.1 + "@augment-vir/common": 31.73.1 + prettier: 3.8.4 + proxy-vir: 2.0.3 - prettier-plugin-svelte@4.0.1(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)): + prettier-plugin-svelte@4.1.1(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1)): dependencies: - prettier: 3.8.3 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + prettier: 3.8.4 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) prettier@2.8.8: {} prettier@3.8.2: {} - prettier@3.8.3: {} + prettier@3.8.4: {} pretty-bytes@4.0.2: {} @@ -72972,16 +78425,16 @@ snapshots: pretty-format@29.7.0: dependencies: - '@jest/schemas': 29.6.3 + "@jest/schemas": 29.6.3 ansi-styles: 5.2.0 react-is: 18.3.1 pretty-format@30.4.1: dependencies: - '@jest/schemas': 30.4.1 + "@jest/schemas": 30.4.1 ansi-styles: 5.2.0 react-is-18: react-is@18.3.1 - react-is-19: react-is@19.2.6 + react-is-19: react-is@19.2.7 pretty-ms@9.3.0: dependencies: @@ -73011,18 +78464,18 @@ snapshots: proggy@3.0.0: {} - progress-bar-webpack-plugin@2.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + progress-bar-webpack-plugin@2.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 3.0.0 progress: 2.0.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - progress-webpack-plugin@1.0.16(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + progress-webpack-plugin@1.0.16(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 2.4.2 figures: 2.0.0 log-update: 2.3.0 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) progress@2.0.3: {} @@ -73030,10 +78483,6 @@ snapshots: promise-call-limit@3.0.2: {} - promise-each@2.2.0: - dependencies: - any-promise: 0.1.0 - promise-inflight@1.0.1(bluebird@3.7.2): optionalDependencies: bluebird: 3.7.2 @@ -73078,32 +78527,12 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 - property-information@7.1.0: {} + property-information@7.2.0: {} proto-list@1.2.4: {} protocols@2.0.2: {} - protractor@7.0.0: - dependencies: - '@types/q': 0.0.32 - '@types/selenium-webdriver': 3.0.26 - blocking-proxy: 1.0.1 - browserstack: 1.6.1 - chalk: 1.1.3 - glob: 7.2.3 - jasmine: 2.8.0 - jasminewd2: 2.2.0 - q: 1.4.1 - saucelabs: 1.5.0 - selenium-webdriver: 3.6.0 - source-map-support: 0.4.18 - webdriver-js-extender: 2.1.0 - webdriver-manager: 12.1.9 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -73112,7 +78541,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -73126,10 +78555,10 @@ snapshots: proxy-from-env@2.1.0: {} - proxy-vir@2.0.2: + proxy-vir@2.0.3: dependencies: - '@augment-vir/assert': 31.70.1 - '@augment-vir/common': 31.70.1 + "@augment-vir/assert": 31.73.1 + "@augment-vir/common": 31.73.1 prr@1.0.1: {} @@ -73152,7 +78581,7 @@ snapshots: publint@0.3.21: dependencies: - '@publint/pack': 0.1.4 + "@publint/pack": 0.1.4 package-manager-detector: 1.6.0 picocolors: 1.1.1 sade: 1.8.1 @@ -73254,11 +78683,11 @@ snapshots: dependencies: escape-goat: 4.0.0 - puppeteer-core@23.11.1: + puppeteer-core@23.11.1(supports-color@8.1.1): dependencies: - '@puppeteer/browsers': 2.6.1 + "@puppeteer/browsers": 2.6.1(supports-color@8.1.1) chromium-bidi: 0.11.0(devtools-protocol@0.0.1367902) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) devtools-protocol: 0.0.1367902 typed-query-selector: 2.12.2 ws: 8.21.0 @@ -73270,11 +78699,11 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.43.1: + puppeteer-core@24.43.1(supports-color@8.1.1): dependencies: - '@puppeteer/browsers': 2.13.2 + "@puppeteer/browsers": 2.13.2(supports-color@8.1.1) chromium-bidi: 14.0.0(devtools-protocol@0.0.1608973) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) devtools-protocol: 0.0.1608973 typed-query-selector: 2.12.2 webdriver-bidi-protocol: 0.4.1 @@ -73289,7 +78718,7 @@ snapshots: puppeteer-core@25.1.0: dependencies: - '@puppeteer/browsers': 3.0.4 + "@puppeteer/browsers": 3.0.4 chromium-bidi: 16.0.1(devtools-protocol@0.0.1624250) devtools-protocol: 0.0.1624250 typed-query-selector: 2.12.2 @@ -73302,7 +78731,7 @@ snapshots: puppeteer@25.1.0: dependencies: - '@puppeteer/browsers': 3.0.4 + "@puppeteer/browsers": 3.0.4 chromium-bidi: 16.0.1(devtools-protocol@0.0.1624250) devtools-protocol: 0.0.1624250 lilconfig: 3.1.3 @@ -73321,8 +78750,6 @@ snapshots: pvutils@1.1.5: {} - q@1.4.1: {} - q@1.5.1: {} qified@0.10.1: @@ -73333,7 +78760,7 @@ snapshots: qs@6.15.2: dependencies: - side-channel: 1.1.0 + side-channel: 1.1.1 qs@6.5.5: {} @@ -73350,14 +78777,10 @@ snapshots: querystring@0.2.1: {} - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} quick-lru@4.0.1: {} - quick-lru@5.1.1: {} - quick-temp@0.1.9: dependencies: mktemp: 2.0.3 @@ -73370,7 +78793,7 @@ snapshots: qunit-theme-ember@1.0.0: {} - qunit@2.25.0: + qunit@2.26.0: dependencies: commander: 7.2.0 node-watch: 0.7.3 @@ -73419,11 +78842,11 @@ snapshots: iconv-lite: 0.7.2 unpipe: 1.0.0 - raw-loader@4.0.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + raw-loader@4.0.2(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) rawth@3.0.0: dependencies: @@ -73447,31 +78870,31 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re-resizable@6.11.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + re-resizable@6.11.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - react-autosize-textarea@7.1.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + react-autosize-textarea@7.1.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: autosize: 4.0.4 line-height: 0.3.1 prop-types: 15.8.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - react-colorful@5.7.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + react-colorful@5.7.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) - react-day-picker@9.14.0(react@19.2.6): + react-day-picker@9.14.0(react@19.2.7): dependencies: - '@date-fns/tz': 1.5.0 - '@tabby_ai/hijri-converter': 1.0.5 - date-fns: 4.3.0 + "@date-fns/tz": 1.5.0 + "@tabby_ai/hijri-converter": 1.0.5 + date-fns: 4.4.0 date-fns-jalali: 4.1.0-0 - react: 19.2.6 + react: 19.2.7 react-dom@18.3.1(react@18.3.1): dependencies: @@ -73479,16 +78902,16 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-dom@19.2.6(react@19.2.6): + react-dom@19.2.7(react@19.2.7): dependencies: - react: 19.2.6 + react: 19.2.7 scheduler: 0.27.0 - react-easy-crop@5.5.7(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + react-easy-crop@5.5.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: normalize-wheel: 1.0.1 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) tslib: 2.8.1 react-is@16.13.1: {} @@ -73497,44 +78920,44 @@ snapshots: react-is@18.3.1: {} - react-is@19.2.6: {} + react-is@19.2.7: {} react-refresh@0.10.0: {} react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.29)(react@19.2.6): + react-remove-scroll-bar@2.3.8(@types/react@18.3.31)(react@19.2.7): dependencies: - react: 19.2.6 - react-style-singleton: 2.2.3(@types/react@18.3.29)(react@19.2.6) + react: 19.2.7 + react-style-singleton: 2.2.3(@types/react@18.3.31)(react@19.2.7) tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - react-remove-scroll@2.7.2(@types/react@18.3.29)(react@19.2.6): + react-remove-scroll@2.7.2(@types/react@18.3.31)(react@19.2.7): dependencies: - react: 19.2.6 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.29)(react@19.2.6) - react-style-singleton: 2.2.3(@types/react@18.3.29)(react@19.2.6) + react: 19.2.7 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.31)(react@19.2.7) + react-style-singleton: 2.2.3(@types/react@18.3.31)(react@19.2.7) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.29)(react@19.2.6) - use-sidecar: 1.1.3(@types/react@18.3.29)(react@19.2.6) + use-callback-ref: 1.3.3(@types/react@18.3.31)(react@19.2.7) + use-sidecar: 1.1.3(@types/react@18.3.31)(react@19.2.7) optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - react-style-singleton@2.2.3(@types/react@18.3.29)(react@19.2.6): + react-style-singleton@2.2.3(@types/react@18.3.31)(react@19.2.7): dependencies: get-nonce: 1.0.1 - react: 19.2.6 + react: 19.2.7 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 react@18.3.1: dependencies: loose-envify: 1.4.0 - react@19.2.6: {} + react@19.2.7: {} read-cache@1.0.0: dependencies: @@ -73560,7 +78983,7 @@ snapshots: dependencies: find-up-simple: 1.0.1 read-pkg: 10.1.0 - type-fest: 5.6.0 + type-fest: 5.7.0 read-pkg-up@3.0.0: dependencies: @@ -73580,10 +79003,10 @@ snapshots: read-pkg@10.1.0: dependencies: - '@types/normalize-package-data': 2.4.4 + "@types/normalize-package-data": 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.6.0 + type-fest: 5.7.0 unicorn-magic: 0.4.0 read-pkg@3.0.0: @@ -73594,7 +79017,7 @@ snapshots: read-pkg@5.2.0: dependencies: - '@types/normalize-package-data': 2.4.4 + "@types/normalize-package-data": 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -73679,18 +79102,6 @@ snapshots: dependencies: resolve: 1.22.12 - recursive-copy@2.0.14: - dependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - junk: 1.0.3 - maximatch: 0.1.0 - mkdirp: 0.5.6 - pify: 2.3.0 - promise: 7.3.1 - rimraf: 2.7.1 - slash: 1.0.0 - redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -73748,8 +79159,6 @@ snapshots: extend-shallow: 3.0.2 safe-regex: 1.1.0 - regex-parser@2.3.1: {} - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -73784,7 +79193,7 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.1 + regjsparser: 0.13.2 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 @@ -73794,7 +79203,7 @@ snapshots: registry-auth-token@5.1.1: dependencies: - '@pnpm/npm-conf': 3.0.2 + "@pnpm/npm-conf": 3.0.3 registry-url@5.1.0: dependencies: @@ -73812,31 +79221,31 @@ snapshots: dependencies: jsesc: 0.5.0 - regjsparser@0.13.1: + regjsparser@0.13.2: dependencies: jsesc: 3.1.0 rehype-parse@9.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-from-html: 2.0.3 unified: 11.0.5 rehype-raw@7.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw: 9.1.0 vfile: 6.0.3 rehype-stringify@10.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.5 unified: 11.0.5 rehype@13.0.2: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 rehype-parse: 9.0.1 rehype-stringify: 10.0.1 unified: 11.0.5 @@ -73849,7 +79258,7 @@ snapshots: remark-gfm@4.0.1: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-gfm: 3.1.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 @@ -73860,7 +79269,7 @@ snapshots: remark-parse@11.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-from-markdown: 2.0.3 micromark-util-types: 2.0.2 unified: 11.0.5 @@ -73887,8 +79296,8 @@ snapshots: remark-rehype@11.1.2: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 mdast-util-to-hast: 13.2.1 unified: 11.0.5 vfile: 6.0.3 @@ -73902,7 +79311,7 @@ snapshots: remark-stringify@11.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-to-markdown: 2.1.2 unified: 11.0.5 @@ -73916,9 +79325,9 @@ snapshots: remove-types@1.0.0: dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.0) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -73994,9 +79403,9 @@ snapshots: require-from-string@2.0.2: {} - require-in-the-middle@7.5.2: + require-in-the-middle@7.5.2(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) module-details-from-path: 1.0.4 resolve: 1.22.12 transitivePeerDependencies: @@ -74026,8 +79435,6 @@ snapshots: resize-observer-polyfill@1.5.1: {} - resolve-alpn@1.2.1: {} - resolve-bin@0.4.3: dependencies: find-parent-dir: 0.3.1 @@ -74082,14 +79489,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve-url-loader@5.0.0: - dependencies: - adjust-sourcemap-loader: 4.0.0 - convert-source-map: 1.9.0 - loader-utils: 2.0.4 - postcss: 8.5.15 - source-map: 0.6.1 - resolve-url@0.2.1: {} resolve.exports@2.0.3: {} @@ -74114,10 +79513,6 @@ snapshots: dependencies: lowercase-keys: 1.0.1 - responselike@2.0.1: - dependencies: - lowercase-keys: 2.0.0 - restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -74137,25 +79532,25 @@ snapshots: retext-latin@4.0.0: dependencies: - '@types/nlcst': 2.0.3 + "@types/nlcst": 2.0.3 parse-latin: 7.0.0 unified: 11.0.5 retext-smartypants@6.2.0: dependencies: - '@types/nlcst': 2.0.3 + "@types/nlcst": 2.0.3 nlcst-to-string: 4.0.0 unist-util-visit: 5.1.0 retext-stringify@4.0.0: dependencies: - '@types/nlcst': 2.0.3 + "@types/nlcst": 2.0.3 nlcst-to-string: 4.0.0 unified: 11.0.5 retext@9.0.0: dependencies: - '@types/nlcst': 2.0.3 + "@types/nlcst": 2.0.3 retext-latin: 4.0.0 retext-stringify: 4.0.0 unified: 11.0.5 @@ -74191,130 +79586,144 @@ snapshots: riot@10.1.4: dependencies: - '@riotjs/dom-bindings': 10.0.5 + "@riotjs/dom-bindings": 10.0.5 ripemd160@2.0.3: dependencies: hash-base: 3.1.2 inherits: 2.0.4 - roarr@2.15.4: - dependencies: - boolean: 3.2.0 - detect-node: 2.1.0 - globalthis: 1.0.4 - json-stringify-safe: 5.0.1 - semver-compare: 1.0.0 - sprintf-js: 1.1.3 - optional: true - robots-parser@3.0.1: {} - rolldown-plugin-dts@0.25.1(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(rolldown@1.0.2)(typescript@6.0.3): + rolldown-plugin-dts@0.26.0(oxc-resolver@11.20.0)(rolldown@1.1.1)(typescript@6.0.3)(vue-tsc@3.3.5(typescript@6.0.3)): dependencies: - '@babel/generator': 8.0.0-rc.5 - '@babel/helper-validator-identifier': 8.0.0-rc.5 - '@babel/parser': 8.0.0-rc.4 - ast-kit: 3.0.0-beta.1 + "@babel/generator": 8.0.0 + "@babel/helper-validator-identifier": 8.0.0 + "@babel/parser": 8.0.0 + ast-kit: 3.0.0 birpc: 4.0.0 - dts-resolver: 3.0.0(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)) + dts-resolver: 3.0.0(oxc-resolver@11.20.0) get-tsconfig: 5.0.0-beta.5 - obug: 2.1.1 - rolldown: 1.0.2 + obug: 2.1.3 + rolldown: 1.1.1 optionalDependencies: typescript: 6.0.3 + vue-tsc: 3.3.5(typescript@6.0.3) transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.15: + rolldown@1.0.0-rc.12(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1): dependencies: - '@oxc-project/types': 0.124.0 - '@rolldown/pluginutils': 1.0.0-rc.15 + "@oxc-project/types": 0.122.0 + "@rolldown/pluginutils": 1.0.0-rc.12 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-x64': 1.0.0-rc.15 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 - - rolldown@1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): - dependencies: - '@oxc-project/types': 0.113.0 - '@rolldown/pluginutils': 1.0.0-rc.4 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.4 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.4 - '@rolldown/binding-darwin-x64': 1.0.0-rc.4 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.4 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.4 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.4 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.4 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.4 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.4 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.4 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.4 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.4 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + "@rolldown/binding-android-arm64": 1.0.0-rc.12 + "@rolldown/binding-darwin-arm64": 1.0.0-rc.12 + "@rolldown/binding-darwin-x64": 1.0.0-rc.12 + "@rolldown/binding-freebsd-x64": 1.0.0-rc.12 + "@rolldown/binding-linux-arm-gnueabihf": 1.0.0-rc.12 + "@rolldown/binding-linux-arm64-gnu": 1.0.0-rc.12 + "@rolldown/binding-linux-arm64-musl": 1.0.0-rc.12 + "@rolldown/binding-linux-ppc64-gnu": 1.0.0-rc.12 + "@rolldown/binding-linux-s390x-gnu": 1.0.0-rc.12 + "@rolldown/binding-linux-x64-gnu": 1.0.0-rc.12 + "@rolldown/binding-linux-x64-musl": 1.0.0-rc.12 + "@rolldown/binding-openharmony-arm64": 1.0.0-rc.12 + "@rolldown/binding-wasm32-wasi": 1.0.0-rc.12(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1) + "@rolldown/binding-win32-arm64-msvc": 1.0.0-rc.12 + "@rolldown/binding-win32-x64-msvc": 1.0.0-rc.12 + transitivePeerDependencies: + - "@emnapi/core" + - "@emnapi/runtime" rolldown@1.0.2: dependencies: - '@oxc-project/types': 0.132.0 - '@rolldown/pluginutils': 1.0.1 + "@oxc-project/types": 0.132.0 + "@rolldown/pluginutils": 1.0.1 + optionalDependencies: + "@rolldown/binding-android-arm64": 1.0.2 + "@rolldown/binding-darwin-arm64": 1.0.2 + "@rolldown/binding-darwin-x64": 1.0.2 + "@rolldown/binding-freebsd-x64": 1.0.2 + "@rolldown/binding-linux-arm-gnueabihf": 1.0.2 + "@rolldown/binding-linux-arm64-gnu": 1.0.2 + "@rolldown/binding-linux-arm64-musl": 1.0.2 + "@rolldown/binding-linux-ppc64-gnu": 1.0.2 + "@rolldown/binding-linux-s390x-gnu": 1.0.2 + "@rolldown/binding-linux-x64-gnu": 1.0.2 + "@rolldown/binding-linux-x64-musl": 1.0.2 + "@rolldown/binding-openharmony-arm64": 1.0.2 + "@rolldown/binding-wasm32-wasi": 1.0.2 + "@rolldown/binding-win32-arm64-msvc": 1.0.2 + "@rolldown/binding-win32-x64-msvc": 1.0.2 + + rolldown@1.0.3: + dependencies: + "@oxc-project/types": 0.133.0 + "@rolldown/pluginutils": 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.2 - '@rolldown/binding-darwin-arm64': 1.0.2 - '@rolldown/binding-darwin-x64': 1.0.2 - '@rolldown/binding-freebsd-x64': 1.0.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 - '@rolldown/binding-linux-arm64-gnu': 1.0.2 - '@rolldown/binding-linux-arm64-musl': 1.0.2 - '@rolldown/binding-linux-ppc64-gnu': 1.0.2 - '@rolldown/binding-linux-s390x-gnu': 1.0.2 - '@rolldown/binding-linux-x64-gnu': 1.0.2 - '@rolldown/binding-linux-x64-musl': 1.0.2 - '@rolldown/binding-openharmony-arm64': 1.0.2 - '@rolldown/binding-wasm32-wasi': 1.0.2 - '@rolldown/binding-win32-arm64-msvc': 1.0.2 - '@rolldown/binding-win32-x64-msvc': 1.0.2 - - rollup-plugin-css-only@4.5.5(rollup@4.60.4): - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - rollup: 4.60.4 - - rollup-plugin-dts@6.4.1(rollup@4.60.4)(typescript@5.9.3): - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 + "@rolldown/binding-android-arm64": 1.0.3 + "@rolldown/binding-darwin-arm64": 1.0.3 + "@rolldown/binding-darwin-x64": 1.0.3 + "@rolldown/binding-freebsd-x64": 1.0.3 + "@rolldown/binding-linux-arm-gnueabihf": 1.0.3 + "@rolldown/binding-linux-arm64-gnu": 1.0.3 + "@rolldown/binding-linux-arm64-musl": 1.0.3 + "@rolldown/binding-linux-ppc64-gnu": 1.0.3 + "@rolldown/binding-linux-s390x-gnu": 1.0.3 + "@rolldown/binding-linux-x64-gnu": 1.0.3 + "@rolldown/binding-linux-x64-musl": 1.0.3 + "@rolldown/binding-openharmony-arm64": 1.0.3 + "@rolldown/binding-wasm32-wasi": 1.0.3 + "@rolldown/binding-win32-arm64-msvc": 1.0.3 + "@rolldown/binding-win32-x64-msvc": 1.0.3 + + rolldown@1.1.1: + dependencies: + "@oxc-project/types": 0.135.0 + "@rolldown/pluginutils": 1.0.1 + optionalDependencies: + "@rolldown/binding-android-arm64": 1.1.1 + "@rolldown/binding-darwin-arm64": 1.1.1 + "@rolldown/binding-darwin-x64": 1.1.1 + "@rolldown/binding-freebsd-x64": 1.1.1 + "@rolldown/binding-linux-arm-gnueabihf": 1.1.1 + "@rolldown/binding-linux-arm64-gnu": 1.1.1 + "@rolldown/binding-linux-arm64-musl": 1.1.1 + "@rolldown/binding-linux-ppc64-gnu": 1.1.1 + "@rolldown/binding-linux-s390x-gnu": 1.1.1 + "@rolldown/binding-linux-x64-gnu": 1.1.1 + "@rolldown/binding-linux-x64-musl": 1.1.1 + "@rolldown/binding-openharmony-arm64": 1.1.1 + "@rolldown/binding-wasm32-wasi": 1.1.1 + "@rolldown/binding-win32-arm64-msvc": 1.1.1 + "@rolldown/binding-win32-x64-msvc": 1.1.1 + + rollup-plugin-css-only@4.5.5(rollup@4.62.0): + dependencies: + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + rollup: 4.62.0 + + rollup-plugin-dts@6.4.1(rollup@4.62.0)(typescript@6.0.3): + dependencies: + "@jridgewell/remapping": 2.3.5 + "@jridgewell/sourcemap-codec": 1.5.5 convert-source-map: 2.0.0 magic-string: 0.30.21 - rollup: 4.60.4 - typescript: 5.9.3 + rollup: 4.62.0 + typescript: 6.0.3 optionalDependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 - rollup-plugin-filesize@10.0.0: + rollup-plugin-filesize@10.0.0(bluebird@3.7.2)(supports-color@8.1.1): dependencies: - '@babel/runtime': 7.29.2 + "@babel/runtime": 7.29.7 boxen: 5.1.2 brotli-size: 4.0.0 colors: 1.4.0 filesize: 6.4.0 gzip-size: 6.0.0 - pacote: 15.2.0 + pacote: 15.2.0(bluebird@3.7.2)(supports-color@8.1.1) terser: 5.48.0 transitivePeerDependencies: - bluebird @@ -74327,130 +79736,70 @@ snapshots: - bufferutil - utf-8-validate - rollup-plugin-riot@10.0.0(rollup@4.60.4): + rollup-plugin-riot@10.0.0(rollup@4.62.0): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) transitivePeerDependencies: - rollup - rollup-plugin-svelte@7.2.3(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0)): + rollup-plugin-svelte@7.2.3(rollup@4.62.0)(svelte@5.56.3(@typescript-eslint/types@8.61.1)): dependencies: - '@rollup/pluginutils': 4.2.1 + "@rollup/pluginutils": 4.2.1 resolve.exports: 2.0.3 - rollup: 4.60.4 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + rollup: 4.62.0 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) rollup-plugin-terser@7.0.2(rollup@2.80.0): dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 jest-worker: 26.6.2 rollup: 2.80.0 serialize-javascript: 4.0.0 terser: 5.48.0 - rollup-plugin-terser@7.0.2(rollup@4.60.4): + rollup-plugin-terser@7.0.2(rollup@4.62.0): dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 jest-worker: 26.6.2 - rollup: 4.60.4 + rollup: 4.62.0 serialize-javascript: 4.0.0 terser: 5.48.0 - rollup-plugin-typescript2@0.35.0(rollup@4.60.4)(typescript@5.9.3): + rollup-plugin-typescript2@0.37.0(rollup@4.62.0)(typescript@6.0.3): dependencies: - '@rollup/pluginutils': 4.2.1 + "@rollup/pluginutils": 4.2.1 find-cache-dir: 3.3.2 fs-extra: 10.1.0 - rollup: 4.60.4 - semver: 7.8.1 + rollup: 4.62.0 + semver: 7.8.4 tslib: 2.8.1 - typescript: 5.9.3 + typescript: 6.0.3 - rollup-plugin-typescript@1.0.1(tslib@2.8.1)(typescript@5.9.3): + rollup-plugin-typescript@1.0.1(tslib@2.8.1)(typescript@6.0.3): dependencies: resolve: 1.22.12 rollup-pluginutils: 2.8.2 tslib: 2.8.1 - typescript: 5.9.3 + typescript: 6.0.3 - rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4): + rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0): dependencies: open: 11.0.0 picomatch: 4.0.4 source-map: 0.7.6 yargs: 18.0.0 optionalDependencies: - rolldown: 1.0.2 - rollup: 4.60.4 + rolldown: 1.1.1 + rollup: 4.62.0 - rollup-plugin-vue@5.1.9(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(postcss@8.5.15)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16): + rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.5.38)(supports-color@8.1.1): dependencies: - '@vue/component-compiler': 4.2.4(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(postcss@8.5.15)(underscore@1.13.8)(vue-template-compiler@2.7.16) - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - debug: 4.4.3(supports-color@5.5.0) - hash-sum: 1.0.2 - magic-string: 0.25.9 - querystring: 0.2.1 + "@vue/compiler-sfc": 3.5.38 + debug: 4.4.3(supports-color@8.1.1) + hash-sum: 2.0.0 rollup-pluginutils: 2.8.2 - source-map: 0.7.3 - vue-runtime-helpers: 1.1.2 - vue-template-compiler: 2.7.16 transitivePeerDependencies: - - arc-templates - - atpl - - babel-core - - bracket-template - - coffee-script - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jade - - jazz - - jqtpl - - just - - liquid-node - - liquor - - lodash - - marko - - mote - - mustache - - nunjucks - - plates - - postcss - - pug - - qejs - - ractive - - razor-tmpl - - react - - react-dom - - slm - - squirrelly - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-jade - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore - - vash - - velocityjs - - walrus - - whiskers rollup-pluginutils@2.8.2: dependencies: @@ -74460,35 +79809,66 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.60.4: + rollup@4.60.2: + dependencies: + "@types/estree": 1.0.8 + optionalDependencies: + "@rollup/rollup-android-arm-eabi": 4.60.2 + "@rollup/rollup-android-arm64": 4.60.2 + "@rollup/rollup-darwin-arm64": 4.60.2 + "@rollup/rollup-darwin-x64": 4.60.2 + "@rollup/rollup-freebsd-arm64": 4.60.2 + "@rollup/rollup-freebsd-x64": 4.60.2 + "@rollup/rollup-linux-arm-gnueabihf": 4.60.2 + "@rollup/rollup-linux-arm-musleabihf": 4.60.2 + "@rollup/rollup-linux-arm64-gnu": 4.60.2 + "@rollup/rollup-linux-arm64-musl": 4.60.2 + "@rollup/rollup-linux-loong64-gnu": 4.60.2 + "@rollup/rollup-linux-loong64-musl": 4.60.2 + "@rollup/rollup-linux-ppc64-gnu": 4.60.2 + "@rollup/rollup-linux-ppc64-musl": 4.60.2 + "@rollup/rollup-linux-riscv64-gnu": 4.60.2 + "@rollup/rollup-linux-riscv64-musl": 4.60.2 + "@rollup/rollup-linux-s390x-gnu": 4.60.2 + "@rollup/rollup-linux-x64-gnu": 4.60.2 + "@rollup/rollup-linux-x64-musl": 4.60.2 + "@rollup/rollup-openbsd-x64": 4.60.2 + "@rollup/rollup-openharmony-arm64": 4.60.2 + "@rollup/rollup-win32-arm64-msvc": 4.60.2 + "@rollup/rollup-win32-ia32-msvc": 4.60.2 + "@rollup/rollup-win32-x64-gnu": 4.60.2 + "@rollup/rollup-win32-x64-msvc": 4.60.2 + fsevents: 2.3.3 + + rollup@4.62.0: dependencies: - '@types/estree': 1.0.8 + "@types/estree": 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.4 - '@rollup/rollup-android-arm64': 4.60.4 - '@rollup/rollup-darwin-arm64': 4.60.4 - '@rollup/rollup-darwin-x64': 4.60.4 - '@rollup/rollup-freebsd-arm64': 4.60.4 - '@rollup/rollup-freebsd-x64': 4.60.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.4 - '@rollup/rollup-linux-arm-musleabihf': 4.60.4 - '@rollup/rollup-linux-arm64-gnu': 4.60.4 - '@rollup/rollup-linux-arm64-musl': 4.60.4 - '@rollup/rollup-linux-loong64-gnu': 4.60.4 - '@rollup/rollup-linux-loong64-musl': 4.60.4 - '@rollup/rollup-linux-ppc64-gnu': 4.60.4 - '@rollup/rollup-linux-ppc64-musl': 4.60.4 - '@rollup/rollup-linux-riscv64-gnu': 4.60.4 - '@rollup/rollup-linux-riscv64-musl': 4.60.4 - '@rollup/rollup-linux-s390x-gnu': 4.60.4 - '@rollup/rollup-linux-x64-gnu': 4.60.4 - '@rollup/rollup-linux-x64-musl': 4.60.4 - '@rollup/rollup-openbsd-x64': 4.60.4 - '@rollup/rollup-openharmony-arm64': 4.60.4 - '@rollup/rollup-win32-arm64-msvc': 4.60.4 - '@rollup/rollup-win32-ia32-msvc': 4.60.4 - '@rollup/rollup-win32-x64-gnu': 4.60.4 - '@rollup/rollup-win32-x64-msvc': 4.60.4 + "@rollup/rollup-android-arm-eabi": 4.62.0 + "@rollup/rollup-android-arm64": 4.62.0 + "@rollup/rollup-darwin-arm64": 4.62.0 + "@rollup/rollup-darwin-x64": 4.62.0 + "@rollup/rollup-freebsd-arm64": 4.62.0 + "@rollup/rollup-freebsd-x64": 4.62.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.62.0 + "@rollup/rollup-linux-arm-musleabihf": 4.62.0 + "@rollup/rollup-linux-arm64-gnu": 4.62.0 + "@rollup/rollup-linux-arm64-musl": 4.62.0 + "@rollup/rollup-linux-loong64-gnu": 4.62.0 + "@rollup/rollup-linux-loong64-musl": 4.62.0 + "@rollup/rollup-linux-ppc64-gnu": 4.62.0 + "@rollup/rollup-linux-ppc64-musl": 4.62.0 + "@rollup/rollup-linux-riscv64-gnu": 4.62.0 + "@rollup/rollup-linux-riscv64-musl": 4.62.0 + "@rollup/rollup-linux-s390x-gnu": 4.62.0 + "@rollup/rollup-linux-x64-gnu": 4.62.0 + "@rollup/rollup-linux-x64-musl": 4.62.0 + "@rollup/rollup-openbsd-x64": 4.62.0 + "@rollup/rollup-openharmony-arm64": 4.62.0 + "@rollup/rollup-win32-arm64-msvc": 4.62.0 + "@rollup/rollup-win32-ia32-msvc": 4.62.0 + "@rollup/rollup-win32-x64-gnu": 4.62.0 + "@rollup/rollup-win32-x64-msvc": 4.62.0 fsevents: 2.3.3 rou3@0.8.1: {} @@ -74497,7 +79877,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -74505,14 +79885,6 @@ snapshots: transitivePeerDependencies: - supports-color - router_js@8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5): - dependencies: - '@glimmer/env': 0.1.7 - route-recognizer: 0.3.4 - rsvp: 4.8.5 - - rrweb-cssom@0.7.1: {} - rrweb-cssom@0.8.0: {} rst-selector-parser@2.2.3: @@ -74616,16 +79988,9 @@ snapshots: safer-buffer@2.1.2: {} - sander@0.5.1: - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - sane@5.0.1: dependencies: - '@cnakazawa/watch': 1.0.4 + "@cnakazawa/watch": 1.0.4 anymatch: 3.1.3 capture-exit: 2.0.0 exec-sh: 0.3.6 @@ -74639,48 +80004,33 @@ snapshots: dependencies: suf-log: 2.5.3 - sass-loader@16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + sass-loader@16.0.8(sass@1.101.0)(webpack@5.107.2): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.97.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + sass: 1.101.0 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) - sass-loader@16.0.8(sass@1.100.0)(webpack@5.107.1): - dependencies: - neo-async: 2.6.2 - optionalDependencies: - sass: 1.100.0 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - - sass-loader@16.0.8(sass@1.100.0)(webpack@5.107.2): - dependencies: - neo-async: 2.6.2 + sass-loader@17.0.0(sass@1.101.0)(webpack@5.107.2): optionalDependencies: - sass: 1.100.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + sass: 1.101.0 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - sass@1.100.0: + sass@1.101.0: dependencies: chokidar: 5.0.0 - immutable: 5.1.5 + immutable: 5.1.6 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.6 + "@parcel/watcher": 2.5.6 - sass@1.97.3: + sass@1.99.0: dependencies: chokidar: 4.0.3 - immutable: 5.1.5 + immutable: 5.1.6 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.6 - - saucelabs@1.5.0: - dependencies: - https-proxy-agent: 2.2.4 - transitivePeerDependencies: - - supports-color + "@parcel/watcher": 2.5.6 sax@1.1.4: {} @@ -74712,25 +80062,25 @@ snapshots: schema-utils@2.7.0: dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 ajv: 6.15.0 ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@2.7.1: dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 ajv: 6.15.0 ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@3.3.0: dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 ajv: 6.15.0 ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@4.3.3: dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 ajv: 8.20.0 ajv-formats: 2.1.1(ajv@8.20.0) ajv-keywords: 5.1.0(ajv@8.20.0) @@ -74750,21 +80100,14 @@ snapshots: select-hose@2.0.0: {} - selenium-webdriver@3.6.0: - dependencies: - jszip: 3.10.1 - rimraf: 2.7.1 - tmp: 0.0.30 - xml2js: 0.4.23 - selfsigned@2.4.1: dependencies: - '@types/node-forge': 1.3.14 + "@types/node-forge": 1.3.14 node-forge: 1.4.0 selfsigned@5.5.0: dependencies: - '@peculiar/x509': 1.14.3 + "@peculiar/x509": 1.14.3 pkijs: 3.4.0 semiver@1.1.0: {} @@ -74791,6 +80134,8 @@ snapshots: semver@7.8.1: {} + semver@7.8.4: {} + send@0.19.2: dependencies: debug: 2.6.9 @@ -74811,7 +80156,7 @@ snapshots: send@1.2.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -74838,11 +80183,6 @@ snapshots: transitivePeerDependencies: - encoding - serialize-error@7.0.1: - dependencies: - type-fest: 0.13.1 - optional: true - serialize-javascript@4.0.0: dependencies: randombytes: 2.1.0 @@ -74959,34 +80299,34 @@ snapshots: sharp@0.34.5: dependencies: - '@img/colour': 1.1.0 + "@img/colour": 1.1.0 detect-libc: 2.1.2 - semver: 7.8.1 + semver: 7.8.4 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + "@img/sharp-darwin-arm64": 0.34.5 + "@img/sharp-darwin-x64": 0.34.5 + "@img/sharp-libvips-darwin-arm64": 1.2.4 + "@img/sharp-libvips-darwin-x64": 1.2.4 + "@img/sharp-libvips-linux-arm": 1.2.4 + "@img/sharp-libvips-linux-arm64": 1.2.4 + "@img/sharp-libvips-linux-ppc64": 1.2.4 + "@img/sharp-libvips-linux-riscv64": 1.2.4 + "@img/sharp-libvips-linux-s390x": 1.2.4 + "@img/sharp-libvips-linux-x64": 1.2.4 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 + "@img/sharp-linux-arm": 0.34.5 + "@img/sharp-linux-arm64": 0.34.5 + "@img/sharp-linux-ppc64": 0.34.5 + "@img/sharp-linux-riscv64": 0.34.5 + "@img/sharp-linux-s390x": 0.34.5 + "@img/sharp-linux-x64": 0.34.5 + "@img/sharp-linuxmusl-arm64": 0.34.5 + "@img/sharp-linuxmusl-x64": 0.34.5 + "@img/sharp-wasm32": 0.34.5 + "@img/sharp-win32-arm64": 0.34.5 + "@img/sharp-win32-ia32": 0.34.5 + "@img/sharp-win32-x64": 0.34.5 optional: true shebang-command@1.2.0: @@ -75003,33 +80343,31 @@ snapshots: shebang-regex@4.0.0: {} - shell-quote@1.8.3: {} - shell-quote@1.8.4: {} shellwords@0.1.1: {} shiki@2.5.0: dependencies: - '@shikijs/core': 2.5.0 - '@shikijs/engine-javascript': 2.5.0 - '@shikijs/engine-oniguruma': 2.5.0 - '@shikijs/langs': 2.5.0 - '@shikijs/themes': 2.5.0 - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - shiki@4.1.0: - dependencies: - '@shikijs/core': 4.1.0 - '@shikijs/engine-javascript': 4.1.0 - '@shikijs/engine-oniguruma': 4.1.0 - '@shikijs/langs': 4.1.0 - '@shikijs/themes': 4.1.0 - '@shikijs/types': 4.1.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/core": 2.5.0 + "@shikijs/engine-javascript": 2.5.0 + "@shikijs/engine-oniguruma": 2.5.0 + "@shikijs/langs": 2.5.0 + "@shikijs/themes": 2.5.0 + "@shikijs/types": 2.5.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 + + shiki@4.2.0: + dependencies: + "@shikijs/core": 4.2.0 + "@shikijs/engine-javascript": 4.2.0 + "@shikijs/engine-oniguruma": 4.2.0 + "@shikijs/langs": 4.2.0 + "@shikijs/themes": 4.2.0 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 shimmer@1.2.1: {} @@ -75057,7 +80395,7 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -75071,24 +80409,24 @@ snapshots: signal-exit@4.1.0: {} - sigstore@1.9.0: + sigstore@1.9.0(supports-color@8.1.1): dependencies: - '@sigstore/bundle': 1.1.0 - '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/sign': 1.0.0 - '@sigstore/tuf': 1.0.3 + "@sigstore/bundle": 1.1.0 + "@sigstore/protobuf-specs": 0.2.1 + "@sigstore/sign": 1.0.0 + "@sigstore/tuf": 1.0.3(supports-color@8.1.1) make-fetch-happen: 11.1.1 transitivePeerDependencies: - supports-color sigstore@4.1.1: dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 - '@sigstore/sign': 4.1.1 - '@sigstore/tuf': 4.0.2 - '@sigstore/verify': 3.1.1 + "@sigstore/bundle": 4.0.0 + "@sigstore/core": 3.2.1 + "@sigstore/protobuf-specs": 0.5.1 + "@sigstore/sign": 4.1.1 + "@sigstore/tuf": 4.0.2 + "@sigstore/verify": 3.1.1 transitivePeerDependencies: - supports-color @@ -75106,13 +80444,13 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - simple-git@3.36.0: + simple-git@3.36.0(supports-color@8.1.1): dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - '@simple-git/args-pathspec': 1.0.3 - '@simple-git/argv-parser': 1.1.1 - debug: 4.4.3(supports-color@5.5.0) + "@kwsites/file-exists": 1.1.1(supports-color@8.1.1) + "@kwsites/promise-deferred": 1.1.1 + "@simple-git/args-pathspec": 1.0.3 + "@simple-git/argv-parser": 1.1.1 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -75124,41 +80462,41 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 sinon@22.0.0: dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 15.4.0 - '@sinonjs/samsam': 10.0.2 + "@sinonjs/commons": 3.0.1 + "@sinonjs/fake-timers": 15.4.0 + "@sinonjs/samsam": 10.0.2 diff: 9.0.0 - sirv-cli@2.0.2: + sirv-cli@3.0.1: dependencies: console-clear: 1.1.1 - get-port: 3.2.0 + get-port: 5.1.1 kleur: 4.1.5 local-access: 1.1.0 sade: 1.8.1 semiver: 1.1.0 - sirv: 2.0.4 + sirv: 3.0.2 tinydate: 1.3.0 sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.29 + "@polka/url": 1.0.0-next.29 mrmime: 2.0.1 totalist: 3.0.1 sirv@3.0.2: dependencies: - '@polka/url': 1.0.0-next.29 + "@polka/url": 1.0.0-next.29 mrmime: 2.0.1 totalist: 3.0.1 sisteransi@1.0.5: {} - size-plugin@3.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + size-plugin@3.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: axios: 0.21.4 chalk: 2.4.2 @@ -75168,12 +80506,10 @@ snapshots: minimatch: 3.1.5 pretty-bytes: 5.6.0 util.promisify: 1.1.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) transitivePeerDependencies: - debug - slash@1.0.0: {} - slash@3.0.0: {} slash@4.0.0: {} @@ -75236,9 +80572,9 @@ snapshots: socket.io-adapter@1.1.2: {} - socket.io-adapter@2.5.7: + socket.io-adapter@2.5.7(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) ws: 8.20.1 transitivePeerDependencies: - bufferutil @@ -75279,10 +80615,10 @@ snapshots: transitivePeerDependencies: - supports-color - socket.io-parser@4.2.6: + socket.io-parser@4.2.6(supports-color@8.1.1): dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3(supports-color@5.5.0) + "@socket.io/component-emitter": 3.1.2 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -75299,15 +80635,15 @@ snapshots: - supports-color - utf-8-validate - socket.io@4.8.3: + socket.io@4.8.3(supports-color@8.1.1): dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.6 - debug: 4.4.3(supports-color@5.5.0) - engine.io: 6.6.8 - socket.io-adapter: 2.5.7 - socket.io-parser: 4.2.6 + debug: 4.4.3(supports-color@8.1.1) + engine.io: 6.6.8(supports-color@8.1.1) + socket.io-adapter: 2.5.7(supports-color@8.1.1) + socket.io-parser: 4.2.6(supports-color@8.1.1) transitivePeerDependencies: - bufferutil - supports-color @@ -75317,12 +80653,12 @@ snapshots: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -75330,7 +80666,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -75340,16 +80676,16 @@ snapshots: ip-address: 10.2.0 smart-buffer: 4.2.0 - solid-devtools@0.29.3(solid-js@1.9.13)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)): + solid-devtools@0.34.5(solid-js@1.9.13)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 - '@solid-devtools/debugger': 0.23.4(solid-js@1.9.13) - '@solid-devtools/shared': 0.13.2(solid-js@1.9.13) + "@babel/core": 7.29.0 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 + "@solid-devtools/debugger": 0.28.1(solid-js@1.9.13) + "@solid-devtools/shared": 0.20.0(solid-js@1.9.13) solid-js: 1.9.13 optionalDependencies: - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color @@ -75361,20 +80697,13 @@ snapshots: solid-refresh@0.6.3(solid-js@1.9.13): dependencies: - '@babel/generator': 7.29.1 - '@babel/helper-module-imports': 7.28.6 - '@babel/types': 7.29.0 + "@babel/generator": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/types": 7.29.7 solid-js: 1.9.13 transitivePeerDependencies: - supports-color - sorcery@0.11.1: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - buffer-crc32: 1.0.0 - minimist: 1.2.8 - sander: 0.5.1 - sort-keys@1.1.2: dependencies: is-plain-obj: 1.1.0 @@ -75394,32 +80723,32 @@ snapshots: get-stdin: 9.0.0 git-hooks-list: 3.2.0 is-plain-obj: 4.1.0 - semver: 7.8.1 + semver: 7.8.4 sort-object-keys: 1.1.3 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 - sort-package-json@3.6.1: + sort-package-json@3.7.1: dependencies: detect-indent: 7.0.2 detect-newline: 4.0.1 git-hooks-list: 4.2.1 is-plain-obj: 4.1.0 - semver: 7.8.1 + semver: 7.8.4 sort-object-keys: 2.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 source-list-map@2.0.1: {} source-map-js@1.2.1: {} - source-map-loader@1.1.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + source-map-loader@1.1.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: abab: 2.0.6 iconv-lite: 0.6.3 loader-utils: 2.0.4 schema-utils: 3.3.0 source-map: 0.6.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) whatwg-mimetype: 2.3.0 source-map-loader@3.0.2(webpack@5.107.2): @@ -75427,25 +80756,13 @@ snapshots: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - source-map-loader@4.0.2(webpack@5.107.1): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.1 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - - source-map-loader@5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.1 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) - source-map-loader@5.0.0(webpack@5.107.1): + source-map-loader@5.0.0(webpack@5.107.2): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) source-map-resolve@0.5.3: dependencies: @@ -75455,10 +80772,6 @@ snapshots: source-map-url: 0.4.1 urix: 0.1.0 - source-map-support@0.4.18: - dependencies: - source-map: 0.5.7 - source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -75488,8 +80801,6 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.3: {} - source-map@0.7.6: {} source-map@0.8.0-beta.0: @@ -75504,15 +80815,6 @@ snapshots: spawn-args@0.2.0: {} - spawn-wrap@2.0.0: - dependencies: - foreground-child: 2.0.0 - is-windows: 1.0.2 - make-dir: 3.1.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - which: 2.0.2 - spawn-wrap@3.0.0: dependencies: cross-spawn: 7.0.6 @@ -75549,7 +80851,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -75560,7 +80862,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -75572,7 +80874,7 @@ snapshots: speedline-core@1.4.3: dependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 image-ssim: 0.2.0 jpeg-js: 0.4.4 @@ -75614,6 +80916,10 @@ snapshots: dependencies: minipass: 7.1.3 + ssri@11.0.0: + dependencies: + minipass: 7.1.3 + ssri@12.0.0: dependencies: minipass: 7.1.3 @@ -75652,7 +80958,7 @@ snapshots: stagehand@1.0.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -75665,8 +80971,6 @@ snapshots: define-property: 0.2.5 object-copy: 0.1.0 - stats.ts@1.1.0: {} - stats.ts@2.1.6: {} statuses@1.5.0: {} @@ -75695,7 +80999,7 @@ snapshots: stream-composer@1.0.2: dependencies: - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -75727,15 +81031,15 @@ snapshots: transitivePeerDependencies: - supports-color - streamroller@3.1.5: + streamroller@3.1.5(supports-color@8.1.1): dependencies: date-format: 4.0.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color - streamx@2.25.0: + streamx@2.28.0: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 @@ -75748,8 +81052,6 @@ snapshots: string-argv@0.3.2: {} - string-hash@1.1.3: {} - string-indexes@2.0.1: {} string-length@4.0.2: @@ -75819,7 +81121,7 @@ snapshots: internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.1.1 string.prototype.padend@3.1.6: dependencies: @@ -75833,7 +81135,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.11: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -75842,8 +81144,9 @@ snapshots: es-abstract: 1.24.2 es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.10: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -75921,10 +81224,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.1.1: - dependencies: - js-tokens: 9.0.1 - strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -75943,42 +81242,38 @@ snapshots: stubborn-utils@1.0.2: {} - style-loader@2.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + style-loader@2.0.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - style-loader@2.0.0(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + style-loader@2.0.0(webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - style-loader@3.3.4(webpack@5.107.1): - dependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) - style-loader@4.0.0(webpack@5.107.1): + style-loader@4.0.0(webpack@5.107.2): dependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) - style-resources-loader@1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + style-resources-loader@1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: glob: 7.2.3 loader-utils: 2.0.4 schema-utils: 2.7.1 tslib: 2.8.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) style-search@0.1.0: {} - styled-jsx@5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.6): + styled-jsx@5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.7): dependencies: client-only: 0.0.1 - react: 19.2.6 + react: 19.2.7 optionalDependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 babel-plugin-macros: 3.1.0 styled_string@0.0.1: {} @@ -75993,25 +81288,25 @@ snapshots: dependencies: browserslist: 4.28.2 postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 stylehacks@6.1.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 postcss: 8.5.15 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 stylehacks@7.0.11(postcss@8.5.15): dependencies: browserslist: 4.28.2 postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 - stylehacks@8.0.0(postcss@8.5.15): + stylehacks@8.0.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 postcss: 8.5.15 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 stylelint-config-recommended-scss@14.1.0(postcss@8.5.15)(stylelint@16.26.1(typescript@6.0.3)): dependencies: @@ -76034,24 +81329,24 @@ snapshots: mdn-data: 2.28.1 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 stylelint: 16.26.1(typescript@6.0.3) stylelint@16.26.1(typescript@6.0.3): dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-syntax-patches-for-csstree': 1.1.4(css-tree@3.2.1) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - '@dual-bundle/import-meta-resolve': 4.2.1 + "@csstools/css-parser-algorithms": 3.0.5(@csstools/css-tokenizer@3.0.4) + "@csstools/css-syntax-patches-for-csstree": 1.1.5(css-tree@3.2.1) + "@csstools/css-tokenizer": 3.0.4 + "@csstools/media-query-list-parser": 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.1.4) + "@dual-bundle/import-meta-resolve": 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.1(typescript@6.0.3) + cosmiconfig: 9.0.2(typescript@6.0.3) css-functions-list: 3.3.3 css-tree: 3.2.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 file-entry-cache: 11.1.3 @@ -76071,7 +81366,7 @@ snapshots: postcss: 8.5.15 postcss-resolve-nested-selector: 0.1.6 postcss-safe-parser: 7.0.1(postcss@8.5.15) - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -76085,24 +81380,10 @@ snapshots: stylis@4.2.0: {} - stylus@0.54.8: - dependencies: - css-parse: 2.0.0 - debug: 3.1.0 - glob: 7.2.3 - mkdirp: 1.0.4 - safer-buffer: 2.1.2 - sax: 1.2.4 - semver: 6.3.1 - source-map: 0.7.3 - transitivePeerDependencies: - - supports-color - optional: true - stylus@0.64.0: dependencies: - '@adobe/css-tools': 4.3.3 - debug: 4.4.3(supports-color@5.5.0) + "@adobe/css-tools": 4.3.3 + debug: 4.4.3(supports-color@8.1.1) glob: 10.5.0 sax: 1.4.4 source-map: 0.7.6 @@ -76120,12 +81401,12 @@ snapshots: sucrase@3.35.1: dependencies: - '@jridgewell/gen-mapping': 0.3.13 + "@jridgewell/gen-mapping": 0.3.13 commander: 4.1.1 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ts-interface-checker: 0.1.13 suf-log@2.5.3: @@ -76134,7 +81415,7 @@ snapshots: sumchecker@3.0.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -76146,10 +81427,6 @@ snapshots: supports-color@2.0.0: {} - supports-color@3.2.3: - dependencies: - has-flag: 1.0.0 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -76178,162 +81455,71 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.8.6(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - chokidar: 3.6.0 - picocolors: 1.1.1 - sade: 1.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte-preprocess: 5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - - svelte-check@3.8.6(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - chokidar: 3.6.0 - picocolors: 1.1.1 - sade: 1.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte-preprocess: 5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - - svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3): + svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 + "@sveltejs/load-config": 0.1.1 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) typescript: 6.0.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.43.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.5.15 - postcss-scss: 4.0.9(postcss@8.5.15) - optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - - svelte-eslint-parser@1.6.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)): + svelte-eslint-parser@1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.1)): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 postcss: 8.5.15 postcss-scss: 4.0.9(postcss@8.5.15) - postcss-selector-parser: 7.1.1 - semver: 7.8.1 - optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - - svelte-hmr@0.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)): - dependencies: - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - - svelte-preprocess@5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.4.5): - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.21 - sorcery: 0.11.1 - strip-indent: 3.0.0 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + postcss-selector-parser: 7.1.4 + semver: 7.8.4 optionalDependencies: - '@babel/core': 7.29.0 - less: 4.6.4 - postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)) - pug: 3.0.4 - sass: 1.100.0 - typescript: 5.4.5 + svelte: 5.56.3(@typescript-eslint/types@8.61.1) - svelte-preprocess@5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3): + svelte-preprocess@6.0.5(@babel/core@7.29.0)(less@4.6.6)(postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0))(postcss@8.5.15)(pug@3.0.4)(sass@1.101.0)(stylus@0.64.0)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3): dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.21 - sorcery: 0.11.1 - strip-indent: 3.0.0 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) optionalDependencies: - '@babel/core': 7.29.0 - less: 4.6.4 + "@babel/core": 7.29.0 + less: 4.6.6 postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5)) - pug: 3.0.4 - sass: 1.100.0 - typescript: 5.9.3 - - svelte-preprocess@5.1.4(@babel/core@7.29.0)(less@4.6.4)(postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)))(postcss@8.5.15)(pug@3.0.4)(sass@1.100.0)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@5.9.3): - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.21 - sorcery: 0.11.1 - strip-indent: 3.0.0 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) - optionalDependencies: - '@babel/core': 7.29.0 - less: 4.6.4 - postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3)) + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0) pug: 3.0.4 - sass: 1.100.0 - typescript: 5.9.3 + sass: 1.101.0 + stylus: 0.64.0 + typescript: 6.0.3 - svelte2tsx@0.7.55(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3): + svelte2tsx@0.7.56(svelte@5.56.3(@typescript-eslint/types@8.61.1))(typescript@6.0.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 - svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.1) typescript: 6.0.3 - svelte@5.55.9(@typescript-eslint/types@8.60.0): + svelte@5.56.3(@typescript-eslint/types@8.61.1): dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@types/estree': 1.0.9 - '@types/trusted-types': 2.0.7 - acorn: 8.16.0 + "@jridgewell/remapping": 2.3.5 + "@jridgewell/sourcemap-codec": 1.5.5 + "@sveltejs/acorn-typescript": 1.0.10(acorn@8.17.0) + "@types/estree": 1.0.9 + "@types/trusted-types": 2.0.7 + acorn: 8.17.0 aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.9(@typescript-eslint/types@8.60.0) + esrap: 2.2.11(@typescript-eslint/types@8.61.1) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 zimmerframe: 1.1.4 transitivePeerDependencies: - - '@typescript-eslint/types' + - "@typescript-eslint/types" sver@1.8.4: optionalDependencies: @@ -76389,11 +81575,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.7(@swc/core@1.15.40)(webpack@5.107.2): + swc-loader@0.2.7(@swc/core@1.15.41)(webpack@5.107.2): dependencies: - '@swc/core': 1.15.40 - '@swc/counter': 0.1.3 - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) + "@swc/core": 1.15.41 + "@swc/counter": 0.1.3 + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) symbol-observable@1.2.0: {} @@ -76415,7 +81601,7 @@ snapshots: sync-disk-cache@2.1.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) heimdalljs: 0.2.6 mkdirp: 0.5.6 rimraf: 3.0.2 @@ -76423,13 +81609,9 @@ snapshots: transitivePeerDependencies: - supports-color - synckit@0.11.12: - dependencies: - '@pkgr/core': 0.2.9 - synckit@0.11.13: dependencies: - '@pkgr/core': 0.3.6 + "@pkgr/core": 0.3.6 system-architecture@0.1.0: {} @@ -76461,7 +81643,7 @@ snapshots: tannin@1.2.0: dependencies: - '@tannin/plural-forms': 1.1.0 + "@tannin/plural-forms": 1.1.0 tap-parser@18.3.4: dependencies: @@ -76489,8 +81671,8 @@ snapshots: pump: 3.0.4 tar-stream: 3.2.0 optionalDependencies: - bare-fs: 4.7.1 - bare-path: 3.0.0 + bare-fs: 4.7.2 + bare-path: 3.0.1 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -76507,9 +81689,9 @@ snapshots: tar-stream@3.1.8: dependencies: b4a: 1.8.1 - bare-fs: 4.7.1 + bare-fs: 4.7.2 fast-fifo: 1.3.2 - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -76518,9 +81700,9 @@ snapshots: tar-stream@3.2.0: dependencies: b4a: 1.8.1 - bare-fs: 4.7.1 + bare-fs: 4.7.2 fast-fifo: 1.3.2 - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -76547,15 +81729,15 @@ snapshots: tar@7.5.11: dependencies: - '@isaacs/fs-minipass': 4.0.1 + "@isaacs/fs-minipass": 4.0.1 chownr: 3.0.0 minipass: 7.1.3 minizlib: 3.1.0 yallist: 5.0.0 - tar@7.5.15: + tar@7.5.16: dependencies: - '@isaacs/fs-minipass': 4.0.1 + "@isaacs/fs-minipass": 4.0.1 chownr: 3.0.0 minipass: 7.1.3 minizlib: 3.1.0 @@ -76563,7 +81745,7 @@ snapshots: teex@1.0.1: dependencies: - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -76582,7 +81764,7 @@ snapshots: ansi-escapes: 7.3.0 supports-hyperlinks: 4.4.0 - terser-webpack-plugin@1.4.6(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@1.4.6(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cacache: 12.0.4 find-cache-dir: 2.1.0 @@ -76591,11 +81773,11 @@ snapshots: serialize-javascript: 4.0.0 source-map: 0.6.1 terser: 4.8.1 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 worker-farm: 1.7.0 - terser-webpack-plugin@4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 @@ -76605,176 +81787,91 @@ snapshots: serialize-javascript: 5.0.1 source-map: 0.6.1 terser: 5.48.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 transitivePeerDependencies: - bluebird - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 cssnano: 5.1.15(postcss@8.5.15) postcss: 8.5.15 - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 cssnano: 6.1.2(postcss@8.5.15) postcss: 8.5.15 - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.28.0 + "@swc/core": 1.15.41 + esbuild: 0.28.1 lightningcss: 1.32.0 optional: true - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(esbuild@0.28.0)(webpack@5.107.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3) - optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.28.0 - - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(webpack@5.107.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) - optionalDependencies: - '@swc/core': 1.15.40 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.107.2): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3) optionalDependencies: - '@swc/core': 1.15.40 - cssnano: 5.1.15(postcss@8.5.15) - postcss: 8.5.15 + "@swc/core": 1.15.41 + esbuild: 0.28.1 - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(postcss@8.5.15)(webpack@5.107.2): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) optionalDependencies: - '@swc/core': 1.15.40 - cssnano: 6.1.2(postcss@8.5.15) + "@swc/core": 1.15.41 postcss: 8.5.15 - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + terser-webpack-plugin@5.6.1(@swc/core@1.15.41)(webpack@5.107.2): dependencies: - '@jridgewell/trace-mapping': 0.3.31 + "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.48.0 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.27.3 - lightningcss: 1.32.0 - postcss: 8.5.12 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(esbuild@0.28.0)(webpack@5.107.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3) - optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.28.0 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack@5.107.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - optionalDependencies: - '@swc/core': 1.15.40 - postcss: 8.5.15 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optionalDependencies: - '@swc/core': 1.15.40 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(webpack@5.107.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@5.1.4) - optionalDependencies: - '@swc/core': 1.15.40 - - terser-webpack-plugin@5.6.1(@swc/core@1.15.40)(webpack@5.107.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) - optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 terser@4.8.1: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 - terser@5.46.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 - commander: 2.20.3 - source-map-support: 0.5.21 - terser@5.48.0: dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + "@jridgewell/source-map": 0.3.11 + acorn: 8.17.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -76787,44 +81884,44 @@ snapshots: test-exclude@6.0.0: dependencies: - '@istanbuljs/schema': 0.1.6 + "@istanbuljs/schema": 0.1.6 glob: 7.2.3 minimatch: 3.1.5 test-exclude@8.0.0: dependencies: - '@istanbuljs/schema': 0.1.6 + "@istanbuljs/schema": 0.1.6 glob: 13.0.6 minimatch: 10.2.5 - testem@3.20.0(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8): + testem@3.20.1(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8): dependencies: - '@xmldom/xmldom': 0.9.10 + "@xmldom/xmldom": 0.9.10 backbone: 1.6.1 charm: 1.0.2 chokidar: 5.0.0 commander: 14.0.3 compression: 1.8.1 - consolidate: 1.0.4(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(underscore@1.13.8) + consolidate: 1.0.4(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8) execa: 9.6.1 express: 5.2.1 glob: 13.0.6 - http-proxy: 1.18.1(debug@4.4.3) - js-yaml: 4.1.1 + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) + js-yaml: 4.2.0 lodash: 4.18.1 minimatch: 10.2.5 mkdirp: 3.0.1 mustache: 4.2.0 - node-notifier: 10.0.1 printf: 0.6.1 proc-log: 6.1.0 rimraf: 6.1.3 - socket.io: 4.8.3 + socket.io: 4.8.3(supports-color@8.1.1) spawn-args: 0.2.0 styled_string: 0.0.1 tap-parser: 18.3.4 + toasted-notifier: 10.1.0 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - arc-templates - atpl - bracket-template @@ -76903,32 +82000,32 @@ snapshots: third-party-web@0.29.2: {} - thread-loader@3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + thread-loader@3.0.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: json-parse-better-errors: 1.0.2 loader-runner: 4.3.2 loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - thread-loader@3.0.4(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + thread-loader@3.0.4(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: json-parse-better-errors: 1.0.2 loader-runner: 4.3.2 loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.3.0 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - thread-loader@3.0.4(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + thread-loader@3.0.4(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)): dependencies: json-parse-better-errors: 1.0.2 loader-runner: 4.3.2 loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.3.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) through2@2.0.5: dependencies: @@ -76948,9 +82045,9 @@ snapshots: thunky@1.1.0: {} - time-fix-plugin@2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + time-fix-plugin@2.0.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) timers-browserify@2.0.12: dependencies: @@ -76980,59 +82077,51 @@ snapshots: tinybench@2.9.0: {} - tinyclip@0.1.12: {} + tinyclip@0.1.14: {} tinydate@1.3.0: {} tinyexec@0.3.2: {} - tinyexec@1.2.2: {} + tinyexec@1.2.4: {} tinyglobby@0.2.12: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyglobby@0.2.16: + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinypool@0.8.4: {} - tinyrainbow@3.1.0: {} - tinyspy@2.2.1: {} - tldts-core@6.1.86: {} - tldts-core@7.1.2: {} + tldts-core@7.4.3: {} - tldts-icann@7.1.2: + tldts-icann@7.4.3: dependencies: - tldts-core: 7.1.2 + tldts-core: 7.4.3 tldts@6.1.86: dependencies: tldts-core: 6.1.86 - tldts@7.1.2: + tldts@7.4.3: dependencies: - tldts-core: 7.1.2 + tldts-core: 7.4.3 tmp@0.0.28: dependencies: os-tmpdir: 1.0.2 - tmp@0.0.30: - dependencies: - os-tmpdir: 1.0.2 - tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -77045,12 +82134,10 @@ snapshots: dependencies: rimraf: 3.0.2 - tmp@0.2.4: {} - - tmp@0.2.5: {} - tmp@0.2.6: {} + tmp@0.2.7: {} + tmpl@1.0.5: {} to-array@0.1.4: {} @@ -77089,16 +82176,24 @@ snapshots: to-through@3.0.0: dependencies: - streamx: 2.25.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a to-valid-identifier@1.0.0: dependencies: - '@sindresorhus/base62': 1.0.0 + "@sindresorhus/base62": 1.0.0 reserved-identifiers: 1.2.0 + toasted-notifier@10.1.0: + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.8.4 + shellwords: 0.1.1 + which: 2.0.2 + toidentifier@1.0.1: {} token-stream@1.0.0: {} @@ -77114,20 +82209,13 @@ snapshots: psl: 1.15.0 punycode: 2.3.1 - tough-cookie@4.1.4: - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - tough-cookie@5.1.2: dependencies: tldts: 6.1.86 tough-cookie@6.0.1: dependencies: - tldts: 7.1.2 + tldts: 7.4.3 tr46@0.0.3: {} @@ -77135,10 +82223,6 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@3.0.0: - dependencies: - punycode: 2.3.1 - tr46@5.1.1: dependencies: punycode: 2.3.1 @@ -77165,7 +82249,7 @@ snapshots: tree-sync@2.1.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fs-tree-diff: 2.0.1 mkdirp: 0.5.6 quick-temp: 0.1.9 @@ -77203,18 +82287,10 @@ snapshots: dependencies: typescript: 6.0.3 - ts-api-utils@2.5.0(typescript@4.9.5): - dependencies: - typescript: 4.9.5 - ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 - ts-api-utils@2.5.0(typescript@6.0.2): - dependencies: - typescript: 6.0.2 - ts-api-utils@2.5.0(typescript@6.0.3): dependencies: typescript: 6.0.3 @@ -77223,7 +82299,7 @@ snapshots: ts-json-schema-generator@2.9.0: dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 commander: 14.0.3 glob: 13.0.6 json5: 2.2.3 @@ -77232,106 +82308,69 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 - ts-loader@8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + ts-loader@8.4.0(typescript@6.0.3)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 4.1.2 enhanced-resolve: 4.5.0 loader-utils: 2.0.4 micromatch: 4.0.8 - semver: 7.8.1 + semver: 7.8.4 typescript: 6.0.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - ts-loader@9.5.7(typescript@5.9.3)(webpack@5.107.1): + ts-loader@9.6.1(loader-utils@3.3.1)(typescript@6.0.3)(webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3)): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 micromatch: 4.0.8 - semver: 7.8.1 + semver: 7.8.4 source-map: 0.7.6 - typescript: 5.9.3 - webpack: 5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.2) + typescript: 6.0.3 + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) + optionalDependencies: + loader-utils: 3.3.1 - ts-loader@9.5.7(typescript@5.9.3)(webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + ts-loader@9.6.1(loader-utils@3.3.1)(typescript@6.0.3)(webpack@5.107.2): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 micromatch: 4.0.8 - semver: 7.8.1 + semver: 7.8.4 source-map: 0.7.6 - typescript: 5.9.3 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - ts-node@10.9.2(@swc/core@1.15.40)(@types/node@20.19.41)(typescript@5.9.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.41 - acorn: 8.16.0 - acorn-walk: 8.3.5 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.4 - make-error: 1.3.6 - typescript: 5.9.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.15.40 - - ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.4.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 25.9.1 - acorn: 8.16.0 - acorn-walk: 8.3.5 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.4 - make-error: 1.3.6 - typescript: 5.4.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 + typescript: 6.0.3 + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) optionalDependencies: - '@swc/core': 1.15.40 - optional: true + loader-utils: 3.3.1 - ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@20.19.43)(typescript@6.0.3): dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 25.9.1 - acorn: 8.16.0 + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node10": 1.0.12 + "@tsconfig/node12": 1.0.11 + "@tsconfig/node14": 1.0.3 + "@tsconfig/node16": 1.0.4 + "@types/node": 20.19.43 + acorn: 8.17.0 acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.4 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 6.0.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 - ts-node@10.9.2(@swc/core@1.15.40)(@types/node@25.9.1)(typescript@6.0.3): + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3): dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 25.9.1 - acorn: 8.16.0 + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node10": 1.0.12 + "@tsconfig/node12": 1.0.11 + "@tsconfig/node14": 1.0.3 + "@tsconfig/node16": 1.0.4 + "@types/node": 25.9.3 + acorn: 8.17.0 acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 @@ -77341,21 +82380,13 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.40 - - ts-pnp@1.2.0(typescript@5.9.3): - optionalDependencies: - typescript: 5.9.3 + "@swc/core": 1.15.41 ts-pnp@1.2.0(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 - ts-simple-type@1.0.7: {} - - tsconfck@3.1.6(typescript@6.0.2): - optionalDependencies: - typescript: 6.0.2 + ts-simple-type@2.0.0-next.0: {} tsconfck@3.1.6(typescript@6.0.3): optionalDependencies: @@ -77364,13 +82395,13 @@ snapshots: tsconfig-paths-webpack-plugin@4.2.0: dependencies: chalk: 4.1.2 - enhanced-resolve: 5.22.1 + enhanced-resolve: 5.24.0 tapable: 2.3.3 tsconfig-paths: 4.2.0 tsconfig-paths@3.15.0: dependencies: - '@types/json5': 0.0.29 + "@types/json5": 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 @@ -77381,29 +82412,29 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.22.1(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(publint@0.3.21)(typescript@6.0.3): + tsdown@0.22.3(oxc-resolver@11.20.0)(publint@0.3.21)(typescript@6.0.3)(vue-tsc@3.3.5(typescript@6.0.3)): dependencies: - ansis: 4.3.0 + ansis: 4.3.1 cac: 7.0.0 defu: 6.1.7 empathic: 2.0.1 hookable: 6.1.1 import-without-cache: 0.4.0 - obug: 2.1.1 + obug: 2.1.3 picomatch: 4.0.4 - rolldown: 1.0.2 - rolldown-plugin-dts: 0.25.1(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(rolldown@1.0.2)(typescript@6.0.3) - semver: 7.8.1 - tinyexec: 1.2.2 - tinyglobby: 0.2.16 + rolldown: 1.1.1 + rolldown-plugin-dts: 0.26.0(oxc-resolver@11.20.0)(rolldown@1.1.1)(typescript@6.0.3)(vue-tsc@3.3.5(typescript@6.0.3)) + semver: 7.8.4 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 optionalDependencies: publint: 0.3.21 typescript: 6.0.3 transitivePeerDependencies: - - '@ts-macro/tsc' - - '@typescript/native-preview' + - "@ts-macro/tsc" + - "@typescript/native-preview" - oxc-resolver - vue-tsc @@ -77413,38 +82444,38 @@ snapshots: tsscmp@1.0.6: {} - tsup-preset-solid@2.2.0(esbuild@0.21.5)(solid-js@1.9.13)(tsup@8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.15)(typescript@5.9.3)(yaml@2.9.0)): + tsup-preset-solid@2.2.0(esbuild@0.28.1)(solid-js@1.9.13)(tsup@8.5.1(@swc/core@1.15.41)(jiti@2.7.0)(postcss@8.5.15)(supports-color@8.1.1)(typescript@6.0.3)(yaml@2.9.0)): dependencies: - esbuild-plugin-solid: 0.5.0(esbuild@0.21.5)(solid-js@1.9.13) - tsup: 8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.15)(typescript@5.9.3)(yaml@2.9.0) + esbuild-plugin-solid: 0.5.0(esbuild@0.28.1)(solid-js@1.9.13) + tsup: 8.5.1(@swc/core@1.15.41)(jiti@2.7.0)(postcss@8.5.15)(supports-color@8.1.1)(typescript@6.0.3)(yaml@2.9.0) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.15)(typescript@5.9.3)(yaml@2.9.0): + tsup@8.5.1(@swc/core@1.15.41)(jiti@2.7.0)(postcss@8.5.15)(supports-color@8.1.1)(typescript@6.0.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.27.7 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0) resolve-from: 5.0.0 - rollup: 4.60.4 + rollup: 4.62.0 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.15.40 + "@swc/core": 1.15.41 postcss: 8.5.15 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - jiti - supports-color @@ -77457,19 +82488,19 @@ snapshots: tty-browserify@0.0.0: {} - tuf-js@1.1.7: + tuf-js@1.1.7(supports-color@8.1.1): dependencies: - '@tufjs/models': 1.0.4 - debug: 4.4.3(supports-color@5.5.0) + "@tufjs/models": 1.0.4 + debug: 4.4.3(supports-color@8.1.1) make-fetch-happen: 11.1.1 transitivePeerDependencies: - supports-color tuf-js@4.1.0: dependencies: - '@tufjs/models': 4.1.0 - debug: 4.4.3(supports-color@5.5.0) - make-fetch-happen: 15.0.2 + "@tufjs/models": 4.1.0 + debug: 4.4.3(supports-color@8.1.1) + make-fetch-happen: 15.0.6 transitivePeerDependencies: - supports-color @@ -77491,9 +82522,6 @@ snapshots: type-detect@4.1.0: {} - type-fest@0.13.1: - optional: true - type-fest@0.16.0: {} type-fest@0.18.1: {} @@ -77514,7 +82542,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.6.0: + type-fest@5.7.0: dependencies: tagged-tag: 1.0.0 @@ -77555,7 +82583,7 @@ snapshots: is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: call-bind: 1.0.9 for-each: 0.3.5 @@ -77564,13 +82592,11 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typed-assert@1.0.9: {} - - typed-event-target@4.3.0: + typed-event-target@4.3.1: dependencies: - '@augment-vir/assert': 31.70.1 - '@augment-vir/common': 31.70.1 - '@augment-vir/core': 31.70.1 + "@augment-vir/assert": 31.73.1 + "@augment-vir/common": 31.73.1 + "@augment-vir/core": 31.73.1 typed-query-selector@2.12.2: {} @@ -77599,7 +82625,7 @@ snapshots: typedoc: 0.28.19(typescript@6.0.3) typescript: 5.9.3 - typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@6.0.3)): + typedoc-plugin-markdown@4.12.0(typedoc@0.28.19(typescript@6.0.3)): dependencies: typedoc: 0.28.19(typescript@6.0.3) @@ -77613,7 +82639,7 @@ snapshots: typedoc@0.28.19(typescript@6.0.3): dependencies: - '@gerrit0/mini-shiki': 3.23.0 + "@gerrit0/mini-shiki": 3.23.0 lunr: 2.3.9 markdown-it: 14.2.0 minimatch: 10.2.5 @@ -77624,31 +82650,36 @@ snapshots: typescript-auto-import-cache@0.3.6: dependencies: - semver: 7.8.1 + semver: 7.8.4 - typescript-eslint@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.1(jiti@2.7.0) + "@typescript-eslint/eslint-plugin": 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - typescript-memoize@1.1.1: {} - - typescript@3.9.10: {} + typescript-eslint@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): + dependencies: + "@typescript-eslint/eslint-plugin": 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color - typescript@4.9.5: {} + typescript-memoize@1.1.1: {} - typescript@5.4.5: {} + typescript@5.2.2: {} typescript@5.9.3: {} - typescript@6.0.2: {} - typescript@6.0.3: {} typical@4.0.0: {} @@ -77694,14 +82725,14 @@ snapshots: unconfig-core@7.5.0: dependencies: - '@quansync/fs': 1.0.0 + "@quansync/fs": 1.0.0 quansync: 1.0.0 uncrypto@0.1.3: {} unctx@2.5.0: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 estree-walker: 3.0.3 magic-string: 0.30.21 unplugin: 2.3.11 @@ -77726,21 +82757,19 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.16.0: {} + undici-types@7.18.2: {} undici-types@7.24.6: {} - undici-types@7.25.0: {} - - undici-types@8.3.0: {} + undici-types@7.28.0: {} - undici@6.25.0: {} + undici-types@8.5.0: {} - undici@7.24.4: {} + undici@6.27.0: {} - undici@7.25.0: {} + undici@7.28.0: {} - undici@8.1.0: {} + undici@8.5.0: {} unenv@2.0.0-rc.24: dependencies: @@ -77776,7 +82805,7 @@ snapshots: unified@11.0.5: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 bail: 2.0.2 devlop: 1.1.0 extend: 3.0.2 @@ -77786,7 +82815,7 @@ snapshots: unified@6.2.0: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 bail: 1.0.5 extend: 3.0.2 is-plain-obj: 1.1.0 @@ -77800,9 +82829,9 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 - unimport@6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2): + unimport@6.3.0(oxc-parser@0.132.0)(rolldown@1.1.1): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.2.1 @@ -77813,12 +82842,32 @@ snapshots: pkg-types: 2.3.1 scule: 1.3.0 strip-literal: 3.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unplugin: 3.0.0 unplugin-utils: 0.3.1 optionalDependencies: - oxc-parser: 0.131.0 - rolldown: 1.0.2 + oxc-parser: 0.132.0 + rolldown: 1.1.1 + + unimport@6.3.0(oxc-parser@0.133.0)(rolldown@1.1.1): + dependencies: + acorn: 8.17.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + pathe: 2.0.3 + picomatch: 4.0.4 + pkg-types: 2.3.1 + scule: 1.3.0 + strip-literal: 3.1.0 + tinyglobby: 0.2.17 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + optionalDependencies: + oxc-parser: 0.133.0 + rolldown: 1.1.1 union-value@1.0.1: dependencies: @@ -77865,23 +82914,23 @@ snapshots: unist-util-find-after@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.1 unist-util-is@3.0.0: {} unist-util-is@6.0.1: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-modify-children@4.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 array-iterate: 2.0.1 unist-util-position@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-remove-position@1.1.4: dependencies: @@ -77889,18 +82938,18 @@ snapshots: unist-util-remove-position@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-visit: 5.1.0 unist-util-stringify-position@1.1.2: {} unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-visit-children@3.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-visit-parents@2.1.2: dependencies: @@ -77908,7 +82957,7 @@ snapshots: unist-util-visit-parents@6.0.2: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.1 unist-util-visit@1.4.1: @@ -77917,7 +82966,7 @@ snapshots: unist-util-visit@5.1.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 @@ -77925,50 +82974,68 @@ snapshots: universalify@0.1.2: {} - universalify@0.2.0: {} - universalify@2.0.1: {} unpipe@1.0.0: {} - unplugin-dts@1.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)): + unplugin-dts@1.0.2(@vue/language-core@3.3.5)(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@volar/typescript': 2.4.28 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + "@volar/typescript": 2.4.28 compare-versions: 6.1.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 1.2.1 magic-string: 0.30.21 typescript: 6.0.3 unplugin: 2.3.11 optionalDependencies: - '@vue/language-core': 3.3.2 - esbuild: 0.28.0 - rolldown: 1.0.2 - rollup: 4.60.4 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3) + "@vue/language-core": 3.3.5 + esbuild: 0.28.1 + rolldown: 1.1.1 + rollup: 4.62.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + webpack: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3) transitivePeerDependencies: - supports-color - unplugin-dts@1.0.1(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + unplugin-dts@1.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@volar/typescript': 2.4.28 + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + "@volar/typescript": 2.4.28 compare-versions: 6.1.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 1.2.1 magic-string: 0.30.21 typescript: 6.0.3 unplugin: 2.3.11 optionalDependencies: - esbuild: 0.28.0 - rolldown: 1.0.2 - rollup: 4.60.4 - vite: 6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - webpack: 5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + esbuild: 0.28.1 + rolldown: 1.1.1 + rollup: 4.62.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + webpack: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3) + transitivePeerDependencies: + - supports-color + + unplugin-dts@1.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): + dependencies: + "@rollup/pluginutils": 5.4.0(rollup@4.62.0) + "@volar/typescript": 2.4.28 + compare-versions: 6.1.1 + debug: 4.4.3(supports-color@8.1.1) + kolorist: 1.8.0 + local-pkg: 1.2.1 + magic-string: 0.30.21 + typescript: 6.0.3 + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.28.1 + rolldown: 1.1.1 + rollup: 4.62.0 + vite: 6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + webpack: 5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) transitivePeerDependencies: - supports-color @@ -77977,12 +83044,12 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.4 - unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.34)(vue-router@4.6.4(vue@3.5.34(typescript@6.0.3)))(vue@3.5.34(typescript@6.0.3)): + unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.38)(vue-router@4.6.4(vue@3.5.38(typescript@6.0.3)))(vue@3.5.38(typescript@6.0.3)): dependencies: - '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.34(typescript@6.0.3)) - '@vue/compiler-sfc': 3.5.34 - '@vue/language-core': 3.3.1 + "@babel/generator": 7.29.7 + "@vue-macros/common": 3.1.2(vue@3.5.38(typescript@6.0.3)) + "@vue/compiler-sfc": 3.5.38 + "@vue/language-core": 3.3.5 ast-walker-scope: 0.8.3 chokidar: 5.0.0 json5: 2.2.3 @@ -77993,25 +83060,25 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.4 scule: 1.3.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unplugin: 2.3.11 unplugin-utils: 0.3.1 yaml: 2.9.0 optionalDependencies: - vue-router: 4.6.4(vue@3.5.34(typescript@6.0.3)) + vue-router: 4.6.4(vue@3.5.38(typescript@6.0.3)) transitivePeerDependencies: - vue unplugin@2.3.11: dependencies: - '@jridgewell/remapping': 2.3.5 - acorn: 8.16.0 + "@jridgewell/remapping": 2.3.5 + acorn: 8.17.0 picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 unplugin@3.0.0: dependencies: - '@jridgewell/remapping': 2.3.5 + "@jridgewell/remapping": 2.3.5 picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 @@ -78026,47 +83093,47 @@ snapshots: dependencies: napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.12.2 - '@unrs/resolver-binding-android-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-x64': 1.12.2 - '@unrs/resolver-binding-freebsd-x64': 1.12.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 - '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-musl': 1.12.2 - '@unrs/resolver-binding-openharmony-arm64': 1.12.2 - '@unrs/resolver-binding-wasm32-wasi': 1.12.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + "@unrs/resolver-binding-android-arm-eabi": 1.12.2 + "@unrs/resolver-binding-android-arm64": 1.12.2 + "@unrs/resolver-binding-darwin-arm64": 1.12.2 + "@unrs/resolver-binding-darwin-x64": 1.12.2 + "@unrs/resolver-binding-freebsd-x64": 1.12.2 + "@unrs/resolver-binding-linux-arm-gnueabihf": 1.12.2 + "@unrs/resolver-binding-linux-arm-musleabihf": 1.12.2 + "@unrs/resolver-binding-linux-arm64-gnu": 1.12.2 + "@unrs/resolver-binding-linux-arm64-musl": 1.12.2 + "@unrs/resolver-binding-linux-loong64-gnu": 1.12.2 + "@unrs/resolver-binding-linux-loong64-musl": 1.12.2 + "@unrs/resolver-binding-linux-ppc64-gnu": 1.12.2 + "@unrs/resolver-binding-linux-riscv64-gnu": 1.12.2 + "@unrs/resolver-binding-linux-riscv64-musl": 1.12.2 + "@unrs/resolver-binding-linux-s390x-gnu": 1.12.2 + "@unrs/resolver-binding-linux-x64-gnu": 1.12.2 + "@unrs/resolver-binding-linux-x64-musl": 1.12.2 + "@unrs/resolver-binding-openharmony-arm64": 1.12.2 + "@unrs/resolver-binding-wasm32-wasi": 1.12.2 + "@unrs/resolver-binding-win32-arm64-msvc": 1.12.2 + "@unrs/resolver-binding-win32-ia32-msvc": 1.12.2 + "@unrs/resolver-binding-win32-x64-msvc": 1.12.2 unset-value@1.0.0: dependencies: has-value: 0.3.1 isobject: 3.0.1 - unstorage@1.17.5(db0@0.3.4)(ioredis@5.10.1): + unstorage@1.17.5(db0@0.3.4)(ioredis@5.11.1): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 destr: 2.0.5 h3: 1.15.11 - lru-cache: 11.5.0 + lru-cache: 11.5.1 node-fetch-native: 1.6.7 ofetch: 1.5.1 ufo: 1.6.4 optionalDependencies: db0: 0.3.4 - ioredis: 5.10.1 + ioredis: 5.11.1 untildify@4.0.0: {} @@ -78116,7 +83183,7 @@ snapshots: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.8.1 + semver: 7.8.4 semver-diff: 3.1.1 xdg-basedir: 4.0.0 @@ -78130,7 +83197,7 @@ snapshots: is-npm: 6.1.0 latest-version: 9.0.0 pupa: 3.3.0 - semver: 7.8.1 + semver: 7.8.4 xdg-basedir: 5.1.0 upper-case-first@2.0.2: @@ -78151,21 +83218,21 @@ snapshots: urix@0.1.0: {} - url-loader@4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + url-loader@4.1.1(file-loader@6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + file-loader: 6.2.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) url-loader@4.1.1(file-loader@6.2.0(webpack@5.107.2))(webpack@5.107.2): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) optionalDependencies: file-loader: 6.2.0(webpack@5.107.2) @@ -78173,38 +83240,35 @@ snapshots: dependencies: prepend-http: 2.0.0 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - url@0.11.4: dependencies: punycode: 1.4.1 qs: 6.15.2 - use-callback-ref@1.3.3(@types/react@18.3.29)(react@19.2.6): + urlpattern-polyfill@10.1.0: {} + + use-callback-ref@1.3.3(@types/react@18.3.31)(react@19.2.7): dependencies: - react: 19.2.6 + react: 19.2.7 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - use-memo-one@1.1.3(react@19.2.6): + use-memo-one@1.1.3(react@19.2.7): dependencies: - react: 19.2.6 + react: 19.2.7 - use-sidecar@1.1.3(@types/react@18.3.29)(react@19.2.6): + use-sidecar@1.1.3(@types/react@18.3.31)(react@19.2.7): dependencies: detect-node-es: 1.1.0 - react: 19.2.6 + react: 19.2.7 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.29 + "@types/react": 18.3.31 - use-sync-external-store@1.6.0(react@19.2.6): + use-sync-external-store@1.6.0(react@19.2.7): dependencies: - react: 19.2.6 + react: 19.2.7 use@3.1.1: {} @@ -78269,8 +83333,8 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@types/istanbul-lib-coverage': 2.0.6 + "@jridgewell/trace-mapping": 0.3.31 + "@types/istanbul-lib-coverage": 2.0.6 convert-source-map: 2.0.0 v8flags@4.0.1: {} @@ -78296,7 +83360,7 @@ snapshots: vanilla-picker@2.12.3: dependencies: - '@sphinxxxx/color-conversion': 2.2.2 + "@sphinxxxx/color-conversion": 2.2.2 vary@1.1.2: {} @@ -78312,7 +83376,7 @@ snapshots: vfile-location@5.0.3: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 vfile: 6.0.3 vfile-message@1.1.1: @@ -78321,7 +83385,7 @@ snapshots: vfile-message@4.0.3: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-stringify-position: 4.0.0 vfile@2.3.0: @@ -78333,7 +83397,7 @@ snapshots: vfile@6.0.3: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 vfile-message: 4.0.3 vinyl-contents@2.0.0: @@ -78355,7 +83419,7 @@ snapshots: normalize-path: 3.0.0 resolve-options: 2.0.0 stream-composer: 1.0.2 - streamx: 2.25.0 + streamx: 2.28.0 to-through: 3.0.0 value-or-function: 4.0.0 vinyl: 3.0.1 @@ -78369,7 +83433,7 @@ snapshots: convert-source-map: 2.0.0 graceful-fs: 4.2.11 now-and-later: 3.0.0 - streamx: 2.25.0 + streamx: 2.28.0 vinyl: 3.0.1 vinyl-contents: 2.0.0 transitivePeerDependencies: @@ -78386,43 +83450,25 @@ snapshots: - bare-abort-controller - react-native-b4a - vite-dev-rpc@1.1.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-dev-rpc@2.0.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - birpc: 2.9.0 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + birpc: 4.0.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-node@1.6.1(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0): - dependencies: - cac: 6.7.14 - debug: 4.4.3(supports-color@5.5.0) - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite-node@5.3.0(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite-node@5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: cac: 6.7.14 es-module-lexer: 2.1.0 - obug: 2.1.1 + obug: 2.1.3 pathe: 2.0.3 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - - '@types/node' + - "@types/node" - jiti - less - lightningcss @@ -78434,333 +83480,357 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.13.0(eslint@10.4.1(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.1(typescript@6.0.3)): + vite-plugin-checker@0.13.0(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)): dependencies: - '@babel/code-frame': 7.29.0 + "@babel/code-frame": 7.29.7 chokidar: 4.0.3 npm-run-path: 6.0.0 picocolors: 1.1.1 picomatch: 4.0.4 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - tinyglobby: 0.2.16 - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + tinyglobby: 0.2.17 + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vscode-uri: 3.1.0 optionalDependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) meow: 14.1.0 optionator: 0.9.4 stylelint: 16.26.1(typescript@6.0.3) typescript: 6.0.3 - vue-tsc: 3.3.1(typescript@6.0.3) + vue-tsc: 3.3.5(typescript@6.0.3) - vite-plugin-dts@5.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)): + vite-plugin-checker@0.14.1(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)): dependencies: - unplugin-dts: 1.0.1(@vue/language-core@3.3.2)(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3)) + "@babel/code-frame": 7.29.7 + chokidar: 5.0.0 + npm-run-path: 6.0.0 + picocolors: 1.1.1 + picomatch: 4.0.4 + proper-lockfile: 4.1.2 + tiny-invariant: 1.3.3 + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) optionalDependencies: - rollup: 4.60.4 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + eslint: 10.5.0(jiti@2.7.0) + meow: 14.1.0 + optionator: 0.9.4 + stylelint: 16.26.1(typescript@6.0.3) + typescript: 6.0.3 + vue-tsc: 3.3.5(typescript@6.0.3) + + vite-plugin-dts@5.0.2(@vue/language-core@3.3.5)(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)): + dependencies: + unplugin-dts: 1.0.2(@vue/language-core@3.3.5)(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)) + optionalDependencies: + rollup: 4.62.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + transitivePeerDependencies: + - "@rspack/core" + - "@vue/language-core" + - esbuild + - rolldown + - supports-color + - typescript + - webpack + + vite-plugin-dts@5.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)): + dependencies: + unplugin-dts: 1.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3)) + optionalDependencies: + rollup: 4.62.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - - '@rspack/core' - - '@vue/language-core' + - "@rspack/core" + - "@vue/language-core" - esbuild - rolldown - supports-color - typescript - webpack - vite-plugin-dts@5.0.1(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vite-plugin-dts@5.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - unplugin-dts: 1.0.1(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + unplugin-dts: 1.0.2(esbuild@0.28.1)(rolldown@1.1.1)(rollup@4.62.0)(typescript@6.0.3)(vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) optionalDependencies: - rollup: 4.60.4 - vite: 6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + rollup: 4.62.0 + vite: 6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - - '@rspack/core' - - '@vue/language-core' + - "@rspack/core" + - "@vue/language-core" - esbuild - rolldown - supports-color - typescript - webpack - vite-plugin-eslint@1.8.1(eslint@10.4.1(jiti@2.7.0))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-eslint@1.8.1(eslint@10.5.0(jiti@2.7.0))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@rollup/pluginutils': 4.2.1 - '@types/eslint': 8.56.12 - eslint: 10.4.1(jiti@2.7.0) + "@rollup/pluginutils": 4.2.1 + "@types/eslint": 8.56.12 + eslint: 10.5.0(jiti@2.7.0) rollup: 2.80.0 - vite: 8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-inspect@11.3.3(@nuxt/kit@4.4.6(magicast@0.5.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - ansis: 4.3.0 - debug: 4.4.3(supports-color@5.5.0) + ansis: 4.3.1 error-stack-parser-es: 1.0.5 + obug: 2.1.3 ohash: 2.0.11 - open: 10.2.0 + open: 11.0.0 perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-dev-rpc: 1.1.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) optionalDependencies: - '@nuxt/kit': 4.4.6(magicast@0.5.3) - transitivePeerDependencies: - - supports-color + "@nuxt/kit": 4.4.8(magicast@0.5.3) - vite-plugin-lib-inject-css@2.2.2(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-lib-inject-css@2.2.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@ast-grep/napi': 0.36.3 + "@ast-grep/napi": 0.36.3 magic-string: 0.30.21 picocolors: 1.1.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)): + vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@babel/core': 7.29.0 - '@types/babel__core': 7.20.5 + "@babel/core": 7.29.0 + "@types/babel__core": 7.20.5 babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.13) merge-anything: 5.1.7 solid-js: 1.9.13 solid-refresh: 0.6.3(solid-js@1.9.13) - vite: 5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vitefu: 1.1.3(vite@5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)) + vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) optionalDependencies: - '@testing-library/jest-dom': 6.9.1 + "@testing-library/jest-dom": 6.9.1 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)): + vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@babel/core': 7.29.0 - '@types/babel__core': 7.20.5 + "@babel/core": 7.29.0 + "@types/babel__core": 7.20.5 babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.13) merge-anything: 5.1.7 solid-js: 1.9.13 solid-refresh: 0.6.3(solid-js@1.9.13) - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vitefu: 1.1.3(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) optionalDependencies: - '@testing-library/jest-dom': 6.9.1 + "@testing-library/jest-dom": 6.9.1 transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.4.0(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@6.0.3)): + vite-plugin-vue-tracer@1.4.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@6.0.3) - - vite-tsconfig-paths@6.1.1(typescript@6.0.2)(vite@8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): - dependencies: - debug: 4.4.3(supports-color@5.5.0) - globrex: 0.1.2 - tsconfck: 3.1.6(typescript@6.0.2) - vite: 8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - transitivePeerDependencies: - - supports-color - - typescript + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.38(typescript@6.0.3) - vite-tsconfig-paths@6.1.1(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@6.0.3) - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0): + vite@5.4.21(@types/node@25.9.3)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0): dependencies: esbuild: 0.21.5 postcss: 8.5.15 - rollup: 4.60.4 + rollup: 4.62.0 optionalDependencies: - '@types/node': 20.19.41 + "@types/node": 25.9.3 fsevents: 2.3.3 - less: 4.6.4 + less: 4.6.6 lightningcss: 1.32.0 - sass: 1.100.0 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 - vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0): + vite@6.4.3(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: - esbuild: 0.21.5 + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.15 - rollup: 4.60.4 + rollup: 4.62.0 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 fsevents: 2.3.3 - less: 4.6.4 + jiti: 2.7.0 + less: 4.6.6 lightningcss: 1.32.0 - sass: 1.100.0 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 + yaml: 2.9.0 - vite@6.4.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: - esbuild: 0.25.12 + esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.15 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.62.0 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 + less: 4.6.6 lightningcss: 1.32.0 - sass: 1.100.0 + sass: 1.99.0 stylus: 0.64.0 terser: 5.48.0 yaml: 2.9.0 - vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0): + vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: - esbuild: 0.27.3 + esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.15 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.62.0 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.4.2 + less: 4.6.6 lightningcss: 1.32.0 - sass: 1.97.3 + sass: 1.101.0 stylus: 0.64.0 - terser: 5.46.0 + terser: 5.48.0 yaml: 2.9.0 - vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite@8.0.14(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: - esbuild: 0.27.7 - fdir: 6.5.0(picomatch@4.0.4) + lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rolldown: 1.0.2 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 + "@types/node": 25.9.3 + esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - lightningcss: 1.32.0 - sass: 1.100.0 + less: 4.6.6 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 yaml: 2.9.0 - vite@8.0.14(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rolldown: 1.0.2 - tinyglobby: 0.2.16 + rolldown: 1.0.3 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 20.19.41 - esbuild: 0.28.0 + "@types/node": 20.19.43 + esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - sass: 1.100.0 + less: 4.6.6 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 yaml: 2.9.0 - vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rolldown: 1.0.2 - tinyglobby: 0.2.16 + rolldown: 1.0.3 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 - esbuild: 0.28.0 + "@types/node": 25.9.3 + esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - sass: 1.100.0 + less: 4.6.6 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 yaml: 2.9.0 - vite@8.0.8(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rolldown: 1.0.0-rc.15 - tinyglobby: 0.2.16 + rolldown: 1.0.0-rc.12(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1) + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.1 - esbuild: 0.28.0 + "@types/node": 25.9.3 + esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - sass: 1.100.0 + less: 4.6.6 + sass: 1.101.0 stylus: 0.64.0 terser: 5.48.0 yaml: 2.9.0 + transitivePeerDependencies: + - "@emnapi/core" + - "@emnapi/runtime" - vitefu@0.2.5(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(terser@5.48.0)): - optionalDependencies: - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - - vitefu@1.1.3(vite@5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)): + vitefu@1.1.3(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): optionalDependencies: - vite: 5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vitefu@1.1.3(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)): + vitefu@1.1.3(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): optionalDependencies: - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vitefu@1.1.3(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): optionalDependencies: - vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vitefu@1.1.3(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): optionalDependencies: - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - - vitepress@1.6.4(@algolia/client-search@5.52.1)(@types/node@25.9.1)(@types/react@18.3.29)(axios@1.16.1)(fuse.js@7.3.0)(less@4.6.4)(lightningcss@1.32.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.100.0)(search-insights@2.17.3)(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3): - dependencies: - '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.52.1)(@types/react@18.3.29)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.83 - '@shikijs/core': 2.5.0 - '@shikijs/transformers': 2.5.0 - '@shikijs/types': 2.5.0 - '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0))(vue@3.5.34(typescript@6.0.3)) - '@vue/devtools-api': 7.7.9 - '@vue/shared': 3.5.34 - '@vueuse/core': 12.8.2(typescript@6.0.3) - '@vueuse/integrations': 12.8.2(axios@1.16.1)(focus-trap@7.8.0)(fuse.js@7.3.0)(typescript@6.0.3) + vite: 8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + + vitepress@1.6.4(@algolia/client-search@5.54.1)(@types/node@25.9.3)(@types/react@18.3.31)(axios@1.18.0)(fuse.js@7.4.2)(less@4.6.6)(lightningcss@1.32.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.101.0)(search-insights@2.17.3)(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3): + dependencies: + "@docsearch/css": 3.8.2 + "@docsearch/js": 3.8.2(@algolia/client-search@5.54.1)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + "@iconify-json/simple-icons": 1.2.86 + "@shikijs/core": 2.5.0 + "@shikijs/transformers": 2.5.0 + "@shikijs/types": 2.5.0 + "@types/markdown-it": 14.1.2 + "@vitejs/plugin-vue": 5.2.4(vite@5.4.21(@types/node@25.9.3)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0))(vue@3.5.38(typescript@6.0.3)) + "@vue/devtools-api": 7.7.9 + "@vue/shared": 3.5.38 + "@vueuse/core": 12.8.2(typescript@6.0.3) + "@vueuse/integrations": 12.8.2(axios@1.18.0)(focus-trap@7.8.0)(fuse.js@7.4.2)(typescript@6.0.3) focus-trap: 7.8.0 mark.js: 8.11.1 minisearch: 7.2.0 shiki: 2.5.0 - vite: 5.4.21(@types/node@25.9.1)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vue: 3.5.34(typescript@6.0.3) + vite: 5.4.21(@types/node@25.9.3)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0) + vue: 3.5.38(typescript@6.0.3) optionalDependencies: postcss: 8.5.15 transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' + - "@algolia/client-search" + - "@types/node" + - "@types/react" - async-validator - axios - change-case @@ -78784,100 +83854,125 @@ snapshots: - typescript - universal-cookie - vitest@1.6.1(@types/node@20.19.41)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0): + vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 1.6.1 - '@vitest/runner': 1.6.1 - '@vitest/snapshot': 1.6.1 - '@vitest/spy': 1.6.1 - '@vitest/utils': 1.6.1 - acorn-walk: 8.3.5 - chai: 4.5.0 - debug: 4.4.3(supports-color@5.5.0) - execa: 8.0.1 - local-pkg: 0.5.1 + "@vitest/expect": 4.1.7 + "@vitest/mocker": 4.1.7(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@vitest/pretty-format": 4.1.7 + "@vitest/runner": 4.1.7 + "@vitest/snapshot": 4.1.7 + "@vitest/spy": 4.1.7 + "@vitest/utils": 4.1.7 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 magic-string: 0.30.21 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.10.0 - strip-literal: 2.1.1 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.1.0 tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.21(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) - vite-node: 1.6.1(@types/node@20.19.41)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0) + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.19.41 + "@opentelemetry/api": 1.9.1 + "@types/node": 25.9.3 jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) transitivePeerDependencies: - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser + - msw - vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.7 - '@vitest/mocker': 4.1.7(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.7 - '@vitest/runner': 4.1.7 - '@vitest/snapshot': 4.1.7 - '@vitest/spy': 4.1.7 - '@vitest/utils': 4.1.7 + "@vitest/expect": 4.1.9 + "@vitest/mocker": 4.1.9(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@vitest/pretty-format": 4.1.9 + "@vitest/runner": 4.1.9 + "@vitest/snapshot": 4.1.9 + "@vitest/spy": 4.1.9 + "@vitest/utils": 4.1.9 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 - obug: 2.1.1 + obug: 2.1.3 pathe: 2.0.3 picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.2.2 - tinyglobby: 0.2.16 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(stylus@0.64.0)(terser@5.46.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@opentelemetry/api': 1.9.1 - '@types/node': 25.9.1 - '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) - '@vitest/ui': 4.1.7(vitest@4.1.7) + "@opentelemetry/api": 1.9.1 + "@types/node": 20.19.43 + "@vitest/coverage-v8": 4.1.9(vitest@4.1.9) + "@vitest/ui": 4.1.9(vitest@4.1.9) + jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) + transitivePeerDependencies: + - msw + + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + "@vitest/expect": 4.1.9 + "@vitest/mocker": 4.1.9(vite@7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@vitest/pretty-format": 4.1.9 + "@vitest/runner": 4.1.9 + "@vitest/snapshot": 4.1.9 + "@vitest/spy": 4.1.9 + "@vitest/utils": 4.1.9 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + "@opentelemetry/api": 1.9.1 + "@types/node": 25.9.3 + "@vitest/coverage-v8": 4.1.9(vitest@4.1.9) + "@vitest/ui": 4.1.9(vitest@4.1.9) jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) transitivePeerDependencies: - msw optional: true - vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.7 - '@vitest/mocker': 4.1.7(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.7 - '@vitest/runner': 4.1.7 - '@vitest/snapshot': 4.1.7 - '@vitest/spy': 4.1.7 - '@vitest/utils': 4.1.7 + "@vitest/expect": 4.1.9 + "@vitest/mocker": 4.1.9(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + "@vitest/pretty-format": 4.1.9 + "@vitest/runner": 4.1.9 + "@vitest/snapshot": 4.1.9 + "@vitest/spy": 4.1.9 + "@vitest/utils": 4.1.9 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 - obug: 2.1.1 + obug: 2.1.3 pathe: 2.0.3 picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.2.2 - tinyglobby: 0.2.16 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass@1.100.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@opentelemetry/api': 1.9.1 - '@types/node': 25.9.1 - '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) - '@vitest/ui': 4.1.7(vitest@4.1.7) + "@opentelemetry/api": 1.9.1 + "@types/node": 25.9.3 + "@vitest/coverage-v8": 4.1.9(vitest@4.1.9) + "@vitest/ui": 4.1.9(vitest@4.1.9) jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) transitivePeerDependencies: - msw @@ -78894,16 +83989,16 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 volar-service-emmet@0.0.70(@volar/language-service@2.4.28): dependencies: - '@emmetio/css-parser': 0.4.1 - '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.11.0 + "@emmetio/css-parser": 0.4.1 + "@emmetio/html-matcher": 1.3.0 + "@vscode/emmet-helper": 2.11.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 volar-service-html@0.0.70(@volar/language-service@2.4.28): dependencies: @@ -78911,38 +84006,38 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 - volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.8.3): + volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.8.4): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 - prettier: 3.8.3 + "@volar/language-service": 2.4.28 + prettier: 3.8.4 volar-service-typescript-twoslash-queries@0.0.70(@volar/language-service@2.4.28): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 volar-service-typescript@0.0.70(@volar/language-service@2.4.28): dependencies: path-browserify: 1.0.1 - semver: 7.8.1 + semver: 7.8.4 typescript-auto-import-cache: 0.3.6 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 volar-service-yaml@0.0.70(@volar/language-service@2.4.28): dependencies: vscode-uri: 3.1.0 yaml-language-server: 1.20.0 optionalDependencies: - '@volar/language-service': 2.4.28 + "@volar/language-service": 2.4.28 vscode-css-languageservice@4.3.0: dependencies: @@ -78953,7 +84048,7 @@ snapshots: vscode-css-languageservice@6.3.10: dependencies: - '@vscode/l10n': 0.0.18 + "@vscode/l10n": 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 @@ -78967,32 +84062,41 @@ snapshots: vscode-html-languageservice@5.6.2: dependencies: - '@vscode/l10n': 0.0.18 + "@vscode/l10n": 0.0.18 vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 + vscode-languageserver-types: 3.18.0 vscode-uri: 3.1.0 vscode-json-languageservice@4.1.8: dependencies: jsonc-parser: 3.3.1 vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 + vscode-languageserver-types: 3.18.0 vscode-nls: 5.2.0 vscode-uri: 3.1.0 vscode-jsonrpc@8.2.0: {} + vscode-jsonrpc@9.0.0: {} + vscode-languageserver-protocol@3.17.5: dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 + vscode-languageserver-protocol@3.18.0: + dependencies: + vscode-jsonrpc: 9.0.0 + vscode-languageserver-types: 3.18.0 + vscode-languageserver-textdocument@1.0.12: {} vscode-languageserver-types@3.16.0-next.2: {} vscode-languageserver-types@3.17.5: {} + vscode-languageserver-types@3.18.0: {} + vscode-languageserver@9.0.1: dependencies: vscode-languageserver-protocol: 3.17.5 @@ -79017,46 +84121,46 @@ snapshots: vue-devtools-stub@0.1.0: {} - vue-eslint-parser@10.4.0(eslint@10.4.1(jiti@2.7.0)): + vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 espree: 11.2.0 esquery: 1.7.0 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - vue-eslint-parser@9.4.3(eslint@10.4.1(jiti@2.7.0)): + vue-eslint-parser@9.4.3(eslint@10.5.0(jiti@2.7.0)): dependencies: - debug: 4.4.3(supports-color@5.5.0) - eslint: 10.4.1(jiti@2.7.0) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.7.0 lodash: 4.18.1 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color vue-hot-reload-api@2.3.4: {} - vue-loader@15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vue-loader@15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + "@vue/component-compiler-utils": 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) + css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 1.0.2 loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - prettier: 3.8.3 + "@vue/compiler-sfc": 3.5.38 + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + prettier: 3.8.4 vue-template-compiler: 2.7.16 transitivePeerDependencies: - arc-templates @@ -79113,19 +84217,19 @@ snapshots: - walrus - whiskers - vue-loader@15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(lodash@4.18.1)(prettier@3.8.3)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vue-loader@15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(lodash@4.18.1)(prettier@3.8.4)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + "@vue/component-compiler-utils": 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) + css-loader: 5.2.7(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 1.0.2 loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - prettier: 3.8.3 + "@vue/compiler-sfc": 3.5.38 + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + prettier: 3.8.4 vue-template-compiler: 2.7.16 transitivePeerDependencies: - arc-templates @@ -79182,19 +84286,19 @@ snapshots: - walrus - whiskers - vue-loader@15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vue-loader@15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@6.11.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - css-loader: 6.11.0(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + "@vue/component-compiler-utils": 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) + css-loader: 6.11.0(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 1.0.2 loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - prettier: 3.8.3 + "@vue/compiler-sfc": 3.5.38 + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + prettier: 3.8.4 vue-template-compiler: 2.7.16 transitivePeerDependencies: - arc-templates @@ -79251,19 +84355,19 @@ snapshots: - walrus - whiskers - vue-loader@15.11.1(@vue/compiler-sfc@3.5.34)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.3)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vue-loader@15.11.1(@vue/compiler-sfc@3.5.38)(cache-loader@4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(css-loader@7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))))(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(prettier@3.8.4)(pug@3.0.4)(underscore@1.13.8)(vue-template-compiler@2.7.16)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@vue/component-compiler-utils': 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) - css-loader: 7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + "@vue/component-compiler-utils": 3.3.0(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(lodash@4.18.1)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(underscore@1.13.8) + css-loader: 7.1.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) hash-sum: 1.0.2 loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 - cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - prettier: 3.8.3 + "@vue/compiler-sfc": 3.5.38 + cache-loader: 4.1.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + prettier: 3.8.4 vue-template-compiler: 2.7.16 transitivePeerDependencies: - arc-templates @@ -79320,14 +84424,14 @@ snapshots: - walrus - whiskers - vue-loader@17.4.2(@vue/compiler-sfc@3.5.34)(vue@2.7.16)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + vue-loader@17.4.2(@vue/compiler-sfc@3.5.38)(vue@2.7.16)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 - watchpack: 2.5.1 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + watchpack: 2.5.2 + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 + "@vue/compiler-sfc": 3.5.38 vue: 2.7.16 vue-meta@2.4.0: @@ -79345,17 +84449,17 @@ snapshots: dependencies: vue: 2.7.16 - vue-router@4.6.4(vue@3.5.34(typescript@6.0.3)): + vue-router@4.6.4(vue@3.5.38(typescript@6.0.3)): dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.34(typescript@6.0.3) + "@vue/devtools-api": 6.6.4 + vue: 3.5.38(typescript@6.0.3) - vue-router@5.0.7(@vue/compiler-sfc@3.5.34)(vue@3.5.34(typescript@6.0.3)): + vue-router@5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)): dependencies: - '@babel/generator': 8.0.0-rc.5 - '@vue-macros/common': 3.1.2(vue@3.5.34(typescript@6.0.3)) - '@vue/devtools-api': 8.1.2 - ast-walker-scope: 0.8.3 + "@babel/generator": 8.0.0 + "@vue-macros/common": 3.1.2(vue@3.5.38(typescript@6.0.3)) + "@vue/devtools-api": 8.1.3 + ast-walker-scope: 0.9.0 chokidar: 5.0.0 json5: 2.2.3 local-pkg: 1.2.1 @@ -79365,15 +84469,14 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.4 scule: 1.3.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unplugin: 3.0.0 unplugin-utils: 0.3.1 - vue: 3.5.34(typescript@6.0.3) + vue: 3.5.38(typescript@6.0.3) yaml: 2.9.0 optionalDependencies: - '@vue/compiler-sfc': 3.5.34 - - vue-runtime-helpers@1.1.2: {} + "@vue/compiler-sfc": 3.5.38 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vue-server-renderer@2.7.16(patch_hash=7374e4bf5b7956d7097feec494aaea43bf8f6a02e2b64e8a3cc57e19c2f65132): dependencies: @@ -79394,17 +84497,17 @@ snapshots: vue-template-babel-compiler@2.0.0(vue-template-compiler@2.7.16): dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.29.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 + "@babel/core": 7.29.0 + "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6(@babel/core@7.29.0) + "@babel/plugin-proposal-object-rest-spread": 7.20.7(@babel/core@7.29.0) + "@babel/plugin-proposal-optional-chaining": 7.21.0(@babel/core@7.29.0) + "@babel/plugin-transform-arrow-functions": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-block-scoping": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-computed-properties": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.0) + "@babel/plugin-transform-spread": 7.29.7(@babel/core@7.29.0) + "@babel/types": 7.29.7 deepmerge: 4.3.1 vue-template-compiler: 2.7.16 transitivePeerDependencies: @@ -79418,24 +84521,24 @@ snapshots: vue-template-es2015-compiler@1.9.1: {} - vue-tsc@3.3.1(typescript@6.0.3): + vue-tsc@3.3.5(typescript@6.0.3): dependencies: - '@volar/typescript': 2.4.28 - '@vue/language-core': 3.3.1 + "@volar/typescript": 2.4.28 + "@vue/language-core": 3.3.5 typescript: 6.0.3 vue@2.7.16: dependencies: - '@vue/compiler-sfc': 2.7.16 + "@vue/compiler-sfc": 2.7.16 csstype: 3.2.3 - vue@3.5.34(typescript@6.0.3): + vue@3.5.38(typescript@6.0.3): dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-sfc': 3.5.34 - '@vue/runtime-dom': 3.5.34 - '@vue/server-renderer': 3.5.34(vue@3.5.34(typescript@6.0.3)) - '@vue/shared': 3.5.34 + "@vue/compiler-dom": 3.5.38 + "@vue/compiler-sfc": 3.5.38 + "@vue/runtime-dom": 3.5.38 + "@vue/server-renderer": 3.5.38(vue@3.5.38(typescript@6.0.3)) + "@vue/shared": 3.5.38 optionalDependencies: typescript: 6.0.3 @@ -79453,7 +84556,7 @@ snapshots: wait-on@8.0.5: dependencies: - axios: 1.16.1 + axios: 1.18.0 joi: 18.2.1 lodash: 4.18.1 minimist: 1.2.8 @@ -79474,20 +84577,20 @@ snapshots: walk-sync@1.1.4: dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 1.1.2 walk-sync@2.2.0: dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 2.0.1 minimatch: 3.1.5 walk-sync@3.0.0: dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 2.0.1 minimatch: 3.1.5 @@ -79504,7 +84607,7 @@ snapshots: dependencies: makeerror: 1.0.12 - wasm-vips@0.0.16: {} + wasm-vips@0.0.17: {} watch-detector@1.0.2: dependencies: @@ -79536,6 +84639,10 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + watchpack@2.5.2: + dependencies: + graceful-fs: 4.2.11 + watskeburt@5.0.3: {} wbuf@1.7.3: @@ -79549,42 +84656,23 @@ snapshots: weak-lru-cache@1.2.2: optional: true - web-component-analyzer@1.1.7: + web-component-analyzer@2.0.0: dependencies: fast-glob: 3.3.3 - ts-simple-type: 1.0.7 - typescript: 3.9.10 - yargs: 15.4.1 + ts-simple-type: 2.0.0-next.0 + typescript: 5.2.2 + yargs: 17.7.2 web-namespaces@2.0.1: {} web-vitals@4.2.4: {} - web-vitals@5.2.0: {} + web-vitals@5.3.0: {} webdriver-bidi-protocol@0.4.1: {} webdriver-bidi-protocol@0.4.2: {} - webdriver-js-extender@2.1.0: - dependencies: - '@types/selenium-webdriver': 3.0.26 - selenium-webdriver: 3.6.0 - - webdriver-manager@12.1.9: - dependencies: - adm-zip: 0.5.17 - chalk: 1.1.3 - del: 2.2.2 - glob: 7.2.3 - ini: 1.3.8 - minimist: 1.2.8 - q: 1.4.1 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.7.2 - xml2js: 0.4.23 - webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} @@ -79595,8 +84683,8 @@ snapshots: webpack-bundle-analyzer@4.10.2: dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.16.0 + "@discoveryjs/json-ext": 0.5.7 + acorn: 8.17.0 acorn-walk: 8.3.5 commander: 7.2.0 debounce: 1.2.1 @@ -79613,8 +84701,8 @@ snapshots: webpack-bundle-analyzer@5.3.0: dependencies: - '@discoveryjs/json-ext': 0.6.3 - acorn: 8.16.0 + "@discoveryjs/json-ext": 0.6.3 + acorn: 8.17.0 acorn-walk: 8.3.5 commander: 14.0.3 escape-string-regexp: 5.0.0 @@ -79632,32 +84720,12 @@ snapshots: deepmerge: 1.5.2 javascript-stringify: 2.1.0 - webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2): - dependencies: - '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.107.2) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.107.2) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.107.2) - colorette: 2.0.20 - commander: 10.0.1 - cross-spawn: 7.0.6 - envinfo: 7.21.0 - fastest-levenshtein: 1.0.16 - import-local: 3.2.0 - interpret: 3.1.1 - rechoir: 0.8.0 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-merge: 5.10.0 - optionalDependencies: - webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2) - - webpack-cli@5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1): + webpack-cli@5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2): dependencies: - '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.107.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.107.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.4)(webpack@5.107.1) + "@discoveryjs/json-ext": 0.5.7 + "@webpack-cli/configtest": 2.1.1(webpack-cli@5.1.4)(webpack@5.107.2) + "@webpack-cli/info": 2.0.2(webpack-cli@5.1.4)(webpack@5.107.2) + "@webpack-cli/serve": 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.107.2) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -79666,60 +84734,44 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 5.3.0 - webpack-dev-server: 5.2.4(tslib@2.8.1)(webpack-cli@5.1.4)(webpack@5.107.1) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.107.2) - webpack-cli@7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1): + webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2): dependencies: - '@discoveryjs/json-ext': 1.1.0 + "@discoveryjs/json-ext": 1.1.0 commander: 14.0.3 cross-spawn: 7.0.6 envinfo: 7.21.0 - fastest-levenshtein: 1.0.16 import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 5.3.0 - webpack-dev-server: 5.2.4(tslib@2.8.1)(webpack-cli@7.0.2)(webpack@5.107.1) + webpack-dev-server: 5.2.5(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2) - webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2): - dependencies: - '@discoveryjs/json-ext': 1.1.0 - commander: 14.0.3 - cross-spawn: 7.0.6 - envinfo: 7.21.0 - import-local: 3.2.0 - interpret: 3.1.1 - rechoir: 0.8.0 - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) - webpack-merge: 6.0.1 - optionalDependencies: - webpack-bundle-analyzer: 5.3.0 - webpack-dev-server: 5.2.4(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2) - - webpack-dev-middleware@5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-dev-middleware@5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: colorette: 2.0.20 memfs: 3.6.0 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) - webpack-dev-middleware@5.3.4(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-dev-middleware@5.3.4(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: colorette: 2.0.20 memfs: 3.6.0 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-dev-middleware@5.3.4(webpack@5.107.2): dependencies: @@ -79728,59 +84780,32 @@ snapshots: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.3 - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - colorette: 2.0.20 - memfs: 4.57.2(tslib@2.8.1) - mime-types: 3.0.2 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.3 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - transitivePeerDependencies: - - tslib - - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.107.1): - dependencies: - colorette: 2.0.20 - memfs: 4.57.2(tslib@2.8.1) - mime-types: 3.0.2 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.3 - optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - transitivePeerDependencies: - - tslib + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.107.2): dependencies: colorette: 2.0.20 - memfs: 4.57.2(tslib@2.8.1) + memfs: 4.57.7(tslib@2.8.1) mime-types: 3.0.2 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) transitivePeerDependencies: - tslib - optional: true - webpack-dev-server@4.15.2(debug@4.4.3)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-dev-server@4.15.2(debug@4.4.3(supports-color@8.1.1))(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 + "@types/bonjour": 3.5.13 + "@types/connect-history-api-fallback": 1.5.4 + "@types/express": 4.17.25 + "@types/serve-index": 1.9.4 + "@types/serve-static": 1.15.10 + "@types/sockjs": 0.3.36 + "@types/ws": 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 @@ -79789,9 +84814,9 @@ snapshots: express: 4.22.2 graceful-fs: 4.2.11 html-entities: 2.6.0 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) + http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 @@ -79800,28 +84825,28 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-middleware: 5.3.4(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ws: 8.21.0 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-dev-server@4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.107.2): dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 + "@types/bonjour": 3.5.13 + "@types/connect-history-api-fallback": 1.5.4 + "@types/express": 4.17.25 + "@types/serve-index": 1.9.4 + "@types/serve-static": 1.15.10 + "@types/sockjs": 0.3.36 + "@types/ws": 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 @@ -79830,9 +84855,9 @@ snapshots: express: 4.22.2 graceful-fs: 4.2.11 html-entities: 2.6.0 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) + http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 @@ -79841,28 +84866,28 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + webpack-dev-middleware: 5.3.4(webpack@5.107.2) ws: 8.21.0 optionalDependencies: - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-dev-server@4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.107.2): + webpack-dev-server@4.15.2(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 + "@types/bonjour": 3.5.13 + "@types/connect-history-api-fallback": 1.5.4 + "@types/express": 4.17.25 + "@types/serve-index": 1.9.4 + "@types/serve-static": 1.15.10 + "@types/sockjs": 0.3.36 + "@types/ws": 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 @@ -79871,9 +84896,9 @@ snapshots: express: 4.22.2 graceful-fs: 4.2.11 html-entities: 2.6.0 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) + http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 @@ -79882,158 +84907,38 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.107.2) + webpack-dev-middleware: 5.3.4(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) ws: 8.21.0 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-dev-server@5.2.5(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2): dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 + "@types/bonjour": 3.5.13 + "@types/connect-history-api-fallback": 1.5.4 + "@types/express": 4.17.25 + "@types/express-serve-static-core": 4.19.8 + "@types/serve-index": 1.9.4 + "@types/serve-static": 1.15.10 + "@types/sockjs": 0.3.36 + "@types/ws": 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 connect-history-api-fallback: 2.0.0 express: 4.22.2 graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) + http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) ipaddr.js: 2.4.0 - launch-editor: 2.13.2 - open: 10.2.0 - p-retry: 6.2.1 - schema-utils: 4.3.3 - selfsigned: 5.5.0 - serve-index: 1.9.2 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - ws: 8.21.0 - optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - tslib - - utf-8-validate - - webpack-dev-server@5.2.4(tslib@2.8.1)(webpack-cli@5.1.4)(webpack@5.107.1): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 4.22.2 - graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) - ipaddr.js: 2.4.0 - launch-editor: 2.13.2 - open: 10.2.0 - p-retry: 6.2.1 - schema-utils: 4.3.3 - selfsigned: 5.5.0 - serve-index: 1.9.2 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.107.1) - ws: 8.21.0 - optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - tslib - - utf-8-validate - - webpack-dev-server@5.2.4(tslib@2.8.1)(webpack-cli@7.0.2)(webpack@5.107.1): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 4.22.2 - graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) - ipaddr.js: 2.4.0 - launch-editor: 2.13.2 - open: 10.2.0 - p-retry: 6.2.1 - schema-utils: 4.3.3 - selfsigned: 5.5.0 - serve-index: 1.9.2 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.107.1) - ws: 8.21.0 - optionalDependencies: - webpack: 5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2) - webpack-cli: 7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - tslib - - utf-8-validate - - webpack-dev-server@5.2.4(tslib@2.8.1)(webpack-cli@7.0.3)(webpack@5.107.2): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 4.22.2 - graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3) - ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 open: 10.2.0 p-retry: 6.2.1 schema-utils: 4.3.3 @@ -80044,15 +84949,14 @@ snapshots: webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.107.2) ws: 8.21.0 optionalDependencies: - webpack: 5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3) - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - bufferutil - debug - supports-color - tslib - utf-8-validate - optional: true webpack-fix-style-only-entries@0.6.1: {} @@ -80067,10 +84971,10 @@ snapshots: ansi-colors: 3.2.4 uuid: 3.4.0 - webpack-manifest-plugin@4.1.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpack-manifest-plugin@4.1.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: tapable: 2.3.3 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 2.3.1 webpack-merge@5.10.0: @@ -80101,30 +85005,16 @@ snapshots: webpack-sources@3.5.0: {} - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.7(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - typed-assert: 1.0.9 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optionalDependencies: - html-webpack-plugin: 5.6.7(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.7(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): - dependencies: - typed-assert: 1.0.9 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) - optionalDependencies: - html-webpack-plugin: 5.6.7(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - webpack-virtual-modules@0.4.6: {} webpack-virtual-modules@0.6.2: {} - webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): + webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/wasm-edit': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 + "@webassemblyjs/ast": 1.9.0 + "@webassemblyjs/helper-module-context": 1.9.0 + "@webassemblyjs/wasm-edit": 1.9.0 + "@webassemblyjs/wasm-parser": 1.9.0 acorn: 6.4.2 ajv: 6.15.0 ajv-keywords: 3.5.2(ajv@6.15.0) @@ -80141,69 +85031,26 @@ snapshots: node-libs-browser: 2.2.1 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.4.6(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) + terser-webpack-plugin: 1.4.6(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) watchpack: 1.7.5 webpack-sources: 1.4.3 optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - supports-color - webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.1 - es-module-lexer: 2.1.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.2 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - watchpack: 2.5.1 - webpack-sources: 3.5.0 - optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack@5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@5.1.4): + webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80214,16 +85061,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack@5.107.1) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80233,18 +85080,18 @@ snapshots: - postcss - uglify-js - webpack@5.107.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.2): + webpack@5.107.2(@swc/core@1.15.41)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@5.1.4): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80255,16 +85102,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(postcss@8.5.15)(webpack@5.107.1) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80274,18 +85121,18 @@ snapshots: - postcss - uglify-js - webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@5.1.4): + webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80296,180 +85143,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(webpack@5.107.1) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.2): - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - loader-runner: 4.3.2 - mime-db: 1.54.0 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(webpack@5.107.1) - watchpack: 2.5.1 - webpack-sources: 3.5.0 - optionalDependencies: - webpack-cli: 7.0.2(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.1) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - loader-runner: 4.3.2 - mime-db: 1.54.0 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(@swc/core@1.15.40)(webpack@5.107.1(@swc/core@1.15.40)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - watchpack: 2.5.1 - webpack-sources: 3.5.0 - optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - loader-runner: 4.3.2 - mime-db: 1.54.0 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2(@swc/core@1.15.40)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - watchpack: 2.5.1 - webpack-sources: 3.5.0 - optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack@5.107.2(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@5.1.4): - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - loader-runner: 4.3.2 - mime-db: 1.54.0 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2) - watchpack: 2.5.1 - webpack-sources: 3.5.0 - optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.107.2) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80478,19 +85161,20 @@ snapshots: - lightningcss - postcss - uglify-js + optional: true - webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): + webpack@5.107.2(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@7.0.3): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80501,16 +85185,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(lightningcss@1.32.0)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.107.2) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80519,20 +85203,19 @@ snapshots: - lightningcss - postcss - uglify-js - optional: true - webpack@5.107.2(@swc/core@1.15.40)(esbuild@0.28.0)(webpack-cli@7.0.3): + webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80543,16 +85226,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(esbuild@0.28.0)(webpack@5.107.2) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(postcss@8.5.15)(webpack@5.107.2) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack-cli: 5.1.4(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@4.15.2)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80562,18 +85245,18 @@ snapshots: - postcss - uglify-js - webpack@5.107.2(@swc/core@1.15.40)(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)): + webpack@5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80584,16 +85267,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(cssnano@6.1.2(postcss@8.5.15))(postcss@8.5.15)(webpack@5.107.2) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(postcss@8.5.15)(webpack@5.107.2) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80603,18 +85286,18 @@ snapshots: - postcss - uglify-js - webpack@5.107.2(@swc/core@1.15.40)(webpack-cli@7.0.3): + webpack@5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3): dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + "@types/estree": 1.0.9 + "@types/json-schema": 7.0.15 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/wasm-edit": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + acorn: 8.17.0 + acorn-import-phases: 1.0.4(acorn@8.17.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 + enhanced-resolve: 5.24.0 es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -80625,16 +85308,16 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(webpack@5.107.2) - watchpack: 2.5.1 + terser-webpack-plugin: 5.6.1(@swc/core@1.15.41)(webpack@5.107.2) + watchpack: 2.5.2 webpack-sources: 3.5.0 optionalDependencies: - webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2) + webpack-cli: 7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2) transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' + - "@minify-html/node" + - "@swc/core" + - "@swc/css" + - "@swc/html" - clean-css - cssnano - csso @@ -80644,7 +85327,7 @@ snapshots: - postcss - uglify-js - webpackbar@6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + webpackbar@6.0.1(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -80653,10 +85336,10 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.10.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) wrap-ansi: 7.0.0 - websocket-driver@0.7.4: + websocket-driver@0.7.5: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 @@ -80680,11 +85363,6 @@ snapshots: whatwg-mimetype@5.0.0: {} - whatwg-url@11.0.0: - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - whatwg-url@14.2.0: dependencies: tr46: 5.1.1 @@ -80692,11 +85370,11 @@ snapshots: whatwg-url@16.0.1(@noble/hashes@2.2.0): dependencies: - '@exodus/bytes': 1.15.1(@noble/hashes@2.2.0) + "@exodus/bytes": 1.15.1(@noble/hashes@2.2.0) tr46: 6.0.0 webidl-conversions: 8.0.1 transitivePeerDependencies: - - '@noble/hashes' + - "@noble/hashes" whatwg-url@5.0.0: dependencies: @@ -80722,7 +85400,7 @@ snapshots: which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 has-tostringtag: 1.0.2 is-async-function: 2.1.1 is-date-object: 1.1.0 @@ -80733,7 +85411,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 which-collection@1.0.2: dependencies: @@ -80746,7 +85424,7 @@ snapshots: which-pm-runs@1.1.0: {} - which-typed-array@1.1.20: + which-typed-array@1.1.22: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 @@ -80811,8 +85489,8 @@ snapshots: winston@3.19.0: dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.8 + "@colors/colors": 1.6.0 + "@dabh/diagnostics": 2.0.8 async: 3.2.6 is-stream: 2.0.1 logform: 2.7.0 @@ -80825,8 +85503,8 @@ snapshots: with@7.0.2: dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 assert-never: 1.4.0 babel-walk: 3.0.0-canary-5 @@ -80852,14 +85530,14 @@ snapshots: workbox-build@6.6.0(@types/babel__core@7.20.5): dependencies: - '@apideck/better-ajv-errors': 0.3.7(ajv@8.20.0) - '@babel/core': 7.29.0 - '@babel/preset-env': 7.29.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.80.0) - '@rollup/plugin-replace': 2.4.2(rollup@2.80.0) - '@surma/rollup-plugin-off-main-thread': 2.2.3 + "@apideck/better-ajv-errors": 0.3.7(ajv@8.20.0) + "@babel/core": 7.29.0 + "@babel/preset-env": 7.29.7(@babel/core@7.29.0) + "@babel/runtime": 7.29.7 + "@rollup/plugin-babel": 5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0) + "@rollup/plugin-node-resolve": 11.2.1(rollup@2.80.0) + "@rollup/plugin-replace": 2.4.2(rollup@2.80.0) + "@surma/rollup-plugin-off-main-thread": 2.2.3 ajv: 8.20.0 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 @@ -80890,19 +85568,13 @@ snapshots: workbox-sw: 6.6.0 workbox-window: 6.6.0 transitivePeerDependencies: - - '@types/babel__core' + - "@types/babel__core" - supports-color - workbox-cacheable-response@6.5.4: - dependencies: - workbox-core: 6.5.4 - workbox-cacheable-response@6.6.0: dependencies: workbox-core: 6.6.0 - workbox-core@6.5.4: {} - workbox-core@6.6.0: {} workbox-expiration@6.6.0: @@ -80955,21 +85627,21 @@ snapshots: workbox-sw@6.6.0: {} - workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2))): + workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.4)(webpack@5.107.2)) + webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) webpack-sources: 1.4.3 workbox-build: 6.6.0(@types/babel__core@7.20.5) transitivePeerDependencies: - - '@types/babel__core' + - "@types/babel__core" - supports-color workbox-window@6.6.0: dependencies: - '@types/trusted-types': 2.0.7 + "@types/trusted-types": 2.0.7 workbox-core: 6.6.0 worker-farm@1.7.0: @@ -80980,7 +85652,7 @@ snapshots: workerpool@3.1.2: dependencies: - '@babel/core': 7.29.0 + "@babel/core": 7.29.0 object-assign: 4.1.1 rsvp: 4.8.5 transitivePeerDependencies: @@ -80992,6 +85664,12 @@ snapshots: wp-prettier@3.0.3: {} + wrap-ansi@10.0.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 8.2.1 + strip-ansi: 7.2.0 + wrap-ansi@3.0.1: dependencies: string-width: 2.1.1 @@ -81097,11 +85775,6 @@ snapshots: xml-name-validator@5.0.0: {} - xml2js@0.4.23: - dependencies: - sax: 1.6.0 - xmlbuilder: 11.0.1 - xml2js@0.6.2: dependencies: sax: 1.6.0 @@ -81142,15 +85815,15 @@ snapshots: yaml-language-server@1.20.0: dependencies: - '@vscode/l10n': 0.0.18 + "@vscode/l10n": 0.0.18 ajv: 8.20.0 ajv-draft-04: 1.0.0(ajv@8.20.0) - prettier: 3.8.3 + prettier: 3.8.4 request-light: 0.5.8 vscode-json-languageservice: 4.1.8 vscode-languageserver: 9.0.1 vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 + vscode-languageserver-types: 3.18.0 vscode-uri: 3.1.0 yaml: 2.7.1 @@ -81275,9 +85948,8 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - yauzl@3.3.1: + yauzl@3.4.0: dependencies: - buffer-crc32: 0.2.13 pend: 1.2.0 yeast@0.1.2: {} @@ -81296,14 +85968,14 @@ snapshots: youch-core@0.3.3: dependencies: - '@poppinss/exception': 1.2.3 + "@poppinss/exception": 1.2.3 error-stack-parser-es: 1.0.5 youch@4.1.1: dependencies: - '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.7.0 - '@speed-highlight/core': 1.2.15 + "@poppinss/colors": 4.1.6 + "@poppinss/dumper": 0.7.0 + "@speed-highlight/core": 1.2.17 cookie-es: 3.1.1 youch-core: 0.3.3 @@ -81315,9 +85987,13 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.25.2(zod@4.3.6): + zod-to-json-schema@3.25.2(zod@4.4.2): + dependencies: + zod: 4.4.2 + + zod-to-json-schema@3.25.2(zod@4.4.3): dependencies: - zod: 4.3.6 + zod: 4.4.3 zod-validation-error@4.0.2(zod@4.4.3): dependencies: @@ -81327,7 +86003,7 @@ snapshots: zod@3.25.76: {} - zod@4.3.6: {} + zod@4.4.2: {} zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7608824670e..2ab9b206cfa 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,6 +6,7 @@ packages: - demo/* - effects/* - engine + - integrations/* - interactions/* - interactions/external/* - interactions/particles/* @@ -82,44 +83,4 @@ packageExtensions: dependencies: vue: "2.7.16" -minimumReleaseAgeExclude: - - eslint-plugin-jsdoc@63.0.0 - - webpack@5.107.0 - - '@nx/devkit@22.7.4' - - '@nx/js@22.7.4' - - '@nx/nx-darwin-arm64@22.7.4' - - '@nx/nx-darwin-x64@22.7.4' - - '@nx/nx-freebsd-x64@22.7.4' - - '@nx/nx-linux-arm-gnueabihf@22.7.4' - - '@nx/nx-linux-arm64-gnu@22.7.4' - - '@nx/nx-linux-arm64-musl@22.7.4' - - '@nx/nx-linux-x64-gnu@22.7.4' - - '@nx/nx-linux-x64-musl@22.7.4' - - '@nx/nx-win32-arm64-msvc@22.7.4' - - '@nx/nx-win32-x64-msvc@22.7.4' - - '@nx/workspace@22.7.4' - - '@typescript-eslint/eslint-plugin@8.60.0' - - '@typescript-eslint/parser@8.60.0' - - '@typescript-eslint/project-service@8.60.0' - - '@typescript-eslint/scope-manager@8.60.0' - - '@typescript-eslint/tsconfig-utils@8.60.0' - - '@typescript-eslint/type-utils@8.60.0' - - '@typescript-eslint/types@8.60.0' - - '@typescript-eslint/typescript-estree@8.60.0' - - '@typescript-eslint/utils@8.60.0' - - '@typescript-eslint/visitor-keys@8.60.0' - - nx@22.7.4 - - typescript-eslint@8.60.0 - - webpack@5.107.2 - - '@commitlint/cli@21.0.2' - - '@commitlint/config-conventional@21.0.2' - - '@commitlint/is-ignored@21.0.2' - - '@commitlint/lint@21.0.2' - - '@commitlint/load@21.0.2' - - '@commitlint/message@21.0.2' - - '@commitlint/parse@21.0.2' - - '@commitlint/read@21.0.2' - - '@commitlint/rules@21.0.2' - - '@commitlint/top-level@21.0.2' - - '@stencil/core@4.43.5' - - tsdown@0.22.1 +minimumReleaseAge: 0 diff --git a/presets/ambient/CHANGELOG.md b/presets/ambient/CHANGELOG.md index 7843f083fff..049569c62a9 100644 --- a/presets/ambient/CHANGELOG.md +++ b/presets/ambient/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-ambient diff --git a/presets/ambient/README.md b/presets/ambient/README.md index cb2496f9f1a..60753efc590 100644 --- a/presets/ambient/README.md +++ b/presets/ambient/README.md @@ -8,7 +8,7 @@ [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/presets/ambient/package.dist.json b/presets/ambient/package.dist.json index 9604fdbfaba..a6a0055b839 100644 --- a/presets/ambient/package.dist.json +++ b/presets/ambient/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-ambient", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ambient preset", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/ambient/package.json b/presets/ambient/package.json index 9a09820b89c..e21f3539405 100644 --- a/presets/ambient/package.json +++ b/presets/ambient/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-ambient", - "version": "4.1.3", - "description": "tsParticles ambient preset", + "version": "4.2.0", + "description": "tsParticles preset for creating ambient, floating background particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "ambient", + "floating" ], "publishConfig": { "directory": "dist", @@ -122,7 +89,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/ambient/src/index.lazy.ts b/presets/ambient/src/index.lazy.ts index 9c6562a1f9d..67cd8ad1079 100644 --- a/presets/ambient/src/index.lazy.ts +++ b/presets/ambient/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const presetName = "ambient"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAmbientPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/ambient/src/index.ts b/presets/ambient/src/index.ts index 2952099879b..868ccb64788 100644 --- a/presets/ambient/src/index.ts +++ b/presets/ambient/src/index.ts @@ -5,7 +5,7 @@ import { options } from "./options.js"; const presetName = "ambient"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadAmbientPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/bigCircles/CHANGELOG.md b/presets/bigCircles/CHANGELOG.md index 53fce95b628..774c0b65dd3 100644 --- a/presets/bigCircles/CHANGELOG.md +++ b/presets/bigCircles/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-big-circles diff --git a/presets/bigCircles/package.dist.json b/presets/bigCircles/package.dist.json index 4d51ada2a09..b45789467c9 100644 --- a/presets/bigCircles/package.dist.json +++ b/presets/bigCircles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-big-circles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles big circles preset", "homepage": "https://particles.js.org", "repository": { @@ -105,8 +105,8 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/bigCircles/package.json b/presets/bigCircles/package.json index d78ad0d31c2..a07d3aa2780 100644 --- a/presets/bigCircles/package.json +++ b/presets/bigCircles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-big-circles", - "version": "4.1.3", - "description": "tsParticles big circles preset", + "version": "4.2.0", + "description": "tsParticles preset for creating large, slowly moving circular particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "big-circles", + "circles", + "slow" ], "publishConfig": { "directory": "dist", @@ -121,7 +89,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/bigCircles/src/index.lazy.ts b/presets/bigCircles/src/index.lazy.ts index 06344d4715b..d81c391f6b0 100644 --- a/presets/bigCircles/src/index.lazy.ts +++ b/presets/bigCircles/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const presetNames = ["bigCircles", "big-circles"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBigCirclesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/bigCircles/src/index.ts b/presets/bigCircles/src/index.ts index b974531adfc..cda1a9cc79e 100644 --- a/presets/bigCircles/src/index.ts +++ b/presets/bigCircles/src/index.ts @@ -5,7 +5,7 @@ import { options } from "./options.js"; const presetNames = ["bigCircles", "big-circles"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBigCirclesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/bubbles/CHANGELOG.md b/presets/bubbles/CHANGELOG.md index 975fa270cb4..28f10162918 100644 --- a/presets/bubbles/CHANGELOG.md +++ b/presets/bubbles/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-bubbles diff --git a/presets/bubbles/package.dist.json b/presets/bubbles/package.dist.json index 9961a4013e8..79f63429bce 100644 --- a/presets/bubbles/package.dist.json +++ b/presets/bubbles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-bubbles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles bubbles preset", "homepage": "https://particles.js.org", "repository": { @@ -106,9 +106,9 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/bubbles/package.json b/presets/bubbles/package.json index 5634f3a0ed3..92c9c1abb30 100644 --- a/presets/bubbles/package.json +++ b/presets/bubbles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-bubbles", - "version": "4.1.3", - "description": "tsParticles bubbles preset", + "version": "4.2.0", + "description": "tsParticles preset for creating floating, rising bubble particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "bubbles", + "floating", + "rising" ], "publishConfig": { "directory": "dist", @@ -123,7 +91,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/bubbles/src/index.lazy.ts b/presets/bubbles/src/index.lazy.ts index 7cbab630711..5189843d047 100644 --- a/presets/bubbles/src/index.lazy.ts +++ b/presets/bubbles/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBubblesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/bubbles/src/index.ts b/presets/bubbles/src/index.ts index c4b369199e6..195ac5bc858 100644 --- a/presets/bubbles/src/index.ts +++ b/presets/bubbles/src/index.ts @@ -6,7 +6,7 @@ import { options } from "./options.js"; const presetName = "bubbles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadBubblesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confetti/CHANGELOG.md b/presets/confetti/CHANGELOG.md index 29c8cdd1dd1..5d49fc9b261 100644 --- a/presets/confetti/CHANGELOG.md +++ b/presets/confetti/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-confetti diff --git a/presets/confetti/package.dist.json b/presets/confetti/package.dist.json index e86096e29d2..8886507cd67 100644 --- a/presets/confetti/package.dist.json +++ b/presets/confetti/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-confetti", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti preset", "homepage": "https://particles.js.org", "repository": { @@ -99,17 +99,17 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/confetti/package.json b/presets/confetti/package.json index 4897de52205..ad472ffe4b1 100644 --- a/presets/confetti/package.json +++ b/presets/confetti/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-confetti", - "version": "4.1.3", - "description": "tsParticles confetti preset", + "version": "4.2.0", + "description": "tsParticles preset for creating colorful confetti celebration particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "celebration" ], "publishConfig": { "directory": "dist", @@ -124,7 +90,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/confetti/src/index.lazy.ts b/presets/confetti/src/index.lazy.ts index 055f8b07bdb..b3677a6d316 100644 --- a/presets/confetti/src/index.lazy.ts +++ b/presets/confetti/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "confetti"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confetti/src/index.ts b/presets/confetti/src/index.ts index 3cb5af3ae0d..80462da2f04 100644 --- a/presets/confetti/src/index.ts +++ b/presets/confetti/src/index.ts @@ -14,7 +14,7 @@ import { options } from "./options.js"; const presetName = "confetti"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiCannon/CHANGELOG.md b/presets/confettiCannon/CHANGELOG.md index 7d6f4595c12..a6be11ab124 100644 --- a/presets/confettiCannon/CHANGELOG.md +++ b/presets/confettiCannon/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-confetti-cannon diff --git a/presets/confettiCannon/README.md b/presets/confettiCannon/README.md index bd89969abcd..74012d468e8 100644 --- a/presets/confettiCannon/README.md +++ b/presets/confettiCannon/README.md @@ -9,7 +9,7 @@ the [confetti palette](https://github.com/tsparticles/palettes/tree/main/palette [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/presets/confettiCannon/package.dist.json b/presets/confettiCannon/package.dist.json index 18afad85ae7..0cc622be48d 100644 --- a/presets/confettiCannon/package.dist.json +++ b/presets/confettiCannon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-confetti-cannon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti cannon preset", "homepage": "https://particles.js.org", "repository": { @@ -106,18 +106,18 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-cannon": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-cannon": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/confettiCannon/package.json b/presets/confettiCannon/package.json index e3f5fbce662..3f793c2f7e7 100644 --- a/presets/confettiCannon/package.json +++ b/presets/confettiCannon/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-confetti-cannon", - "version": "4.1.3", - "description": "tsParticles confetti cannon preset", + "version": "4.2.0", + "description": "tsParticles preset for creating confetti cannon burst explosive effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "confetti-cannon", + "cannon", + "burst" ], "publishConfig": { "directory": "dist", @@ -132,7 +100,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/confettiCannon/src/index.lazy.ts b/presets/confettiCannon/src/index.lazy.ts index 6d5c5b7e22a..2b0f0d1b1af 100644 --- a/presets/confettiCannon/src/index.lazy.ts +++ b/presets/confettiCannon/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetNames = ["confettiCannon", "confetti-cannon"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiCannonPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiCannon/src/index.ts b/presets/confettiCannon/src/index.ts index 33c2639158c..6aa59643578 100644 --- a/presets/confettiCannon/src/index.ts +++ b/presets/confettiCannon/src/index.ts @@ -15,7 +15,7 @@ import { options } from "./options.js"; const presetNames = ["confettiCannon", "confetti-cannon"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiCannonPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiExplosions/CHANGELOG.md b/presets/confettiExplosions/CHANGELOG.md index 633455b6790..81fcd227609 100644 --- a/presets/confettiExplosions/CHANGELOG.md +++ b/presets/confettiExplosions/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-confetti-explosions diff --git a/presets/confettiExplosions/README.md b/presets/confettiExplosions/README.md index 9e50fd2a1d3..accff4cedf0 100644 --- a/presets/confettiExplosions/README.md +++ b/presets/confettiExplosions/README.md @@ -9,7 +9,7 @@ the [confetti palette](https://github.com/tsparticles/palettes/tree/main/palette [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/presets/confettiExplosions/package.dist.json b/presets/confettiExplosions/package.dist.json index d23b8b86a79..c3d2ab99d31 100644 --- a/presets/confettiExplosions/package.dist.json +++ b/presets/confettiExplosions/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-confetti-explosions", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti explosions preset", "homepage": "https://particles.js.org", "repository": { @@ -106,16 +106,16 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/confettiExplosions/package.json b/presets/confettiExplosions/package.json index 865a949ddd5..05e7b0c42fd 100644 --- a/presets/confettiExplosions/package.json +++ b/presets/confettiExplosions/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-confetti-explosions", - "version": "4.1.3", - "description": "tsParticles confetti explosions preset", + "version": "4.2.0", + "description": "tsParticles preset for creating confetti explosion and burst effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "confetti-explosions", + "explosion", + "burst" ], "publishConfig": { "directory": "dist", @@ -130,7 +98,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/confettiExplosions/src/index.lazy.ts b/presets/confettiExplosions/src/index.lazy.ts index fce2228d380..e26fa710e2e 100644 --- a/presets/confettiExplosions/src/index.lazy.ts +++ b/presets/confettiExplosions/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetNames = ["confettiExplosions", "confetti-explosions"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiExplosionsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiExplosions/src/index.ts b/presets/confettiExplosions/src/index.ts index 25e6fec7a61..41ef07d9b31 100644 --- a/presets/confettiExplosions/src/index.ts +++ b/presets/confettiExplosions/src/index.ts @@ -13,7 +13,7 @@ import { options } from "./options.js"; const presetNames = ["confettiExplosions", "confetti-explosions"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiExplosionsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiFalling/CHANGELOG.md b/presets/confettiFalling/CHANGELOG.md index 21e15c57ca4..0aed39db9de 100644 --- a/presets/confettiFalling/CHANGELOG.md +++ b/presets/confettiFalling/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-confetti-falling diff --git a/presets/confettiFalling/README.md b/presets/confettiFalling/README.md index f2adc9f9d04..642abddd681 100644 --- a/presets/confettiFalling/README.md +++ b/presets/confettiFalling/README.md @@ -9,7 +9,7 @@ the [confetti palette](https://github.com/tsparticles/palettes/tree/main/palette [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/presets/confettiFalling/package.dist.json b/presets/confettiFalling/package.dist.json index cb61b50692d..934c1eaca21 100644 --- a/presets/confettiFalling/package.dist.json +++ b/presets/confettiFalling/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-confetti-falling", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti falling preset", "homepage": "https://particles.js.org", "repository": { @@ -106,15 +106,15 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/confettiFalling/package.json b/presets/confettiFalling/package.json index 4a05061058e..14d469601a3 100644 --- a/presets/confettiFalling/package.json +++ b/presets/confettiFalling/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-confetti-falling", - "version": "4.1.3", - "description": "tsParticles confetti falling preset", + "version": "4.2.0", + "description": "tsParticles preset for creating gently falling confetti particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "confetti-falling", + "falling", + "gently" ], "publishConfig": { "directory": "dist", @@ -129,7 +97,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/confettiFalling/src/index.lazy.ts b/presets/confettiFalling/src/index.lazy.ts index 9dcd129e0dd..73383d1f0b9 100644 --- a/presets/confettiFalling/src/index.lazy.ts +++ b/presets/confettiFalling/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetNames = ["confettiFalling", "confetti-falling"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiFallingPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiFalling/src/index.ts b/presets/confettiFalling/src/index.ts index 2c059c52fb1..869d5d3e908 100644 --- a/presets/confettiFalling/src/index.ts +++ b/presets/confettiFalling/src/index.ts @@ -12,7 +12,7 @@ import { options } from "./options.js"; const presetNames = ["confettiFalling", "confetti-falling"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiFallingPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiParade/CHANGELOG.md b/presets/confettiParade/CHANGELOG.md index 8ad6ec88c32..f5e207a28bf 100644 --- a/presets/confettiParade/CHANGELOG.md +++ b/presets/confettiParade/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) +- various fixes after deeper review ([0e28456](https://github.com/tsparticles/tsparticles/commit/0e28456f760ee43a2550a332522b16b048cf717d)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-confetti-parade diff --git a/presets/confettiParade/README.md b/presets/confettiParade/README.md index 1d6a93a6643..e6d6cfb09b1 100644 --- a/presets/confettiParade/README.md +++ b/presets/confettiParade/README.md @@ -9,7 +9,7 @@ the [confetti palette](https://github.com/tsparticles/palettes/tree/main/palette [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles) -[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles") +[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_source=badge-tsparticles) ## Sample diff --git a/presets/confettiParade/package.dist.json b/presets/confettiParade/package.dist.json index cf73abafc93..40c1f024ae0 100644 --- a/presets/confettiParade/package.dist.json +++ b/presets/confettiParade/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-confetti-parade", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti parade preset", "homepage": "https://particles.js.org", "repository": { @@ -106,17 +106,17 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-motion": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-motion": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/confettiParade/package.json b/presets/confettiParade/package.json index 4b4f94d11fd..fd4e8eece1a 100644 --- a/presets/confettiParade/package.json +++ b/presets/confettiParade/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-confetti-parade", - "version": "4.1.3", - "description": "tsParticles confetti parade preset", + "version": "4.2.0", + "description": "tsParticles preset for creating confetti parade and celebration streamer effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "confetti-parade", + "parade", + "streamer" ], "publishConfig": { "directory": "dist", @@ -131,7 +99,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/confettiParade/src/index.lazy.ts b/presets/confettiParade/src/index.lazy.ts index 12b964aac26..28d57747200 100644 --- a/presets/confettiParade/src/index.lazy.ts +++ b/presets/confettiParade/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetNames = ["confettiParade", "confetti-parade"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiParadePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/confettiParade/src/index.ts b/presets/confettiParade/src/index.ts index 5d8e133c366..756deddf193 100644 --- a/presets/confettiParade/src/index.ts +++ b/presets/confettiParade/src/index.ts @@ -14,7 +14,7 @@ import { options } from "./options.js"; const presetNames = ["confettiParade", "confetti-parade"]; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadConfettiParadePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fire/CHANGELOG.md b/presets/fire/CHANGELOG.md index f63ac0dba4b..c8741ab1d77 100644 --- a/presets/fire/CHANGELOG.md +++ b/presets/fire/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-fire diff --git a/presets/fire/package.dist.json b/presets/fire/package.dist.json index f6d43108fa2..eb8badaaa21 100644 --- a/presets/fire/package.dist.json +++ b/presets/fire/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-fire", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fire preset", "homepage": "https://particles.js.org", "repository": { @@ -99,10 +99,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-push": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-push": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/fire/package.json b/presets/fire/package.json index dfb65ce4391..0ec98365132 100644 --- a/presets/fire/package.json +++ b/presets/fire/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-fire", - "version": "4.1.3", - "description": "tsParticles fire preset", + "version": "4.2.0", + "description": "tsParticles preset for creating realistic fire and flame particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "fire", + "flame" ], "publishConfig": { "directory": "dist", @@ -124,7 +91,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/fire/src/index.lazy.ts b/presets/fire/src/index.lazy.ts index 43668ab95b9..9c0db440938 100644 --- a/presets/fire/src/index.lazy.ts +++ b/presets/fire/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "fire"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fire/src/index.ts b/presets/fire/src/index.ts index cd790d60cd2..b2b1ac7052d 100644 --- a/presets/fire/src/index.ts +++ b/presets/fire/src/index.ts @@ -7,7 +7,7 @@ import { options } from "./options.js"; const presetName = "fire"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFirePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/firefly/CHANGELOG.md b/presets/firefly/CHANGELOG.md index 290f30ab9a0..3c595d65287 100644 --- a/presets/firefly/CHANGELOG.md +++ b/presets/firefly/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-firefly diff --git a/presets/firefly/package.dist.json b/presets/firefly/package.dist.json index 6cfe7095747..bfae58a5683 100644 --- a/presets/firefly/package.dist.json +++ b/presets/firefly/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-firefly", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles firefly preset", "homepage": "https://particles.js.org", "repository": { @@ -106,11 +106,11 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-external-trail": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3", - "@tsparticles/updater-life": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-external-trail": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0", + "@tsparticles/updater-life": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/firefly/package.json b/presets/firefly/package.json index db3b49d267f..2a1af4b72ea 100644 --- a/presets/firefly/package.json +++ b/presets/firefly/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-firefly", - "version": "4.1.3", - "description": "tsParticles firefly preset", + "version": "4.2.0", + "description": "tsParticles preset for creating glowing firefly bioluminescence particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "firefly", + "glowing", + "bioluminescence" ], "publishConfig": { "directory": "dist", @@ -125,7 +93,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/firefly/src/index.lazy.ts b/presets/firefly/src/index.lazy.ts index 077bc26d5da..f29879cb681 100644 --- a/presets/firefly/src/index.lazy.ts +++ b/presets/firefly/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; const presetName = "firefly"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireflyPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/firefly/src/index.ts b/presets/firefly/src/index.ts index f132f74d2f9..7d7c4b98be4 100644 --- a/presets/firefly/src/index.ts +++ b/presets/firefly/src/index.ts @@ -8,7 +8,7 @@ import { options } from "./options.js"; const presetName = "firefly"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireflyPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fireworks/CHANGELOG.md b/presets/fireworks/CHANGELOG.md index 3c027e2fe4b..3784e95b3d9 100644 --- a/presets/fireworks/CHANGELOG.md +++ b/presets/fireworks/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-fireworks diff --git a/presets/fireworks/package.dist.json b/presets/fireworks/package.dist.json index cb10bb6a86a..fe215295bd1 100644 --- a/presets/fireworks/package.dist.json +++ b/presets/fireworks/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-fireworks", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fireworks preset", "homepage": "https://particles.js.org", "repository": { @@ -106,16 +106,16 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/effect-trail": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/plugin-sounds": "4.1.3", - "@tsparticles/shape-line": "4.1.3", - "@tsparticles/updater-destroy": "4.1.3", - "@tsparticles/updater-life": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/effect-trail": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/plugin-sounds": "4.2.0", + "@tsparticles/shape-line": "4.2.0", + "@tsparticles/updater-destroy": "4.2.0", + "@tsparticles/updater-life": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/fireworks/package.json b/presets/fireworks/package.json index 9cdead7f3cb..16b891ad632 100644 --- a/presets/fireworks/package.json +++ b/presets/fireworks/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-fireworks", - "version": "4.1.3", - "description": "tsParticles fireworks preset", + "version": "4.2.0", + "description": "tsParticles preset for creating spectacular fireworks display particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "display" ], "publishConfig": { "directory": "dist", @@ -130,7 +96,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/fireworks/src/index.lazy.ts b/presets/fireworks/src/index.lazy.ts index 6508e093b9f..2b78ae956c2 100644 --- a/presets/fireworks/src/index.lazy.ts +++ b/presets/fireworks/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "fireworks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fireworks/src/index.ts b/presets/fireworks/src/index.ts index aa4d2f5e202..0dcf3ceb380 100644 --- a/presets/fireworks/src/index.ts +++ b/presets/fireworks/src/index.ts @@ -13,7 +13,7 @@ import { loadTrailEffect } from "@tsparticles/effect-trail"; const presetName = "fireworks"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFireworksPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fountain/CHANGELOG.md b/presets/fountain/CHANGELOG.md index ec3ee538ee5..be56c89446a 100644 --- a/presets/fountain/CHANGELOG.md +++ b/presets/fountain/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-fountain diff --git a/presets/fountain/package.dist.json b/presets/fountain/package.dist.json index a1a3d64995a..1e6af52a852 100644 --- a/presets/fountain/package.dist.json +++ b/presets/fountain/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-fountain", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fountain preset", "homepage": "https://particles.js.org", "repository": { @@ -106,11 +106,11 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-trail": "4.1.3", - "@tsparticles/updater-destroy": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-trail": "4.2.0", + "@tsparticles/updater-destroy": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/fountain/package.json b/presets/fountain/package.json index c0343f06be6..84cc826a62c 100644 --- a/presets/fountain/package.json +++ b/presets/fountain/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-fountain", - "version": "4.1.3", - "description": "tsParticles fountain preset", + "version": "4.2.0", + "description": "tsParticles preset for creating water fountain-like particle spray effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "fountain", + "spray", + "water" ], "publishConfig": { "directory": "dist", @@ -125,7 +93,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/fountain/src/index.lazy.ts b/presets/fountain/src/index.lazy.ts index ecd19f9ff1b..b7fed6d1f22 100644 --- a/presets/fountain/src/index.lazy.ts +++ b/presets/fountain/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "fountain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFountainPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/fountain/src/index.ts b/presets/fountain/src/index.ts index e2b57f6cd22..0192223f7ae 100644 --- a/presets/fountain/src/index.ts +++ b/presets/fountain/src/index.ts @@ -8,7 +8,7 @@ import { options } from "./options.js"; const presetName = "fountain"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFountainPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/hyperspace/CHANGELOG.md b/presets/hyperspace/CHANGELOG.md index d954b2876b4..e9efd1442de 100644 --- a/presets/hyperspace/CHANGELOG.md +++ b/presets/hyperspace/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-hyperspace diff --git a/presets/hyperspace/package.dist.json b/presets/hyperspace/package.dist.json index c2b73887142..f5eafd53fa3 100644 --- a/presets/hyperspace/package.dist.json +++ b/presets/hyperspace/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-hyperspace", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles hyperspace preset", "homepage": "https://particles.js.org", "repository": { @@ -106,12 +106,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/plugin-trail": "4.1.3", - "@tsparticles/updater-life": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/plugin-trail": "4.2.0", + "@tsparticles/updater-life": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/hyperspace/package.json b/presets/hyperspace/package.json index 1aed9921999..b3ec7fd5d06 100644 --- a/presets/hyperspace/package.json +++ b/presets/hyperspace/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-hyperspace", - "version": "4.1.3", - "description": "tsParticles hyperspace preset", + "version": "4.2.0", + "description": "tsParticles preset for creating warp-speed hyperspace starfield effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "hyperspace", + "warp", + "starfield" ], "publishConfig": { "directory": "dist", @@ -126,7 +94,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/hyperspace/src/index.lazy.ts b/presets/hyperspace/src/index.lazy.ts index c2192a816fc..9ace8655a04 100644 --- a/presets/hyperspace/src/index.lazy.ts +++ b/presets/hyperspace/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "hyperspace"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHyperspacePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/hyperspace/src/index.ts b/presets/hyperspace/src/index.ts index ba625143991..c0cac720724 100644 --- a/presets/hyperspace/src/index.ts +++ b/presets/hyperspace/src/index.ts @@ -9,7 +9,7 @@ import { options } from "./options.js"; const presetName = "hyperspace"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHyperspacePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/links/CHANGELOG.md b/presets/links/CHANGELOG.md index f8ae4a87f2c..ca74a86c0a4 100644 --- a/presets/links/CHANGELOG.md +++ b/presets/links/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-links diff --git a/presets/links/package.dist.json b/presets/links/package.dist.json index 489baeb6bd3..184ca07ed4a 100644 --- a/presets/links/package.dist.json +++ b/presets/links/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-links", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles links preset", "homepage": "https://particles.js.org", "repository": { @@ -106,10 +106,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-particles-links": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-particles-links": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/links/package.json b/presets/links/package.json index 73db95722a4..205544d64e0 100644 --- a/presets/links/package.json +++ b/presets/links/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-links", - "version": "4.1.3", - "description": "tsParticles links preset", + "version": "4.2.0", + "description": "tsParticles preset for creating connected network of particles linked by lines", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "links", + "network", + "connected" ], "publishConfig": { "directory": "dist", @@ -124,7 +92,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/links/src/index.lazy.ts b/presets/links/src/index.lazy.ts index c2b2cd806bf..af39b24ffe4 100644 --- a/presets/links/src/index.lazy.ts +++ b/presets/links/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "links"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLinksPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/links/src/index.ts b/presets/links/src/index.ts index 8ed209b514e..1e72ce19159 100644 --- a/presets/links/src/index.ts +++ b/presets/links/src/index.ts @@ -7,7 +7,7 @@ import { options } from "./options.js"; const presetName = "links"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLinksPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/matrix/CHANGELOG.md b/presets/matrix/CHANGELOG.md index ec3673e83ff..f86865d6896 100644 --- a/presets/matrix/CHANGELOG.md +++ b/presets/matrix/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-matrix diff --git a/presets/matrix/package.dist.json b/presets/matrix/package.dist.json index 427f42cc3b3..79061f03e4a 100644 --- a/presets/matrix/package.dist.json +++ b/presets/matrix/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-matrix", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles matrix preset", "homepage": "https://particles.js.org", "repository": { @@ -106,12 +106,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/effect-shadow": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-poisson-disc": "4.1.3", - "@tsparticles/plugin-trail": "4.1.3", - "@tsparticles/shape-matrix": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/effect-shadow": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-poisson-disc": "4.2.0", + "@tsparticles/plugin-trail": "4.2.0", + "@tsparticles/shape-matrix": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/matrix/package.json b/presets/matrix/package.json index c95835018ed..26e4831bf2c 100644 --- a/presets/matrix/package.json +++ b/presets/matrix/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-matrix", - "version": "4.1.3", - "description": "tsParticles matrix preset", + "version": "4.2.0", + "description": "tsParticles preset for creating Matrix-style digital rain character effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "matrix", + "digital-rain", + "green" ], "publishConfig": { "directory": "dist", @@ -126,7 +94,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/matrix/src/index.lazy.ts b/presets/matrix/src/index.lazy.ts index af1c1a40bf2..d31ccfad83a 100644 --- a/presets/matrix/src/index.lazy.ts +++ b/presets/matrix/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "matrix"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/matrix/src/index.ts b/presets/matrix/src/index.ts index 747612453d0..291e2c76f5d 100644 --- a/presets/matrix/src/index.ts +++ b/presets/matrix/src/index.ts @@ -9,7 +9,7 @@ import { options } from "./options.js"; const presetName = "matrix"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/meteors/CHANGELOG.md b/presets/meteors/CHANGELOG.md index e4d87c4d45c..50e138510e1 100644 --- a/presets/meteors/CHANGELOG.md +++ b/presets/meteors/CHANGELOG.md @@ -2,3 +2,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + +### Features + +- added new meteors preset ([2387a3c](https://github.com/tsparticles/tsparticles/commit/2387a3c727b3fbddd4c79d09aef333516645b27e)) diff --git a/presets/meteors/package.dist.json b/presets/meteors/package.dist.json index 067523398b3..68600c139eb 100644 --- a/presets/meteors/package.dist.json +++ b/presets/meteors/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-meteors", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles meteors preset", "homepage": "https://particles.js.org", "repository": { @@ -106,11 +106,11 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/effect-trail": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/effect-trail": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/meteors/package.json b/presets/meteors/package.json index 8516a54f56b..ad12b604b0b 100644 --- a/presets/meteors/package.json +++ b/presets/meteors/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-meteors", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles meteors preset", "homepage": "https://particles.js.org", "scripts": { @@ -118,14 +118,14 @@ "prettier": "@tsparticles/prettier-config", "dependencies": { "@tsparticles/basic": "workspace:*", - "@tsparticles/engine": "workspace:*", "@tsparticles/effect-trail": "workspace:*", + "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-emitters": "workspace:*", "@tsparticles/plugin-emitters-shape-square": "workspace:*" }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/meteors/src/index.lazy.ts b/presets/meteors/src/index.lazy.ts index aa37ad28938..bba93ac4c8a 100644 --- a/presets/meteors/src/index.lazy.ts +++ b/presets/meteors/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "meteors"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMeteorsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/meteors/src/index.ts b/presets/meteors/src/index.ts index c99eac638f1..938e3eed551 100644 --- a/presets/meteors/src/index.ts +++ b/presets/meteors/src/index.ts @@ -8,7 +8,7 @@ import { options } from "./options.js"; const presetName = "meteors"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMeteorsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/party/CHANGELOG.md b/presets/party/CHANGELOG.md index f44259a2a93..507fe5e82a4 100644 --- a/presets/party/CHANGELOG.md +++ b/presets/party/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-party diff --git a/presets/party/package.dist.json b/presets/party/package.dist.json index 7afe0406309..46d52f458f9 100644 --- a/presets/party/package.dist.json +++ b/presets/party/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-party", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles party preset", "homepage": "https://particles.js.org", "repository": { @@ -106,18 +106,18 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-confetti": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-emitters-shape-square": "4.1.3", - "@tsparticles/shape-polygon": "4.1.3", - "@tsparticles/shape-ribbon": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-roll": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-tilt": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-confetti": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-emitters-shape-square": "4.2.0", + "@tsparticles/shape-polygon": "4.2.0", + "@tsparticles/shape-ribbon": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-roll": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-tilt": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/party/package.json b/presets/party/package.json index 98f49fb8f2f..74641ed3cc0 100644 --- a/presets/party/package.json +++ b/presets/party/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-party", - "version": "4.1.3", - "description": "tsParticles party preset", + "version": "4.2.0", + "description": "tsParticles preset for creating colorful party celebration particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "party", + "celebration" ], "publishConfig": { "directory": "dist", @@ -132,7 +99,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/party/src/index.lazy.ts b/presets/party/src/index.lazy.ts index 28bf6aafd35..f8c812c3fbe 100644 --- a/presets/party/src/index.lazy.ts +++ b/presets/party/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "party"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPartyPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/party/src/index.ts b/presets/party/src/index.ts index 4f4e482642b..91b73a20488 100644 --- a/presets/party/src/index.ts +++ b/presets/party/src/index.ts @@ -15,7 +15,7 @@ import { options } from "./options.js"; const presetName = "party"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPartyPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/seaAnemone/CHANGELOG.md b/presets/seaAnemone/CHANGELOG.md index dcc08f620d1..7b798304018 100644 --- a/presets/seaAnemone/CHANGELOG.md +++ b/presets/seaAnemone/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-sea-anemone diff --git a/presets/seaAnemone/package.dist.json b/presets/seaAnemone/package.dist.json index 147663e5616..fb8e227ebd1 100644 --- a/presets/seaAnemone/package.dist.json +++ b/presets/seaAnemone/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-sea-anemone", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles sea anemone preset", "homepage": "https://particles.js.org", "repository": { @@ -106,12 +106,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/path-curves": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3", - "@tsparticles/plugin-trail": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/path-curves": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0", + "@tsparticles/plugin-trail": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/seaAnemone/package.json b/presets/seaAnemone/package.json index 1b12fed0851..275217faedd 100644 --- a/presets/seaAnemone/package.json +++ b/presets/seaAnemone/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-sea-anemone", - "version": "4.1.3", - "description": "tsParticles sea anemone preset", + "version": "4.2.0", + "description": "tsParticles preset for creating organic sea anemone tentacle particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "sea-anemone", + "tentacle", + "organic" ], "publishConfig": { "directory": "dist", @@ -126,7 +94,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/seaAnemone/src/index.lazy.ts b/presets/seaAnemone/src/index.lazy.ts index f3987a0765d..fd1cd50a24a 100644 --- a/presets/seaAnemone/src/index.lazy.ts +++ b/presets/seaAnemone/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "seaAnemone"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSeaAnemonePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/seaAnemone/src/index.ts b/presets/seaAnemone/src/index.ts index e024dd58a84..aeafd86e9f2 100644 --- a/presets/seaAnemone/src/index.ts +++ b/presets/seaAnemone/src/index.ts @@ -8,7 +8,7 @@ import { options } from "./options.js"; const presetName = "seaAnemone"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSeaAnemonePreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/snow/CHANGELOG.md b/presets/snow/CHANGELOG.md index 7f486932d02..90f4b2076cb 100644 --- a/presets/snow/CHANGELOG.md +++ b/presets/snow/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-snow diff --git a/presets/snow/package.dist.json b/presets/snow/package.dist.json index 6af88d505c0..2c673d1a507 100644 --- a/presets/snow/package.dist.json +++ b/presets/snow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-snow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles snow preset", "homepage": "https://particles.js.org", "repository": { @@ -106,10 +106,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/palette-snowfall": "4.1.3", - "@tsparticles/updater-wobble": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/palette-snowfall": "4.2.0", + "@tsparticles/updater-wobble": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/snow/package.json b/presets/snow/package.json index a9fdfaee5db..8babb1a207d 100644 --- a/presets/snow/package.json +++ b/presets/snow/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-snow", - "version": "4.1.3", - "description": "tsParticles snow preset", + "version": "4.2.0", + "description": "tsParticles preset for creating realistic snowfall particle animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "snow", + "snowfall", + "winter" ], "publishConfig": { "directory": "dist", @@ -124,7 +92,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/snow/src/index.lazy.ts b/presets/snow/src/index.lazy.ts index 39daf3008c5..34dd9b082b8 100644 --- a/presets/snow/src/index.lazy.ts +++ b/presets/snow/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "snow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSnowPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/snow/src/index.ts b/presets/snow/src/index.ts index 0e0dfb0ed7c..089bf3919b4 100644 --- a/presets/snow/src/index.ts +++ b/presets/snow/src/index.ts @@ -7,7 +7,7 @@ import { options } from "./options.js"; const presetName = "snow"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSnowPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/squares/CHANGELOG.md b/presets/squares/CHANGELOG.md index 7dc3455d5d7..1f522c03484 100644 --- a/presets/squares/CHANGELOG.md +++ b/presets/squares/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/preset-squares + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-squares diff --git a/presets/squares/package.dist.json b/presets/squares/package.dist.json index 66af4661ba4..7b4b24ad18f 100644 --- a/presets/squares/package.dist.json +++ b/presets/squares/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-squares", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles squares preset", "homepage": "https://particles.js.org", "repository": { @@ -106,13 +106,13 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-emitters": "4.1.3", - "@tsparticles/plugin-hex-color": "4.1.3", - "@tsparticles/shape-square": "4.1.3", - "@tsparticles/updater-paint": "4.1.3", - "@tsparticles/updater-rotate": "4.1.3", - "@tsparticles/updater-size": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-emitters": "4.2.0", + "@tsparticles/plugin-hex-color": "4.2.0", + "@tsparticles/shape-square": "4.2.0", + "@tsparticles/updater-paint": "4.2.0", + "@tsparticles/updater-rotate": "4.2.0", + "@tsparticles/updater-size": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/squares/package.json b/presets/squares/package.json index 5b5223edbef..f100ed68ea5 100644 --- a/presets/squares/package.json +++ b/presets/squares/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-squares", - "version": "4.1.3", - "description": "tsParticles squares preset", + "version": "4.2.0", + "description": "tsParticles preset for creating animated square particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "squares", + "square" ], "publishConfig": { "directory": "dist", @@ -127,7 +94,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/stars/CHANGELOG.md b/presets/stars/CHANGELOG.md index 3330c64a4af..3278762faf9 100644 --- a/presets/stars/CHANGELOG.md +++ b/presets/stars/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-stars diff --git a/presets/stars/package.dist.json b/presets/stars/package.dist.json index 11110227378..28d95218a45 100644 --- a/presets/stars/package.dist.json +++ b/presets/stars/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-stars", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles stars preset", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,8 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/stars/package.json b/presets/stars/package.json index cf2972b7498..61575bf37f5 100644 --- a/presets/stars/package.json +++ b/presets/stars/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-stars", - "version": "4.1.3", - "description": "tsParticles stars preset", + "version": "4.2.0", + "description": "tsParticles preset for creating twinkling starry night sky particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,23 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "stars", + "starry", + "night" ], "publishConfig": { "directory": "dist", @@ -122,7 +90,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/stars/src/index.lazy.ts b/presets/stars/src/index.lazy.ts index 63e6d28ba28..a67ffdeeee7 100644 --- a/presets/stars/src/index.lazy.ts +++ b/presets/stars/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "stars"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadStarsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/stars/src/index.ts b/presets/stars/src/index.ts index bc693c8a7cc..5dc7e6898ec 100644 --- a/presets/stars/src/index.ts +++ b/presets/stars/src/index.ts @@ -5,7 +5,7 @@ import { options } from "./options.js"; const presetName = "stars"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadStarsPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/triangles/CHANGELOG.md b/presets/triangles/CHANGELOG.md index 2841ec6c149..3c82ac18969 100644 --- a/presets/triangles/CHANGELOG.md +++ b/presets/triangles/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/preset-triangles diff --git a/presets/triangles/package.dist.json b/presets/triangles/package.dist.json index e82fd86c257..8ceead94e8d 100644 --- a/presets/triangles/package.dist.json +++ b/presets/triangles/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/preset-triangles", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles triangles preset", "homepage": "https://particles.js.org", "repository": { @@ -106,10 +106,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@tsparticles/basic": "4.1.3", - "@tsparticles/engine": "4.1.3", - "@tsparticles/interaction-particles-links": "4.1.3", - "@tsparticles/plugin-interactivity": "4.1.3" + "@tsparticles/basic": "4.2.0", + "@tsparticles/engine": "4.2.0", + "@tsparticles/interaction-particles-links": "4.2.0", + "@tsparticles/plugin-interactivity": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/presets/triangles/package.json b/presets/triangles/package.json index a30b780f95b..1358010c68f 100644 --- a/presets/triangles/package.json +++ b/presets/triangles/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/preset-triangles", - "version": "4.1.3", - "description": "tsParticles triangles preset", + "version": "4.2.0", + "description": "tsParticles preset for creating animated triangle particle effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -18,55 +18,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-preset" + "typescript", + "javascript", + "tsparticles-preset", + "triangles", + "triangle" ], "publishConfig": { "directory": "dist", @@ -124,7 +91,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", - "@tsparticles/cli-command-build": "workspace:^" + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/cli-command-build": "workspace:*" } } diff --git a/presets/triangles/src/index.lazy.ts b/presets/triangles/src/index.lazy.ts index f23ff9a7836..786b4262c71 100644 --- a/presets/triangles/src/index.lazy.ts +++ b/presets/triangles/src/index.lazy.ts @@ -3,7 +3,7 @@ import type { Engine } from "@tsparticles/engine/lazy"; const presetName = "triangles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTrianglesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/presets/triangles/src/index.ts b/presets/triangles/src/index.ts index 0661720062f..4e6e6f7612e 100644 --- a/presets/triangles/src/index.ts +++ b/presets/triangles/src/index.ts @@ -7,7 +7,7 @@ import { options } from "./options.js"; const presetName = "triangles"; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTrianglesPreset(engine: Engine): Promise { await engine.pluginManager.register(async e => { diff --git a/scripts/inline-cleanup.mjs b/scripts/inline-cleanup.mjs new file mode 100644 index 00000000000..fcbf000a193 --- /dev/null +++ b/scripts/inline-cleanup.mjs @@ -0,0 +1,58 @@ +import { readFileSync, writeFileSync } from 'fs'; +import path from 'path'; + +const files = [ + // Files with missing value default (extends ValueWithRandom parent) + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitFactor.ts", add: "value = 3;" }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitRate.ts", add: "value = { min: 4, max: 9 };" }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/Opacity.ts", add: "value = 1;" }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/orbit/src/Options/Classes/OrbitRotation.ts", add: "value = 45;" }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/Size.ts", add: "value = 3;" }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/absorbers/src/Options/Classes/AbsorberSize.ts", add: "value = 50;" }, + // Cleanup only (no missing value) + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDelay.ts", add: null }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDuration.ts", add: null }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/OpacityAnimation.ts", add: null }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/rotate/src/Options/Classes/Rotate.ts", add: null }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/SizeAnimation.ts", add: null }, + { f: "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/tilt/src/Options/Classes/Tilt.ts", add: null }, +]; + +for (const { f, add } of files) { + let content = readFileSync(f, 'utf-8'); + const orig = content; + const name = path.basename(f); + + // 1. Clean up orphaned /** ... constructor */ comments and blank lines + content = content + .replace(/\n\s*\/\*\*.*?constructor\s*\*\/\s*/g, '\n') // Remove /** Xxx constructor */ lines + .replace(/\n{3,}/g, '\n\n') // Collapse triple+ blank lines + .replace(/^\s*\n{2,}/gm, '\n') // Remove leading blank lines + .replace(/\n{2,}$/g, '\n'); // Remove trailing blank lines + + // 2. Fix double readonly + content = content.replace(/override readonly readonly /g, 'override readonly '); + + // 3. Add missing value default - insert after class opening brace + if (add) { + // Find the opening brace of the class + const classMatch = content.match(/export class \w+ extends[\s\S]*?\{/); + if (classMatch) { + const insertPos = classMatch.index + classMatch[0].length; + // Don't insert if value already has initializer + const afterClassHead = content.substring(insertPos); + const valueInitRegex = /^\s*value\s*=\s*/m; + if (!valueInitRegex.test(afterClassHead)) { + content = content.substring(0, insertPos) + `\n ${add}\n` + content.substring(insertPos); + } + } + } + + if (orig !== content) { + writeFileSync(f, content, 'utf-8'); + const bytes = orig.length - content.length; + console.log(`✅ ${name} (-${bytes}B)`); + } else { + console.log(`⏭️ ${name} (no change)`); + } +} diff --git a/scripts/inline-cleanup2.mjs b/scripts/inline-cleanup2.mjs new file mode 100644 index 00000000000..ee256305643 --- /dev/null +++ b/scripts/inline-cleanup2.mjs @@ -0,0 +1,34 @@ +import { readFileSync, writeFileSync } from 'fs'; +import path from 'path'; + +const files = [ + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/orbit/src/Options/Classes/OrbitRotation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDelay.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDuration.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/rotate/src/Options/Classes/Rotate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/tilt/src/Options/Classes/Tilt.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitFactor.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitRate.ts", +]; + +for (const f of files) { + let content = readFileSync(f, 'utf-8'); + const orig = content; + const name = path.basename(f); + + // Remove orphaned /** Xxx constructor */ comments (non-greedy, only consume whitespace before \n) + content = content.replace(/\n[ \t]*\/\*\*.*?constructor\s*\*\/[ \t]*\n/g, '\n'); + + // Clean up remaining empty lines inside class body + trailing blank lines + content = content.replace(/\n{3,}/g, '\n\n').replace(/^\s*\n/g, '').replace(/\n{2,}$/, '\n'); + + // Fix double readonly + content = content.replace(/override readonly readonly /g, 'override readonly '); + + if (orig !== content) { + writeFileSync(f, content, 'utf-8'); + console.log(`✅ ${name}`); + } else { + console.log(`⏭️ ${name} (no change)`); + } +} diff --git a/scripts/inline-complex.mjs b/scripts/inline-complex.mjs new file mode 100644 index 00000000000..bf2db02d1ff --- /dev/null +++ b/scripts/inline-complex.mjs @@ -0,0 +1,199 @@ +import { readFileSync, writeFileSync } from 'fs'; +import path from 'path'; + +const files = [ + // These work fine (no params referenced in simple values) + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/CanvasMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskLocalSvg.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/infection/src/Options/Classes/InfectionStage.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/attract/src/Options/Classes/Attract.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/repulse/src/Options/Classes/RepulseBase.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/LightGradient.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/LightShadow.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/attract/src/Options/Classes/Attract.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/links/src/Options/Classes/Links.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/links/src/Options/Classes/LinksShadow.ts", + // Params present - need careful handling + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskDrawStroke.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Interactivity.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Modes/Modes.ts", +]; + +function escapeRegex(s) { + return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +function isSimpleValue(val) { + return !val.includes('\n') && !val.includes('{') && !val.trim().startsWith('('); +} + +let totalBytes = 0; +let totalFiles = 0; + +for (const f of [...new Set(files)]) { + let content = readFileSync(f, 'utf-8'); + const orig = content; + + // Step 1: Find constructor + const ctorRe = /constructor\s*\(/; + const ctorMatch = content.match(ctorRe); + if (!ctorMatch) { console.log(`SKIP (no ctor): ${path.basename(f)}`); continue; } + + // Step 2: Extract constructor params + const paramsStart = ctorMatch.index + ctorMatch[0].length; // char after '(' + let paramsEnd = paramsStart; + let depth = 0; + while (paramsEnd < content.length) { + if (content[paramsEnd] === '(') depth++; + else if (content[paramsEnd] === ')') { depth--; if (depth < 0) break; } + paramsEnd++; + } + const paramsStr = content.substring(paramsStart, paramsEnd).trim(); + // Extract param names (simple identifiers or destructured) + const paramNames = [...paramsStr.matchAll(/(\w+)(?:\s*[?:]\s*\w+(?:\.\w+)*)*/g)].map(m => m[1]); + // Also check for destructured params + const destructuredParams = paramsStr.match(/\{([^}]+)\}/g) || []; + for (const dp of destructuredParams) { + const names = [...dp.matchAll(/(\w+)/g)].map(m => m[1]); + paramNames.push(...names); + } + + // Step 3: Find constructor body bounds + let bracePos = paramsEnd; + while (bracePos < content.length && content[bracePos] !== '{') bracePos++; + if (bracePos >= content.length) { console.log(`SKIP (no brace): ${path.basename(f)}`); continue; } + + const bodyStart = bracePos; + let d = 1, i = bracePos + 1; + while (d > 0 && i < content.length) { + if (content[i] === '{') d++; + else if (content[i] === '}') d--; + i++; + } + const bodyEnd = i - 1; + const body = content.substring(bodyStart + 1, bodyEnd); + + // Step 4: Extract simple assignments + const bodyLines = body.split('\n'); + const simpleAssigns = []; + + for (let li = 0; li < bodyLines.length; li++) { + const trimmed = bodyLines[li].trim(); + const m = trimmed.match(/^this\.(\w+)\s*=\s*(.+?);$/); + if (!m || !isSimpleValue(m[2])) continue; + + const val = m[2]; + + // Check if value references any constructor param + const usesParam = paramNames.some(pn => { + const re = new RegExp(`\\b${escapeRegex(pn)}\\b`); + return re.test(val); + }); + if (usesParam) { + console.log(` ⚠️ ${path.basename(f)}: skipping '${m[1]}' (uses param in value '${val}')`); + continue; + } + + // Find declaration in class head + const declRegex = new RegExp(`^( *)(override\\s+)?(readonly\\s+)?(?:readonly\\s+)?${escapeRegex(m[1])}(\\??)\\s*(:\\s*[^;\\n]+?)?\\s*;(?=[ \\t]*\\n|$)`, 'm'); + const beforeCtor = content.substring(0, ctorMatch.index); + const declMatch = beforeCtor.match(declRegex); + if (!declMatch) { + console.log(` ⚠️ ${path.basename(f)}: no declaration found for '${m[1]}'`); + continue; + } + + simpleAssigns.push({ + name: m[1], + val: m[2], + declStart: declMatch.index, + declEnd: declMatch.index + declMatch[0].length - 1, + assignLineIndex: li, + }); + } + + if (simpleAssigns.length === 0) { + console.log(`SKIP (no simple inlines): ${path.basename(f)}`); + continue; + } + + // Step 5: Build changes bottom-to-top + const changes = []; + + for (const sa of simpleAssigns) { + // Replace declaration with value + const oldDecl = content.substring(sa.declStart, sa.declEnd + 1); + const newDecl = oldDecl.replace(/;\s*$/, ` = ${sa.val};`); + changes.push({ pos: sa.declStart, end: sa.declEnd, text: newDecl }); + + // Remove the ENTIRE line from constructor body (including indentation, including \n) + // Find line boundaries + const bodyLine = bodyLines[sa.assignLineIndex]; + const bodyLinePos = bodyLines.slice(0, sa.assignLineIndex).join('\n').length + (sa.assignLineIndex > 0 ? 1 : 0); + const absLineStart = bodyStart + 1 + bodyLinePos; + + // Find the full line start (go back to \n before this line) + let lineStart = absLineStart; + while (lineStart > bodyStart + 1 && content[lineStart - 1] !== '\n') lineStart--; + + // Find the full line end (go to \n after this line) + let lineEnd = absLineStart + bodyLine.length - 1; + if (lineEnd + 1 < content.length && content[lineEnd + 1] === '\n') lineEnd++; + + // Replace the line (including its leading indentation and trailing \n) with just \n + changes.push({ pos: lineStart, end: lineEnd, text: '\n' }); + } + + // Sort bottom-to-top + changes.sort((a, b) => b.pos - a.pos); + + for (const c of changes) { + content = content.substring(0, c.pos) + c.text + content.substring(c.end + 1); + } + + // Step 6: Clean up blank lines + content = content.replace(/\n{3,}/g, '\n\n').replace(/ +$/gm, '').replace(/\n{2,}(\s*\})/g, '\n$1').replace(/\{\n{2,}/g, '{\n'); + + // Step 7: If constructor body is now empty, remove the constructor + // Find constructor again (positions shifted) + const ctorRe2 = /constructor\s*\(([^)]*)\)\s*\{/; + const ctorMatch2 = content.match(ctorRe2); + if (ctorMatch2) { + const bracePos2 = content.indexOf('{', ctorMatch2.index); + let d2 = 1, j = bracePos2 + 1; + while (d2 > 0 && j < content.length) { + if (content[j] === '{') d2++; + else if (content[j] === '}') d2--; + j++; + } + const bodyEnd2 = j - 1; + const remainingBody = content.substring(bracePos2 + 1, bodyEnd2).trim(); + + if (!remainingBody && !ctorMatch2[1].trim()) { + // No params and empty body: remove constructor entirely + const ctorLineStart = content.lastIndexOf('\n', ctorMatch2.index); + const from = ctorLineStart >= 0 ? ctorLineStart : 0; + content = content.substring(0, from) + '\n' + content.substring(bodyEnd2 + 1); + } else if (!remainingBody && ctorMatch2[1].trim()) { + // Has params but empty body: keep constructor with just the param signature + // Content is already correct: constructor(params) { }\n + } + } + + content = content.replace(/\n{3,}/g, '\n\n').replace(/ +$/gm, '').replace(/^\s*\n/g, '').replace(/\n{2,}$/, '\n'); + + if (orig !== content) { + writeFileSync(f, content, 'utf-8'); + const saved = orig.length - content.length; + totalBytes += saved; + totalFiles++; + const names = simpleAssigns.map(sa => sa.name).join(', '); + console.log(`✅ ${path.basename(f)} (-${saved}B) [${names}]`); + } else { + console.log(`❌ NO CHANGE: ${path.basename(f)}`); + } +} + +console.log(`\nTotal: ${totalFiles} files, ${totalBytes} bytes saved`); diff --git a/scripts/inline-group-a.mjs b/scripts/inline-group-a.mjs new file mode 100644 index 00000000000..2f1ac5e3cf8 --- /dev/null +++ b/scripts/inline-group-a.mjs @@ -0,0 +1,92 @@ +import { readFileSync, writeFileSync } from 'fs'; +import path from 'path'; + +// Files with super() + simple assignments (can remove constructor entirely) +const files = [ + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitFactor.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitRate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDelay.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDuration.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/Opacity.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/OpacityAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/orbit/src/Options/Classes/OrbitRotation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/rotate/src/Options/Classes/Rotate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/Size.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/SizeAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/tilt/src/Options/Classes/Tilt.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/absorbers/src/Options/Classes/AbsorberSize.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/bubble/src/Options/Classes/BubbleDiv.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts", +]; + +function escapeRegex(s) { + return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +let done = 0; +let saved = 0; + +for (const f of files) { + let content = readFileSync(f, 'utf-8'); + const orig = content; + + const re = /constructor\s*\(([^)]*)\)\s*\{/; + const m = content.match(re); + if (!m) { console.log(`SKIP (no ctor): ${path.basename(f)}`); continue; } + + // Find constructor body + const bodyStart = m.index + m[0].length - 1; + let d = 1, i = bodyStart + 1; + while (d > 0 && i < content.length) { + if (content[i] === '{') d++; else if (content[i] === '}') d--; + i++; + } + const bodyEnd = i - 1; + const body = content.substring(bodyStart + 1, bodyEnd); + + // Extract simple assignments + const assigns = [...body.matchAll(/this\.(\w+)\s*=\s*(.*?);/g)]; + + // Build changes bottom-to-top + const changes = []; + + // 1. Remove constructor (higher position, applied first) + changes.push([m.index, bodyEnd, '']); + + // 2. Declaration changes (lower positions) + for (const [, name, val] of assigns) { + const en = escapeRegex(name); + const isNew = /^new\s+\w+/.test(val); + const noReassign = !new RegExp(`this\\.${en}\\s*=`).test(content.substring(0, m.index) + content.substring(bodyEnd + 1)); + const readonly = isNew && noReassign ? 'readonly ' : ''; + + const beforeCtor = content.substring(0, m.index); + const dp = new RegExp(`^([ \\t]*(?:override\\s+)?(?:readonly\\s+)?)${en}((?:\\?\\s*)?(?:\\s*:\\s*[^;\\n]+)?)\\s*;\\s*$`, 'm'); + const dm = beforeCtor.match(dp); + if (dm) { + const hasReadonly = /\breadonly\s/.test(dm[1]); + changes.push([dm.index, dm.index + dm[0].length - 1, `${dm[1]}${hasReadonly ? '' : readonly}${name}${dm[2] || ''} = ${val};`]); + } + } + + // Apply bottom-to-top + changes.sort((a, b) => b[0] - a[0]); + for (const [s, e, r] of changes) { + content = content.substring(0, s) + r + content.substring(e + 1); + } + + content = content.replace(/\n{3,}/g, '\n\n'); + + if (orig !== content) { + writeFileSync(f, content, 'utf-8'); + const b = orig.length - content.length; + saved += b; + done++; + console.log(`✅ ${path.basename(f)} (-${b}B)`); + } else { + console.log(`❌ NO CHANGE: ${path.basename(f)}`); + } +} + +console.log(`\nGroup A: ${done} files, ${saved} bytes saved`); diff --git a/scripts/inline-option-defaults.mjs b/scripts/inline-option-defaults.mjs new file mode 100644 index 00000000000..4843273fb73 --- /dev/null +++ b/scripts/inline-option-defaults.mjs @@ -0,0 +1,269 @@ +import { readFileSync, writeFileSync } from 'fs'; +import path from 'path'; + +const files = [ + // === UPDATERS === + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/Destroy.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/Explode.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/Split.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitFactor.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/destroy/src/Options/Classes/SplitRate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/AnimatableGradient.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/AnimatableGradientColor.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/GradientAngle.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/GradientAngleAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/GradientColorOpacity.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/gradient/src/Options/Classes/GradientColorOpacityAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/Life.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDelay.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/life/src/Options/Classes/LifeDuration.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/Opacity.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/opacity/src/Options/Classes/OpacityAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/orbit/src/Options/Classes/Orbit.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/orbit/src/Options/Classes/OrbitRotation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/roll/src/Options/Classes/Roll.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/roll/src/Options/Classes/RollLight.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/rotate/src/Options/Classes/Rotate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/rotate/src/Options/Classes/RotateAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/Size.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/size/src/Options/Classes/SizeAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/tilt/src/Options/Classes/Tilt.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/tilt/src/Options/Classes/TiltAnimation.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/twinkle/src/Options/Classes/Twinkle.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/twinkle/src/Options/Classes/TwinkleLinksValues.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/twinkle/src/Options/Classes/TwinkleParticlesValues.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/wobble/src/Options/Classes/Wobble.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/updaters/wobble/src/Options/Classes/WobbleSpeed.ts", + // === PLUGINS === + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/absorbers/src/Options/Classes/AbsorberLife.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/absorbers/src/Options/Classes/AbsorberSize.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/absorbers/src/Options/Classes/AbsorberSizeLimit.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/backgroundMask/src/Options/Classes/BackgroundMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/backgroundMask/src/Options/Classes/BackgroundMaskCover.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/blend/src/Options/Classes/Blend.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/CanvasMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/CanvasMaskOverride.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/CanvasMaskPixels.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/FontTextMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/ImageMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/TextMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/canvasMask/src/Options/Classes/TextMaskLine.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/Emitter.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/EmitterLife.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/EmitterRate.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/EmitterShape.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/EmitterShapeReplace.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emitters/src/Options/Classes/EmitterSize.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/canvas/src/Options/Classes/EmittersCanvasShapeOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/canvas/src/Options/Classes/PixelsOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/canvas/src/Options/Classes/TextFontOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/canvas/src/Options/Classes/TextLinesOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/canvas/src/Options/Classes/TextOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/path/src/Options/Classes/EmittersPathShapeOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/emittersShapes/polygon/src/Options/Classes/EmittersPolygonShapeOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/infection/src/Options/Classes/Infection.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/infection/src/Options/Classes/InfectionStage.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Interactivity.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Events/ClickEvent.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Events/DivEvent.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Events/Events.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Events/HoverEvent.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/interactivity/src/Options/Classes/Modes/Modes.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/motion/src/Options/Classes/Motion.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/motion/src/Options/Classes/MotionReduce.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/poisson/src/Options/Classes/Poisson.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMask.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskDraw.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskDrawStroke.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskInline.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskLocalSvg.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/polygonMask/src/Options/Classes/PolygonMaskMove.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/responsive/src/Options/Classes/Responsive.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/Sounds.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsAudio.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsEvent.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsIcon.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsIcons.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsMelody.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsNote.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/sounds/src/Options/Classes/SoundsVolume.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/themes/src/Options/Classes/Theme.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/themes/src/Options/Classes/ThemeDefault.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/trail/src/Options/Classes/Trail.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/plugins/zoom/src/Options/Classes/Zoom.ts", + // === INTERACTIONS === + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/attract/src/Options/Classes/Attract.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/bounce/src/Options/Classes/Bounce.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/bubble/src/Options/Classes/BubbleBase.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/bubble/src/Options/Classes/BubbleDiv.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/cannon/src/Options/Classes/Cannon.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/connect/src/Options/Classes/Connect.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/connect/src/Options/Classes/ConnectLinks.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/destroy/src/Options/Classes/Destroy.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/drag/src/Options/Classes/Drag.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/grab/src/Options/Classes/Grab.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/grab/src/Options/Classes/GrabLinks.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/parallax/src/Options/Classes/Parallax.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/particle/src/Options/Classes/InteractivityParticleOptions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/push/src/Options/Classes/Push.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/remove/src/Options/Classes/Remove.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/repulse/src/Options/Classes/RepulseBase.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/repulse/src/Options/Classes/RepulseDiv.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/slow/src/Options/Classes/Slow.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/trail/src/Options/Classes/Trail.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/trail/src/Options/Classes/TrailColorComponent.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/trail/src/Options/Classes/TrailColorCoords.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/external/trail/src/Options/Classes/TrailColorWeight.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/Light.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/LightArea.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/LightGradient.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/light/src/Options/Classes/LightShadow.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/attract/src/Options/Classes/Attract.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/collisions/src/Options/Classes/Collisions.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/collisions/src/Options/Classes/CollisionsAbsorb.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/collisions/src/Options/Classes/CollisionsOverlap.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/links/src/Options/Classes/Links.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/links/src/Options/Classes/LinksShadow.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/links/src/Options/Classes/LinksTriangle.ts", + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/interactions/particles/repulse/src/Options/Classes/ParticlesRepulse.ts", + // === SHAPES === + "/Users/matteo/Projects/GitHub/tsparticles/tsparticles/shapes/image/src/Options/Classes/Preload.ts", +]; + +function escapeRegex(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +/** + * Only process files where ALL constructor assignments are simple + * single-line `this.x = y;` with NO extra code, NO params, NO multi-line. + */ +function isSimpleCase(content) { + const re = /constructor\s*\(([^)]*)\)\s*\{/; + const match = content.match(re); + if (!match) return false; + + // Has params? Skip + if (match[1].trim().length > 0) return false; + + // Find constructor body + const bodyStart = match.index + match[0].length - 1; + let depth = 1; + let i = bodyStart + 1; + while (depth > 0 && i < content.length) { + if (content[i] === '{') depth++; + else if (content[i] === '}') depth--; + i++; + } + const bodyEnd = i - 1; + const constructorBody = content.substring(bodyStart + 1, bodyEnd).trim(); + + // Check: are ALL lines either empty, comment, or `this.x = simpleValue;`? + // Also check that no value spans multiple lines + const lines = constructorBody.split('\n').map(l => l.trim()).filter(l => l && !l.startsWith('//')); + if (lines.length === 0) return false; + + const assignRegex = /^this\.(\w+)\s*=\s*(.+?);$/; + for (const line of lines) { + if (!assignRegex.test(line)) return false; + } + + return true; +} + +function simpleTransform(content) { + const re = /constructor\s*\(([^)]*)\)\s*\{/; + const match = content.match(re); + const bodyStart = match.index + match[0].length - 1; + let depth = 1; + let i = bodyStart + 1; + while (depth > 0 && i < content.length) { + if (content[i] === '{') depth++; + else if (content[i] === '}') depth--; + i++; + } + const bodyEnd = i - 1; + const constructorBody = content.substring(bodyStart + 1, bodyEnd); + + // Extract assignments + const assignRegex = /this\.(\w+)\s*=\s*(.*?);/g; + const assignments = []; + let m; + while ((m = assignRegex.exec(constructorBody)) !== null) { + assignments.push({ name: m[1], value: m[2].trim() }); + } + + // Build changes bottom-to-top + const changes = []; + + // 1. Constructor removal (higher position, applied first) + changes.push([match.index, bodyEnd, '']); + + // 2. Declaration changes (lower positions, applied second) + for (const { name, value } of assignments) { + const escName = escapeRegex(name); + const isNewObject = /^new\s+\w+/.test(value); + + // Check if reassigned outside constructor + const contentWithoutCtor = content.substring(0, match.index) + content.substring(bodyEnd + 1); + const isReassigned = new RegExp(`this\\.${escName}\\s*=`).test(contentWithoutCtor); + const readonly = isNewObject && !isReassigned ? 'readonly ' : ''; + + // Find declaration line in content BEFORE constructor + const beforeCtor = content.substring(0, match.index); + const declPattern = new RegExp( + `^([ \\t]*(?:override\\s+)?(?:readonly\\s+)?)${escName}((?:\\?\\s*)?(?:\\s*:\\s*[^;\\n]+)?)\\s*;\\s*$`, + 'm' + ); + const declMatch = beforeCtor.match(declPattern); + if (declMatch) { + const origIdx = declMatch.index; + const indent = declMatch[1]; + const typePart = declMatch[2] || ''; + const newDecl = `${indent}${readonly}${name}${typePart} = ${value};`; + changes.push([origIdx, origIdx + declMatch[0].length - 1, newDecl]); + } + } + + // Apply bottom-to-top (sorted by position DESC) + changes.sort((a, b) => b[0] - a[0]); + for (const [start, end, replacement] of changes) { + content = content.substring(0, start) + replacement + content.substring(end + 1); + } + + return content.replace(/\n{3,}/g, '\n\n'); +} + +let processed = 0; +let removed = 0; +let skipped = 0; +let saved = 0; + +for (const filePath of files) { + if (!filePath.startsWith('/')) { + console.log(`BAD PATH: ${filePath}`); + skipped++; + continue; + } + const content = readFileSync(filePath, 'utf-8'); + + if (!isSimpleCase(content)) { + console.log(`SKIP (complex): ${path.basename(filePath)}`); + skipped++; + continue; + } + + const result = simpleTransform(content); + if (content !== result) { + writeFileSync(filePath, result, 'utf-8'); + const bytes = content.length - result.length; + saved += bytes; + removed++; + console.log(`✅ ${path.basename(filePath)} (-${bytes}B)`); + } + processed++; +} + +console.log(`\n=== SUMMARY ===`); +console.log(`Processed: ${processed}, Removed: ${removed}, Skipped: ${skipped}`); +console.log(`Total bytes saved: ${saved}`); diff --git a/scripts/run-template.sh b/scripts/run-template.sh new file mode 100755 index 00000000000..d4aa3dc650d --- /dev/null +++ b/scripts/run-template.sh @@ -0,0 +1,214 @@ +#!/bin/bash +# ============================================================================= +# run-template.sh — Scaffold and preview a tsParticles template +# +# Usage: +# ./scripts/run-template.sh [template] [framework] +# +# Examples: +# ./scripts/run-template.sh confetti vanilla +# ./scripts/run-template.sh particles react +# ./scripts/run-template.sh tictactoe svelte +# ./scripts/run-template.sh # defaults: confetti + vanilla +# +# What it does: +# 1. Runs `prebuild` on the template to sync workspace versions into +# template.json +# 2. Copies the scaffold + use-case template files to /tmp/ +# 3. Replaces {{projectName}}, {{packageName}}, {{version}} placeholders +# 4. Merges dependencies from template.json into package.json, rewriting +# every @tsparticles/* dep to use pnpm's `link:` protocol pointing at +# the local copy in the workspace +# 5. Runs `pnpm install` in the temp project (so linked packages are +# resolved) +# 6. Starts `pnpm dev --host` so you can open the result in a browser +# ============================================================================= +set -euo pipefail + +TEMPLATE="${1:-confetti}" +FRAMEWORK="${2:-vanilla}" + +ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +TARGET_DIR="/tmp/tsparticles-template-test-${TEMPLATE}-${FRAMEWORK}" +PROJECT_NAME="tsparticles-app" +PACKAGE_NAME="tsparticles-app" + +echo "============================================================" +echo " Template: $TEMPLATE" +echo " Framework: $FRAMEWORK" +echo " Target: $TARGET_DIR" +echo "============================================================" + +# ---- 1. Prebuild (sync versions into template.json) ------------- +echo "" +echo "==> Updating template.json versions (prebuild)..." +pnpm --filter "@tsparticles/template-scaffold" run prebuild 2>&1 +pnpm --filter "@tsparticles/template-${TEMPLATE}" run prebuild 2>&1 + +# ---- 2. Read versions ------------------------------------------- +ENGINE_VERSION=$(node -p "require('${ROOT_DIR}/engine/package.json').version") +echo " Engine version: ${ENGINE_VERSION}" + +# ---- 3. Prepare target directory -------------------------------- +rm -rf "$TARGET_DIR" +mkdir -p "$TARGET_DIR" + +# ---- 4. Build a map of @tsparticles/* → local path --------------- +build_pkg_map() { + node -e " + const fs = require('fs'); + const path = require('path'); + const dirs = ['bundles','plugins','shapes','updaters','interactions','effects','paths','presets','wrappers','integrations','utils']; + let map = {}; + for (const d of dirs) { + try { + for (const sub of fs.readdirSync(d)) { + const pj = path.join(d, sub, 'package.json'); + try { + const pkg = JSON.parse(fs.readFileSync(pj, 'utf-8')); + if (pkg.name && pkg.name.startsWith('@tsparticles/')) { + map[pkg.name] = path.join('${ROOT_DIR}', d, sub); + } + } catch(e) {} + } + } catch(e) {} + } + const eng = JSON.parse(fs.readFileSync(path.join('${ROOT_DIR}', 'engine', 'package.json'), 'utf-8')); + map[eng.name] = path.join('${ROOT_DIR}', 'engine'); + console.log(JSON.stringify(map)); + " +} + +echo "==> Building package map..." +PKG_MAP=$(build_pkg_map) + +# ---- 5. Copy scaffold + use-case files, replace placeholders ---- +copy_and_replace() { + local src="$1" dst="$2" + if [ ! -d "$src" ]; then + echo " [SKIP] $src (not found)" + return + fi + echo " Copying $src → $dst" + mkdir -p "$dst" + for entry in "$src"/*; do + local name + name=$(basename "$entry") + if [ "$name" = "gitignore" ]; then + name=".gitignore" + fi + if [ -d "$entry" ]; then + copy_and_replace "$entry" "$dst/$name" + else + local content + content=$(sed \ + -e "s/{{projectName}}/${PROJECT_NAME}/g" \ + -e "s/{{packageName}}/${PACKAGE_NAME}/g" \ + -e "s/{{version}}/${ENGINE_VERSION}/g" \ + "$entry") + echo "$content" > "$dst/$name" + fi + done +} + +SCAFFOLD_ROOT="${ROOT_DIR}/templates/scaffold" +UC_ROOT="${ROOT_DIR}/templates/${TEMPLATE}" + +echo "" +echo "==> Copying scaffold template..." +copy_and_replace "${SCAFFOLD_ROOT}/template/${FRAMEWORK}" "$TARGET_DIR" + +echo "" +echo "==> Copying use-case template (${TEMPLATE})..." +copy_and_replace "${UC_ROOT}/template/${FRAMEWORK}" "$TARGET_DIR" + +# ---- 6. Merge dependencies from template.json ------------------- +echo "" +echo "==> Merging dependencies..." + +TMP_DEPS=$(mktemp) +echo '{"dependencies":{},"devDependencies":{}}' > "$TMP_DEPS" + +merge_json_deps() { + local tpl_root="$1" + local tpl_json="${tpl_root}/template.json" + if [ ! -f "$tpl_json" ]; then return; fi + node -e " + const fs = require('fs'); + const base = JSON.parse(fs.readFileSync('${TMP_DEPS}', 'utf-8')); + const tmpl = JSON.parse(fs.readFileSync('${tpl_json}', 'utf-8')).package || {}; + const merged = { + dependencies: { ...base.dependencies, ...(tmpl.dependencies || {}) }, + devDependencies: { ...base.devDependencies, ...(tmpl.devDependencies || {}) }, + }; + fs.writeFileSync('${TMP_DEPS}', JSON.stringify(merged)); + " +} + +merge_json_deps "$SCAFFOLD_ROOT" +merge_json_deps "$UC_ROOT" + +# ---- 7. Rewrite package.json with linked deps ------------------- +echo "" +echo "==> Writing package.json with local link: deps..." + +PKG_MAP="$PKG_MAP" node -e " + const fs = require('fs'); + const path = require('path'); + + // Read current package.json + const pkgPath = path.join('${TARGET_DIR}', 'package.json'); + const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')); + + // Read merged deps + const merged = JSON.parse(fs.readFileSync('${TMP_DEPS}', 'utf-8')); + const pkgMap = JSON.parse(process.env.PKG_MAP || '{}'); + + // Helper: resolve @tsparticles/* to link: protocol + function resolveDep(name, version) { + if (!name.startsWith('@tsparticles/')) return version; + const localPath = pkgMap[name]; + if (localPath) { + // Use absolute path with link: protocol + return 'link:' + path.resolve(localPath); + } + return version; // fallback to original version + } + + // Add merged deps to package.json + const deps = pkg.dependencies || {}; + const devDeps = pkg.devDependencies || {}; + + for (const [k, v] of Object.entries(merged.dependencies || {})) { + deps[k] = resolveDep(k, v); + } + for (const [k, v] of Object.entries(merged.devDependencies || {})) { + devDeps[k] = resolveDep(k, v); + } + + pkg.dependencies = deps; + pkg.devDependencies = devDeps; + + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n'); + console.log(' Updated: ' + pkgPath); +" 2>&1 + +rm -f "$TMP_DEPS" + +echo "" +echo "==> Generated package.json:" +head -50 "${TARGET_DIR}/package.json" | grep -E '"(name|dependenc|devDependenc|@tsparticles/)' | sed 's/^/ /' + +# ---- 8. Install dependencies ------------------------------------ +echo "" +echo "==> Installing dependencies..." +cd "$TARGET_DIR" && pnpm install 2>&1 | tail -5 + +# ---- 9. Start dev server --------------------------------------- +echo "" +echo "============================================================" +echo " Starting dev server for ${TEMPLATE} / ${FRAMEWORK}" +echo " Target: ${TARGET_DIR}" +echo "============================================================" +echo "" +cd "$TARGET_DIR" && pnpm dev --host diff --git a/scripts/test-regex.mjs b/scripts/test-regex.mjs new file mode 100644 index 00000000000..c5c35d9f499 --- /dev/null +++ b/scripts/test-regex.mjs @@ -0,0 +1,16 @@ +const text = " rate;\n\n constructor()"; +const name = "rate"; +const fullRe = new RegExp("^( *)(override\\s+)?(readonly\\s+)?(?:readonly\\s+)?" + name + "(\\??)\\s*(:\\s*[^;\\n]+?)?\\s*;\\s*$", "m"); +const m = text.match(fullRe); +console.log("full regex match:", m ? JSON.stringify(m[0]) : "null"); +console.log("full regex length:", m ? m[0].length : 0); + +// Show all captures +if (m) { + for (let i = 1; i < m.length; i++) { + console.log(` cap ${i}:`, JSON.stringify(m[i])); + } + // What's at the position after the match? + console.log("char after match:", JSON.stringify(text[m.index + m[0].length])); + console.log("next 20 chars:", JSON.stringify(text.substring(m.index + m[0].length, m.index + m[0].length + 20))); +} diff --git a/scripts/update-template-versions.sh b/scripts/update-template-versions.sh new file mode 100755 index 00000000000..f9b3850f8a0 --- /dev/null +++ b/scripts/update-template-versions.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# ============================================================================= +# update-template-versions.sh — Sync ALL template.json versions with workspace +# +# Runs every template's prebuild script so their template.json files contain +# the current workspace package versions. Must be called AFTER lerna version +# (or any version bump) to keep template scaffolding in sync. +# ============================================================================= +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +TEMPLATES_DIR="${ROOT_DIR}/templates" +FAILED=0 + +echo "==> Syncing template.json versions across all templates..." + +for template_dir in "${TEMPLATES_DIR}"/*/; do + name=$(basename "$template_dir") + prebuild="${template_dir}scripts/prebuild.js" + + if [ -f "$prebuild" ]; then + echo " [${name}] running prebuild..." + if ! (cd "$template_dir" && node scripts/prebuild.js 2>&1); then + echo " [${name}] FAILED" >&2 + FAILED=$((FAILED + 1)) + fi + else + echo " [${name}] no prebuild script, skipping" + fi +done + +if [ "$FAILED" -gt 0 ]; then + echo "==> $FAILED template(s) failed to update" + exit 1 +fi + +echo "==> All template versions synced successfully" diff --git a/shapes/arrow/CHANGELOG.md b/shapes/arrow/CHANGELOG.md index 81f9e297043..d61721fcaa1 100644 --- a/shapes/arrow/CHANGELOG.md +++ b/shapes/arrow/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-arrow diff --git a/shapes/arrow/package.dist.json b/shapes/arrow/package.dist.json index 484a6d0ef0b..26ffdf2275e 100644 --- a/shapes/arrow/package.dist.json +++ b/shapes/arrow/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-arrow", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles arrow shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/arrow/package.json b/shapes/arrow/package.json index 10181de9362..a6a65d0fd5c 100644 --- a/shapes/arrow/package.json +++ b/shapes/arrow/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-arrow", - "version": "4.1.3", - "description": "tsParticles arrow shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as arrow shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "arrow" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/arrow/src/ArrowDrawer.ts b/shapes/arrow/src/ArrowDrawer.ts index 97effc41e2e..d1401e82cec 100644 --- a/shapes/arrow/src/ArrowDrawer.ts +++ b/shapes/arrow/src/ArrowDrawer.ts @@ -10,7 +10,7 @@ const defaultHeightFactor = 0.5, export class ArrowDrawer implements IShapeDrawer { /** * Draws the arrow shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawArrow(data); @@ -18,8 +18,8 @@ export class ArrowDrawer implements IShapeDrawer { /** * Initializes arrow-specific particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: ArrowParticle): void { const shapeData = particle.shapeData; diff --git a/shapes/arrow/src/Utils.ts b/shapes/arrow/src/Utils.ts index 39986a1a584..eab9fad6d93 100644 --- a/shapes/arrow/src/Utils.ts +++ b/shapes/arrow/src/Utils.ts @@ -6,7 +6,7 @@ const defaultHeightFactor = half, defaultBodyHeightFactor = half; /** - * @param data - + * @param data - The data to handle */ export function drawArrow(data: IShapeDrawData): void { const { context, particle, radius } = data, diff --git a/shapes/arrow/src/index.lazy.ts b/shapes/arrow/src/index.lazy.ts index 582234f37fc..a69bdcd9927 100644 --- a/shapes/arrow/src/index.lazy.ts +++ b/shapes/arrow/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadArrowShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/arrow/src/index.ts b/shapes/arrow/src/index.ts index 5a275796c57..36aac66d508 100644 --- a/shapes/arrow/src/index.ts +++ b/shapes/arrow/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadArrowShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/CHANGELOG.md b/shapes/cards/CHANGELOG.md index 584e9ff7501..25758494d1c 100644 --- a/shapes/cards/CHANGELOG.md +++ b/shapes/cards/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-cards diff --git a/shapes/cards/package.dist.json b/shapes/cards/package.dist.json index 54cb020e110..a80b45a1e5f 100644 --- a/shapes/cards/package.dist.json +++ b/shapes/cards/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-cards", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cards shape", "homepage": "https://particles.js.org", "repository": { @@ -190,13 +190,13 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/path-utils": "4.1.3" + "@tsparticles/path-utils": "4.2.0" } } diff --git a/shapes/cards/package.json b/shapes/cards/package.json index c99a0682b71..dd5ca5824eb 100644 --- a/shapes/cards/package.json +++ b/shapes/cards/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-cards", - "version": "4.1.3", - "description": "tsParticles cards shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as playing card suit symbols", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "cards" ], "author": "Matteo Bruni ", "license": "MIT", @@ -200,7 +166,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/path-utils": "workspace:*" }, diff --git a/shapes/cards/src/cards/CardDrawer.ts b/shapes/cards/src/cards/CardDrawer.ts index 5882443066f..3ea65aab19b 100644 --- a/shapes/cards/src/cards/CardDrawer.ts +++ b/shapes/cards/src/cards/CardDrawer.ts @@ -10,7 +10,7 @@ export class CardDrawer implements IShapeDrawer { /** * CardDrawer constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -18,7 +18,7 @@ export class CardDrawer implements IShapeDrawer { /** * Draws the card shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const { context, particle, opacity, radius } = data; @@ -46,8 +46,8 @@ export class CardDrawer implements IShapeDrawer { /** * Initializes the card shape on the particle - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: CardParticle): void { const shape = particle.shapeData; diff --git a/shapes/cards/src/cards/index.lazy.ts b/shapes/cards/src/cards/index.lazy.ts index 952f998af86..f397dd6fdf3 100644 --- a/shapes/cards/src/cards/index.lazy.ts +++ b/shapes/cards/src/cards/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullCardsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/cards/index.ts b/shapes/cards/src/cards/index.ts index b0b1802a2cc..735c7ac785d 100644 --- a/shapes/cards/src/cards/index.ts +++ b/shapes/cards/src/cards/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadFullCardsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/clubs/index.lazy.ts b/shapes/cards/src/clubs/index.lazy.ts index d6f95d7b647..251b465960c 100644 --- a/shapes/cards/src/clubs/index.lazy.ts +++ b/shapes/cards/src/clubs/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadClubsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/clubs/index.ts b/shapes/cards/src/clubs/index.ts index 45c66ef3784..3859298bf7c 100644 --- a/shapes/cards/src/clubs/index.ts +++ b/shapes/cards/src/clubs/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadClubsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/diamonds/index.lazy.ts b/shapes/cards/src/diamonds/index.lazy.ts index 4a8d2ab42aa..b57560eb2e0 100644 --- a/shapes/cards/src/diamonds/index.lazy.ts +++ b/shapes/cards/src/diamonds/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDiamondsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/diamonds/index.ts b/shapes/cards/src/diamonds/index.ts index 4bf54cb671b..d6c2e1d866c 100644 --- a/shapes/cards/src/diamonds/index.ts +++ b/shapes/cards/src/diamonds/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDiamondsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/hearts/index.lazy.ts b/shapes/cards/src/hearts/index.lazy.ts index deca89e19a2..57943342fcc 100644 --- a/shapes/cards/src/hearts/index.lazy.ts +++ b/shapes/cards/src/hearts/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeartsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/hearts/index.ts b/shapes/cards/src/hearts/index.ts index cdb5e23f59f..c108110998a 100644 --- a/shapes/cards/src/hearts/index.ts +++ b/shapes/cards/src/hearts/index.ts @@ -4,7 +4,7 @@ import { HeartDrawer } from "./HeartDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeartsSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/index.lazy.ts b/shapes/cards/src/index.lazy.ts index 7ebf2c08110..db26b02baed 100644 --- a/shapes/cards/src/index.lazy.ts +++ b/shapes/cards/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCardsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/index.ts b/shapes/cards/src/index.ts index 5c7950627a7..43157e0b980 100644 --- a/shapes/cards/src/index.ts +++ b/shapes/cards/src/index.ts @@ -5,7 +5,7 @@ import { loadFullCardsShape } from "./cards/index.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCardsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/spades/index.lazy.ts b/shapes/cards/src/spades/index.lazy.ts index 04d90084340..2b52674d0d2 100644 --- a/shapes/cards/src/spades/index.lazy.ts +++ b/shapes/cards/src/spades/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpadesSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/spades/index.ts b/shapes/cards/src/spades/index.ts index 7148c4f7d90..cdd2cd6b013 100644 --- a/shapes/cards/src/spades/index.ts +++ b/shapes/cards/src/spades/index.ts @@ -4,7 +4,7 @@ import { SpadeDrawer } from "./SpadeDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpadesSuitShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/suits.lazy.ts b/shapes/cards/src/suits.lazy.ts index 9642bd34484..514830e2c21 100644 --- a/shapes/cards/src/suits.lazy.ts +++ b/shapes/cards/src/suits.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCardSuitsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/suits.ts b/shapes/cards/src/suits.ts index 6ccedbd62c2..8872d6a904b 100644 --- a/shapes/cards/src/suits.ts +++ b/shapes/cards/src/suits.ts @@ -7,7 +7,7 @@ import { loadSpadesSuitShape } from "./spades/index.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCardSuitsShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cards/src/utils.ts b/shapes/cards/src/utils.ts index 7fd4d4f6185..60379f000a0 100644 --- a/shapes/cards/src/utils.ts +++ b/shapes/cards/src/utils.ts @@ -24,12 +24,12 @@ const cardWidthRatio = (double * double) / triple, /** * Draws a rounded card with suit and value side-by-side. * The suit is slightly offset from the edge to avoid touching the border. - * @param ctx - - * @param radius - - * @param cardData - - * @param hdr - - * @param flipped - - * @param canvasSettings - + * @param ctx - The rendering context + * @param radius - The radius + * @param cardData - The cardData + * @param hdr - The hdr + * @param flipped - The flipped + * @param canvasSettings - The canvasSettings */ export function drawRoundedCard( ctx: OffscreenCanvasRenderingContext2D, @@ -74,9 +74,9 @@ export function drawRoundedCard( } /** - * @param radius - - * @param hdr - - * @param cardData - + * @param radius - The radius + * @param hdr - The hdr + * @param cardData - The cardData * @returns - */ function getCacheKey(radius: number, hdr: boolean, cardData: ICardData): string { @@ -84,18 +84,18 @@ function getCacheKey(radius: number, hdr: boolean, cardData: ICardData): string } /** - * @param ctx - - * @param radius - + * @param ctx - The rendering context + * @param radius - The radius */ function drawRoundedCardBack(ctx: OffscreenCanvasRenderingContext2D, radius: number): void { drawCardBody(ctx, radius); } /** - * @param ctx - - * @param radius - - * @param cardData - - * @param hdr - + * @param ctx - The rendering context + * @param radius - The radius + * @param cardData - The cardData + * @param hdr - The hdr */ function drawRoundedCardFront( ctx: OffscreenCanvasRenderingContext2D, @@ -183,8 +183,8 @@ function drawRoundedCardFront( } /** - * @param ctx - - * @param radius - + * @param ctx - The rendering context + * @param radius - The radius */ function drawCardBody(ctx: OffscreenCanvasRenderingContext2D, radius: number): void { const cardWidth = radius * cardWidthRatio, diff --git a/shapes/circle/CHANGELOG.md b/shapes/circle/CHANGELOG.md index c31f903fe45..87e7a2e1d3b 100644 --- a/shapes/circle/CHANGELOG.md +++ b/shapes/circle/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-circle diff --git a/shapes/circle/package.dist.json b/shapes/circle/package.dist.json index 37ed382f4f6..8c66d2c311f 100644 --- a/shapes/circle/package.dist.json +++ b/shapes/circle/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-circle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles circle shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/circle/package.json b/shapes/circle/package.json index 1f62a716683..9efcea5f389 100644 --- a/shapes/circle/package.json +++ b/shapes/circle/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-circle", - "version": "4.1.3", - "description": "tsParticles circle shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as circles (default particle shape)", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "circle" ], "author": "Matteo Bruni ", "license": "MIT", @@ -72,7 +65,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/circle/src/CircleDrawer.ts b/shapes/circle/src/CircleDrawer.ts index 6da507f0222..eae3f73bfb0 100644 --- a/shapes/circle/src/CircleDrawer.ts +++ b/shapes/circle/src/CircleDrawer.ts @@ -11,21 +11,24 @@ const sides = 12, export class CircleDrawer implements IShapeDrawer { /** * Draws the circle shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawCircle(data); } - /** Gets the number of sides for this shape */ + /** + * Gets the number of sides for this shape + * @returns The numeric value + */ getSidesCount(): number { return sides; } /** * Initializes circle-specific particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: CircleParticle): void { const shapeData = particle.shapeData as ICircleShapeData | undefined, diff --git a/shapes/circle/src/index.lazy.ts b/shapes/circle/src/index.lazy.ts index 8b905db108b..3dfe0cc29f4 100644 --- a/shapes/circle/src/index.lazy.ts +++ b/shapes/circle/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCircleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/circle/src/index.ts b/shapes/circle/src/index.ts index 2a81a6349cd..3b09fd785b3 100644 --- a/shapes/circle/src/index.ts +++ b/shapes/circle/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCircleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cog/CHANGELOG.md b/shapes/cog/CHANGELOG.md index f146acd4095..e74a28f1d08 100644 --- a/shapes/cog/CHANGELOG.md +++ b/shapes/cog/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-cog diff --git a/shapes/cog/package.dist.json b/shapes/cog/package.dist.json index ab73cbcc617..bcbe60d38f1 100644 --- a/shapes/cog/package.dist.json +++ b/shapes/cog/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-cog", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles cog shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/cog/package.json b/shapes/cog/package.json index aae8c686e6a..3564d91df8e 100644 --- a/shapes/cog/package.json +++ b/shapes/cog/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-cog", - "version": "4.1.3", - "description": "tsParticles cog shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as cog or gear shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,22 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "cog", + "gear" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +83,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/cog/src/CogDrawer.ts b/shapes/cog/src/CogDrawer.ts index a98076138ef..943342850ba 100644 --- a/shapes/cog/src/CogDrawer.ts +++ b/shapes/cog/src/CogDrawer.ts @@ -12,7 +12,7 @@ const defaultHoleRadius = 44, export class CogDrawer implements IShapeDrawer { /** * Draws the cog hole after the main shape - * @param data + * @param data - The data to handle */ afterDraw(data: IShapeDrawData): void { drawCogHole(data); @@ -20,7 +20,7 @@ export class CogDrawer implements IShapeDrawer { /** * Draws the cog shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawCog(data); @@ -28,8 +28,8 @@ export class CogDrawer implements IShapeDrawer { /** * Initializes cog-specific particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: CogParticle): void { const shapeData = particle.shapeData; diff --git a/shapes/cog/src/Utils.ts b/shapes/cog/src/Utils.ts index e7634fa2747..211ade7146b 100644 --- a/shapes/cog/src/Utils.ts +++ b/shapes/cog/src/Utils.ts @@ -6,7 +6,7 @@ const minAngle = 0, /** * - * @param data - + * @param data - The data to handle */ export function drawCogHole(data: IShapeDrawData): void { const { context, particle, radius } = data; @@ -36,7 +36,7 @@ export function drawCogHole(data: IShapeDrawData): void { /** * - * @param data - + * @param data - The data to handle */ export function drawCog(data: IShapeDrawData): void { const { context, particle, radius } = data; diff --git a/shapes/cog/src/index.lazy.ts b/shapes/cog/src/index.lazy.ts index 1862574c328..5122e9a1791 100644 --- a/shapes/cog/src/index.lazy.ts +++ b/shapes/cog/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCogShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/cog/src/index.ts b/shapes/cog/src/index.ts index da6954d80c8..a9f45c65338 100644 --- a/shapes/cog/src/index.ts +++ b/shapes/cog/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadCogShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/emoji/CHANGELOG.md b/shapes/emoji/CHANGELOG.md index 7b57ebef65e..ce9b5160fe1 100644 --- a/shapes/emoji/CHANGELOG.md +++ b/shapes/emoji/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-emoji diff --git a/shapes/emoji/package.dist.json b/shapes/emoji/package.dist.json index b1e6c70f88c..d9db7ffb7a4 100644 --- a/shapes/emoji/package.dist.json +++ b/shapes/emoji/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-emoji", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles emoji shape", "homepage": "https://particles.js.org", "repository": { @@ -65,13 +65,13 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/shapes/emoji/package.json b/shapes/emoji/package.json index e12ea45e727..a349c6a37b6 100644 --- a/shapes/emoji/package.json +++ b/shapes/emoji/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-emoji", - "version": "4.1.3", - "description": "tsParticles emoji shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as emoji characters", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "emoji" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/emoji/src/EmojiDrawer.ts b/shapes/emoji/src/EmojiDrawer.ts index 7b3106ced3d..33a28706d91 100644 --- a/shapes/emoji/src/EmojiDrawer.ts +++ b/shapes/emoji/src/EmojiDrawer.ts @@ -36,7 +36,7 @@ export class EmojiDrawer implements IShapeDrawer { /** * Draws the emoji shape - * @param data - + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const key = data.particle.emojiDataKey; @@ -56,7 +56,7 @@ export class EmojiDrawer implements IShapeDrawer { /** * Loads the required emoji fonts - * @param container + * @param container - The container to handle */ async init(container: Container): Promise { const options = container.actualOptions, @@ -80,7 +80,7 @@ export class EmojiDrawer implements IShapeDrawer { /** * Cleans up emoji data when particle is destroyed - * @param particle - + * @param particle - The particle to process */ particleDestroy(particle: EmojiParticle): void { particle.emojiDataKey = undefined; @@ -88,8 +88,8 @@ export class EmojiDrawer implements IShapeDrawer { /** * Initializes the emoji shape for a particle - * @param container - - * @param particle - + * @param container - The container to handle + * @param particle - The particle to process */ particleInit(container: Container, particle: EmojiParticle): void { const shapeData = particle.shapeData as unknown as IEmojiShape; diff --git a/shapes/emoji/src/Utils.ts b/shapes/emoji/src/Utils.ts index 7da2e09364c..4c764f6eb59 100644 --- a/shapes/emoji/src/Utils.ts +++ b/shapes/emoji/src/Utils.ts @@ -5,8 +5,8 @@ export const validTypes = ["emoji"]; /** * - * @param data - - * @param image - + * @param data - The data to handle + * @param image - The image */ export function drawEmoji(data: IShapeDrawData, image: ImageBitmap | HTMLCanvasElement): void { const { context, opacity } = data, diff --git a/shapes/emoji/src/index.lazy.ts b/shapes/emoji/src/index.lazy.ts index e0652006b68..17837d83281 100644 --- a/shapes/emoji/src/index.lazy.ts +++ b/shapes/emoji/src/index.lazy.ts @@ -5,7 +5,7 @@ import { validTypes } from "./Utils.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmojiShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/emoji/src/index.ts b/shapes/emoji/src/index.ts index eccce196238..eca61fa535b 100644 --- a/shapes/emoji/src/index.ts +++ b/shapes/emoji/src/index.ts @@ -5,7 +5,7 @@ import { validTypes } from "./Utils.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadEmojiShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/heart/CHANGELOG.md b/shapes/heart/CHANGELOG.md index 388a16ad56f..46715547871 100644 --- a/shapes/heart/CHANGELOG.md +++ b/shapes/heart/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-heart diff --git a/shapes/heart/package.dist.json b/shapes/heart/package.dist.json index 45e232d5c4e..4def855747a 100644 --- a/shapes/heart/package.dist.json +++ b/shapes/heart/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-heart", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles heart shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/heart/package.json b/shapes/heart/package.json index 8ad11881101..2cdeda0bdcb 100644 --- a/shapes/heart/package.json +++ b/shapes/heart/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-heart", - "version": "4.1.3", - "description": "tsParticles heart shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as heart shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "heart" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/heart/src/HeartDrawer.ts b/shapes/heart/src/HeartDrawer.ts index e30416e228b..ac649075cff 100644 --- a/shapes/heart/src/HeartDrawer.ts +++ b/shapes/heart/src/HeartDrawer.ts @@ -5,7 +5,7 @@ import { drawHeart } from "./Utils.js"; export class HeartDrawer implements IShapeDrawer { /** * Draws the heart shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawHeart(data); diff --git a/shapes/heart/src/Utils.ts b/shapes/heart/src/Utils.ts index 2fb5b41d59d..efd415ff3f6 100644 --- a/shapes/heart/src/Utils.ts +++ b/shapes/heart/src/Utils.ts @@ -2,7 +2,7 @@ import { type IShapeDrawData, double, half } from "@tsparticles/engine"; /** * - * @param data - + * @param data - The data to handle */ export function drawHeart(data: IShapeDrawData): void { const { context, radius } = data, diff --git a/shapes/heart/src/index.lazy.ts b/shapes/heart/src/index.lazy.ts index 2cf9e9f16b3..5f76421c98c 100644 --- a/shapes/heart/src/index.lazy.ts +++ b/shapes/heart/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeartShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/heart/src/index.ts b/shapes/heart/src/index.ts index 062c0d5f3ad..6be2d6781c0 100644 --- a/shapes/heart/src/index.ts +++ b/shapes/heart/src/index.ts @@ -4,7 +4,7 @@ import { HeartDrawer } from "./HeartDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadHeartShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/image/CHANGELOG.md b/shapes/image/CHANGELOG.md index 4bc18fd5d86..cdd746d43ab 100644 --- a/shapes/image/CHANGELOG.md +++ b/shapes/image/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-image diff --git a/shapes/image/package.dist.json b/shapes/image/package.dist.json index 324da23024d..2dfa4386bc2 100644 --- a/shapes/image/package.dist.json +++ b/shapes/image/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-image", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles image shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/image/package.json b/shapes/image/package.json index e9155d27a59..53af61e7030 100644 --- a/shapes/image/package.json +++ b/shapes/image/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-image", - "version": "4.1.3", - "description": "tsParticles image shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as custom image files", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "image" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/image/src/GifUtils/Utils.ts b/shapes/image/src/GifUtils/Utils.ts index 1e5f1701efa..ca6b0c7cd1e 100644 --- a/shapes/image/src/GifUtils/Utils.ts +++ b/shapes/image/src/GifUtils/Utils.ts @@ -635,8 +635,8 @@ export async function decodeGIF( } /** - * @param data - - * @param canvasSettings - + * @param data - The data to handle + * @param canvasSettings - The canvasSettings */ export function drawGif(data: IShapeDrawData, canvasSettings?: CanvasRenderingContext2DSettings): void { const { context, radius, particle, delta } = data, diff --git a/shapes/image/src/ImageDrawer.ts b/shapes/image/src/ImageDrawer.ts index 9870ab370eb..628c4428122 100644 --- a/shapes/image/src/ImageDrawer.ts +++ b/shapes/image/src/ImageDrawer.ts @@ -22,8 +22,8 @@ export class ImageDrawer implements IShapeDrawer { /** * Image drawer constructor, initializing the image set collection - * @param engine - - * @param container - + * @param engine - The engine to load the shape in + * @param container - The container to handle */ constructor(engine: ImageEngine, container: ImageContainer) { this.#engine = engine; diff --git a/shapes/image/src/Options/Classes/Preload.ts b/shapes/image/src/Options/Classes/Preload.ts index 7bea5faa253..db1c856067c 100644 --- a/shapes/image/src/Options/Classes/Preload.ts +++ b/shapes/image/src/Options/Classes/Preload.ts @@ -1,46 +1,24 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IPreload } from "../Interfaces/IPreload.js"; export class Preload implements IPreload, IOptionLoader { - gif: boolean; + gif = false; height?: number; name?: string; replaceColor?: boolean; - src: string; + src = ""; width?: number; - constructor() { - this.src = ""; - this.gif = false; - } - load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.gif !== undefined) { - this.gif = data.gif; - } - - if (data.height !== undefined) { - this.height = data.height; - } - - if (data.name !== undefined) { - this.name = data.name; - } - - if (data.replaceColor !== undefined) { - this.replaceColor = data.replaceColor; - } - - if (data.src !== undefined) { - this.src = data.src; - } - - if (data.width !== undefined) { - this.width = data.width; - } + loadProperty(this, "gif", data.gif); + loadProperty(this, "height", data.height); + loadProperty(this, "name", data.name); + loadProperty(this, "replaceColor", data.replaceColor); + loadProperty(this, "src", data.src); + loadProperty(this, "width", data.width); } } diff --git a/shapes/image/src/Utils.ts b/shapes/image/src/Utils.ts index b71de1bc50f..ce5da98e584 100644 --- a/shapes/image/src/Utils.ts +++ b/shapes/image/src/Utils.ts @@ -64,7 +64,7 @@ const currentColorRegex = * @param imageShape - the image used for replacing SVG data * @param color - the replace color value * @param opacity - the color opacity - * @param hdr - + * @param hdr - The hdr * @returns the new SVG data */ function replaceColorSvg(imageShape: IImage, color: IHsl, opacity: number, hdr = false): string { @@ -150,7 +150,7 @@ export async function downloadSvgImage(image: IImage): Promise { * @param imageData - the image shape data * @param color - the replacement color * @param particle - the particle where the replaced data is going to be used - * @param hdr - + * @param hdr - The hdr * @returns the image with the color replaced */ export function replaceImageColor( diff --git a/shapes/image/src/index.lazy.ts b/shapes/image/src/index.lazy.ts index 17c73d8cdb6..1e36952bb7e 100644 --- a/shapes/image/src/index.lazy.ts +++ b/shapes/image/src/index.lazy.ts @@ -6,7 +6,7 @@ const extLength = 3; /** * - * @param engine - + * @param engine - The engine to load the shape in */ function addLoadImageToEngine(engine: ImageEngine): void { engine.getImages ??= (container: ImageContainer): IImage[] => { diff --git a/shapes/image/src/index.ts b/shapes/image/src/index.ts index de434fc9945..73eb68b6066 100644 --- a/shapes/image/src/index.ts +++ b/shapes/image/src/index.ts @@ -9,7 +9,7 @@ const extLength = 3; /** * - * @param engine - + * @param engine - The engine to load the shape in */ function addLoadImageToEngine(engine: ImageEngine): void { engine.getImages ??= (container: ImageContainer): IImage[] => { diff --git a/shapes/infinity/CHANGELOG.md b/shapes/infinity/CHANGELOG.md index 0f4ee81fceb..9e23db9d9d3 100644 --- a/shapes/infinity/CHANGELOG.md +++ b/shapes/infinity/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-infinity diff --git a/shapes/infinity/package.dist.json b/shapes/infinity/package.dist.json index 194cff19eba..0876321de23 100644 --- a/shapes/infinity/package.dist.json +++ b/shapes/infinity/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-infinity", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles infinity shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/infinity/package.json b/shapes/infinity/package.json index 561df168a5c..76c6e1d38aa 100644 --- a/shapes/infinity/package.json +++ b/shapes/infinity/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-infinity", - "version": "4.1.3", - "description": "tsParticles infinity shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as infinity symbol (∞) shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "infinity" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/infinity/src/InfinityDrawer.ts b/shapes/infinity/src/InfinityDrawer.ts index ccc60946ceb..38166f892f7 100644 --- a/shapes/infinity/src/InfinityDrawer.ts +++ b/shapes/infinity/src/InfinityDrawer.ts @@ -5,7 +5,7 @@ import { drawInfinity } from "./Utils.js"; export class InfinityDrawer implements IShapeDrawer { /** * Draws the infinity shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawInfinity(data); diff --git a/shapes/infinity/src/Utils.ts b/shapes/infinity/src/Utils.ts index 1e163d0470c..9e5f5d1821d 100644 --- a/shapes/infinity/src/Utils.ts +++ b/shapes/infinity/src/Utils.ts @@ -3,7 +3,7 @@ import { type IShapeDrawData, originPoint } from "@tsparticles/engine"; const loopSizeFactor = 0.55; /** - * @param data - + * @param data - The data to handle */ export function drawInfinity(data: IShapeDrawData): void { const { context, radius } = data, diff --git a/shapes/infinity/src/index.lazy.ts b/shapes/infinity/src/index.lazy.ts index 5660d0c6339..f7657c965e1 100644 --- a/shapes/infinity/src/index.lazy.ts +++ b/shapes/infinity/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadInfinityShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/infinity/src/index.ts b/shapes/infinity/src/index.ts index 96fa65c941f..3346913bf16 100644 --- a/shapes/infinity/src/index.ts +++ b/shapes/infinity/src/index.ts @@ -4,7 +4,7 @@ import { InfinityDrawer } from "./InfinityDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadInfinityShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/line/CHANGELOG.md b/shapes/line/CHANGELOG.md index 1aa6f85df0d..32023521f1b 100644 --- a/shapes/line/CHANGELOG.md +++ b/shapes/line/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-line diff --git a/shapes/line/package.dist.json b/shapes/line/package.dist.json index e69e27b7437..0faf5ca6aa4 100644 --- a/shapes/line/package.dist.json +++ b/shapes/line/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-line", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles line shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/line/package.json b/shapes/line/package.json index e6ab9b0eea4..bd64d3b1729 100644 --- a/shapes/line/package.json +++ b/shapes/line/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-line", - "version": "4.1.3", - "description": "tsParticles line shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as thin line or trail shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "line" ], "publishConfig": { "access": "public", @@ -80,7 +73,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "type": "module" diff --git a/shapes/line/src/LineDrawer.ts b/shapes/line/src/LineDrawer.ts index a85293037b5..c34ab3d4cd8 100644 --- a/shapes/line/src/LineDrawer.ts +++ b/shapes/line/src/LineDrawer.ts @@ -7,13 +7,16 @@ const sides = 1; export class LineDrawer implements IShapeDrawer { /** * Draws the line shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawLine(data); } - /** Gets the number of sides for this shape */ + /** + * Gets the number of sides for this shape + * @returns The numeric value + */ getSidesCount(): number { return sides; } diff --git a/shapes/line/src/Utils.ts b/shapes/line/src/Utils.ts index 0e99d1bdea5..afe4d34737c 100644 --- a/shapes/line/src/Utils.ts +++ b/shapes/line/src/Utils.ts @@ -6,7 +6,7 @@ interface ILineData { /** * - * @param data - + * @param data - The data to handle */ export function drawLine(data: IShapeDrawData): void { const { context, particle, radius } = data, diff --git a/shapes/line/src/index.lazy.ts b/shapes/line/src/index.lazy.ts index d6292b9047e..5d5190b5610 100644 --- a/shapes/line/src/index.lazy.ts +++ b/shapes/line/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLineShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/line/src/index.ts b/shapes/line/src/index.ts index eb1d6fa9d50..963d6504d47 100644 --- a/shapes/line/src/index.ts +++ b/shapes/line/src/index.ts @@ -4,7 +4,7 @@ import { LineDrawer } from "./LineDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLineShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/matrix/CHANGELOG.md b/shapes/matrix/CHANGELOG.md index 8bff2fb94e9..8e0666831fb 100644 --- a/shapes/matrix/CHANGELOG.md +++ b/shapes/matrix/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-matrix diff --git a/shapes/matrix/package.dist.json b/shapes/matrix/package.dist.json index aca659890b8..0ca6acce5ef 100644 --- a/shapes/matrix/package.dist.json +++ b/shapes/matrix/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-matrix", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles matrix shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/matrix/package.json b/shapes/matrix/package.json index 0d497ccceaf..992c55489eb 100644 --- a/shapes/matrix/package.json +++ b/shapes/matrix/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-matrix", - "version": "4.1.3", - "description": "tsParticles matrix shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as matrix-style katakana characters", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "matrix" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/matrix/src/MatrixDrawer.ts b/shapes/matrix/src/MatrixDrawer.ts index 982ebb24557..c56c2ae138b 100644 --- a/shapes/matrix/src/MatrixDrawer.ts +++ b/shapes/matrix/src/MatrixDrawer.ts @@ -6,7 +6,7 @@ import { drawMatrix } from "./Utils.js"; export class MatrixDrawer implements IShapeDrawer { /** * Draws the matrix character shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawMatrix(data); diff --git a/shapes/matrix/src/Utils.ts b/shapes/matrix/src/Utils.ts index a84f5b3a4c6..a4752f579d8 100644 --- a/shapes/matrix/src/Utils.ts +++ b/shapes/matrix/src/Utils.ts @@ -14,7 +14,7 @@ import type { MatrixParticle } from "./MatrixParticle.js"; */ export const matrixChars: string[] = [ // Katakana (base) - "\u30A2", // ア + "ア", // ア "\u30A4", // イ "\u30A6", // ウ "\u30A8", // エ @@ -219,8 +219,8 @@ function randomChar(): string { } /** - * @param minInterval - - * @param maxInterval - + * @param minInterval - The minInterval + * @param maxInterval - The maxInterval * @returns a random interval between MIN_INTERVAL and MAX_INTERVAL */ function randomInterval(minInterval: number, maxInterval: number): number { @@ -228,9 +228,9 @@ function randomInterval(minInterval: number, maxInterval: number): number { } /** - * @param particle - - * @param minInterval - - * @param maxInterval - + * @param particle - The particle to process + * @param minInterval - The minInterval + * @param maxInterval - The maxInterval * @returns the state for the given particle */ function getState(particle: Particle, minInterval: number, maxInterval: number): MatrixCharState { diff --git a/shapes/matrix/src/index.lazy.ts b/shapes/matrix/src/index.lazy.ts index 83f502f3cc2..42fa76a9463 100644 --- a/shapes/matrix/src/index.lazy.ts +++ b/shapes/matrix/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/matrix/src/index.ts b/shapes/matrix/src/index.ts index 57a432b275d..b4a5435ea4f 100644 --- a/shapes/matrix/src/index.ts +++ b/shapes/matrix/src/index.ts @@ -4,7 +4,7 @@ import { MatrixDrawer } from "./MatrixDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadMatrixShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/path/CHANGELOG.md b/shapes/path/CHANGELOG.md index d1268816edd..8743d99e069 100644 --- a/shapes/path/CHANGELOG.md +++ b/shapes/path/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-path diff --git a/shapes/path/package.dist.json b/shapes/path/package.dist.json index b919ff9df6a..c6946402f28 100644 --- a/shapes/path/package.dist.json +++ b/shapes/path/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-path", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles path shape", "homepage": "https://particles.js.org", "repository": { @@ -106,13 +106,13 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/path-utils": "4.1.3" + "@tsparticles/path-utils": "4.2.0" } } diff --git a/shapes/path/package.json b/shapes/path/package.json index 1e6d113c9b1..5ebe22eade6 100644 --- a/shapes/path/package.json +++ b/shapes/path/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-path", - "version": "4.1.3", - "description": "tsParticles path shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles that follow SVG path data", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "path" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/path-utils": "workspace:*" }, diff --git a/shapes/path/src/PathDrawer.ts b/shapes/path/src/PathDrawer.ts index 985e10c6a3f..786e1f6f74e 100644 --- a/shapes/path/src/PathDrawer.ts +++ b/shapes/path/src/PathDrawer.ts @@ -7,7 +7,7 @@ import { drawPath } from "@tsparticles/path-utils"; export class PathDrawer implements IShapeDrawer { /** * Draws the SVG path shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const { context, particle, radius } = data; @@ -21,8 +21,8 @@ export class PathDrawer implements IShapeDrawer { /** * Initializes the path data for the particle - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: PathParticle): void { const shape = particle.shapeData as IShapePathData | undefined; diff --git a/shapes/path/src/index.lazy.ts b/shapes/path/src/index.lazy.ts index 33371c0f0a4..c11ca8fca70 100644 --- a/shapes/path/src/index.lazy.ts +++ b/shapes/path/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPathShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/path/src/index.ts b/shapes/path/src/index.ts index c078a58b204..61a868cc10a 100644 --- a/shapes/path/src/index.ts +++ b/shapes/path/src/index.ts @@ -4,7 +4,7 @@ import { PathDrawer } from "./PathDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPathShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/polygon/CHANGELOG.md b/shapes/polygon/CHANGELOG.md index 410bac6284d..6147b4aa1d8 100644 --- a/shapes/polygon/CHANGELOG.md +++ b/shapes/polygon/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-polygon diff --git a/shapes/polygon/package.dist.json b/shapes/polygon/package.dist.json index 03a145d3ba5..10c1a3638cb 100644 --- a/shapes/polygon/package.dist.json +++ b/shapes/polygon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-polygon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles polygon shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/polygon/package.json b/shapes/polygon/package.json index 416a88cd3b0..08f95d0b26e 100644 --- a/shapes/polygon/package.json +++ b/shapes/polygon/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-polygon", - "version": "4.1.3", - "description": "tsParticles polygon shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as regular polygon shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "polygon" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/polygon/src/PolygonDrawer.ts b/shapes/polygon/src/PolygonDrawer.ts index 27ec39edddc..ba181b22db9 100644 --- a/shapes/polygon/src/PolygonDrawer.ts +++ b/shapes/polygon/src/PolygonDrawer.ts @@ -9,8 +9,9 @@ const yFactor = 2.66, export class PolygonDrawer extends PolygonDrawerBase { /** * Gets the side data for the polygon - * @param particle - * @param radius + * @param particle - The particle to process + * @param radius - The radius + * @returns The result */ getSidesData(particle: Particle, radius: number): ISide { const { sides } = particle; diff --git a/shapes/polygon/src/PolygonDrawerBase.ts b/shapes/polygon/src/PolygonDrawerBase.ts index 558a607ccb7..510f60f1d46 100644 --- a/shapes/polygon/src/PolygonDrawerBase.ts +++ b/shapes/polygon/src/PolygonDrawerBase.ts @@ -9,7 +9,7 @@ const defaultSides = 5; export abstract class PolygonDrawerBase implements IShapeDrawer { /** * Draws the polygon shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const { particle, radius } = data, @@ -20,7 +20,8 @@ export abstract class PolygonDrawerBase implements IShapeDrawer { /** * Gets the number of sides for the polygon - * @param particle + * @param particle - The particle to process + * @returns The numeric value */ getSidesCount(particle: Particle): number { const polygon = particle.shapeData as IPolygonShape | undefined; @@ -28,6 +29,9 @@ export abstract class PolygonDrawerBase implements IShapeDrawer { return Math.round(getRangeValue(polygon?.sides ?? defaultSides)); } - /** Gets the side data for computing polygon vertices */ + /** + * Gets the side data for computing polygon vertices + * @returns The result + */ abstract getSidesData(particle: Particle, radius: number): ISide; } diff --git a/shapes/polygon/src/TriangleDrawer.ts b/shapes/polygon/src/TriangleDrawer.ts index 0c5cf25326f..c5402877806 100644 --- a/shapes/polygon/src/TriangleDrawer.ts +++ b/shapes/polygon/src/TriangleDrawer.ts @@ -8,15 +8,19 @@ const sides = 3, /** Triangle shape drawer plugin */ export class TriangleDrawer extends PolygonDrawerBase { - /** Gets the sides count for a triangle */ + /** + * Gets the sides count for a triangle + * @returns The numeric value + */ override getSidesCount(): number { return sides; } /** * Gets the side data for the triangle - * @param _particle - * @param radius + * @param _particle - The particle to process + * @param radius - The radius + * @returns The result */ getSidesData(_particle: Particle, radius: number): ISide { return { diff --git a/shapes/polygon/src/index.lazy.ts b/shapes/polygon/src/index.lazy.ts index 230a0f8dcb6..4761234ef2f 100644 --- a/shapes/polygon/src/index.lazy.ts +++ b/shapes/polygon/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGenericPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -16,7 +16,7 @@ export async function loadGenericPolygonShape(engine: Engine): Promise { } /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTriangleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -29,7 +29,7 @@ export async function loadTriangleShape(engine: Engine): Promise { } /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/polygon/src/index.ts b/shapes/polygon/src/index.ts index 7b302f2d5d9..e0d4a0d47b9 100644 --- a/shapes/polygon/src/index.ts +++ b/shapes/polygon/src/index.ts @@ -5,7 +5,7 @@ import { TriangleDrawer } from "./TriangleDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGenericPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -16,7 +16,7 @@ export async function loadGenericPolygonShape(engine: Engine): Promise { } /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTriangleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); @@ -27,7 +27,7 @@ export async function loadTriangleShape(engine: Engine): Promise { } /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/ribbon/CHANGELOG.md b/shapes/ribbon/CHANGELOG.md index 3478b772a41..bdcfde6a0ce 100644 --- a/shapes/ribbon/CHANGELOG.md +++ b/shapes/ribbon/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) ### Bug Fixes diff --git a/shapes/ribbon/package.dist.json b/shapes/ribbon/package.dist.json index 6760deb78b3..e46ee290813 100644 --- a/shapes/ribbon/package.dist.json +++ b/shapes/ribbon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-ribbon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ribbon shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/ribbon/package.json b/shapes/ribbon/package.json index 6fcb6beae87..bcd218e71eb 100644 --- a/shapes/ribbon/package.json +++ b/shapes/ribbon/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-ribbon", - "version": "4.1.3", - "description": "tsParticles ribbon shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as ribbon or wavy strip shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "ribbon" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/ribbon/src/RibbonDrawer.ts b/shapes/ribbon/src/RibbonDrawer.ts index 394566e5141..7d3ea9534fe 100644 --- a/shapes/ribbon/src/RibbonDrawer.ts +++ b/shapes/ribbon/src/RibbonDrawer.ts @@ -19,9 +19,9 @@ const defaultSides = 12, /** * - * @param particle - - * @param width - - * @param height - + * @param particle - The particle to process + * @param width - The width + * @param height - The height */ function prepareRibbonParticle(particle: RibbonParticle, width: number, height: number): void { setRibbonBounds(particle, width, height); @@ -33,7 +33,7 @@ function prepareRibbonParticle(particle: RibbonParticle, width: number, height: /** * - * @param particle - + * @param particle - The particle to process * @returns the expected ribbon points count from shape data */ function getRibbonCount(particle: RibbonParticle): number { @@ -42,12 +42,12 @@ function getRibbonCount(particle: RibbonParticle): number { /** * - * @param data - - * @param minX - - * @param maxX - - * @param minY - - * @param maxY - - * @param margin - + * @param data - The data to handle + * @param minX - The minX + * @param maxX - The maxX + * @param minY - The minY + * @param maxY - The maxY + * @param margin - The margin * @returns true if the particle is inside the canvas, false otherwise */ function isInsideByDirection( @@ -89,7 +89,7 @@ export class RibbonDrawer implements IShapeDrawer { /** * Draws the ribbon shape - * @param data - + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const bounds = this.#container.canvas.size; @@ -106,7 +106,7 @@ export class RibbonDrawer implements IShapeDrawer { /** * Gets the number of sides for this shape - * @param particle - + * @param particle - The particle to process * @returns the sides count */ getSidesCount(particle: RibbonParticle): number { @@ -182,7 +182,7 @@ export class RibbonDrawer implements IShapeDrawer { /** * Resets ribbon state when particle respawns - * @param particle - + * @param particle - The particle to process */ loadShape(particle: RibbonParticle): void { if (!particle.shapeData) { @@ -198,14 +198,14 @@ export class RibbonDrawer implements IShapeDrawer { /** * Initializes ribbon-specific particle properties - * @param container - - * @param particle - + * @param container - The container to handle + * @param particle - The particle to process */ /** * Clears ribbon state when particle is destroyed, so it gets properly recreated when recycled from the pool. * Without this, a recycled particle would keep stale ribbonPoints[] positions (from when it was destroyed * far off-screen), causing isInsideCanvas to immediately flag it as outside again. - * @param particle - + * @param particle - The particle to process */ particleDestroy(particle: RibbonParticle): void { delete particle.ribbonPoints; diff --git a/shapes/ribbon/src/Utils.ts b/shapes/ribbon/src/Utils.ts index 313dfa7b235..7e5deaabbcd 100644 --- a/shapes/ribbon/src/Utils.ts +++ b/shapes/ribbon/src/Utils.ts @@ -44,9 +44,9 @@ const defaultParticleDist = 8, /** * - * @param particle - - * @param width - - * @param height - + * @param particle - The particle to process + * @param width - The width + * @param height - The height */ export function setRibbonBounds(particle: RibbonParticle, width: number, height: number): void { particle.ribbonBounds = Vector.create(width, height); @@ -54,7 +54,7 @@ export function setRibbonBounds(particle: RibbonParticle, width: number, height: /** * - * @param particle - + * @param particle - The particle to process * @returns the mass */ function getMass(particle: RibbonParticle): number { @@ -63,7 +63,7 @@ function getMass(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the drag */ function getDrag(particle: RibbonParticle): number { @@ -72,7 +72,7 @@ function getDrag(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the velocity inherit factor */ function getVelocityInherit(particle: RibbonParticle): number { @@ -81,7 +81,7 @@ function getVelocityInherit(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the distance */ function getParticleDist(particle: RibbonParticle): number { @@ -90,7 +90,7 @@ function getParticleDist(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the oscillation speed */ function getOscillationSpeed(particle: RibbonParticle): number { @@ -99,7 +99,7 @@ function getOscillationSpeed(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the oscillation distance */ function getOscillationDistance(particle: RibbonParticle): number { @@ -108,7 +108,7 @@ function getOscillationDistance(particle: RibbonParticle): number { /** * - * @param particle - + * @param particle - The particle to process * @returns the ribbon head */ function getHead(particle: RibbonParticle): Vector { @@ -119,7 +119,7 @@ function getHead(particle: RibbonParticle): Vector { /** * - * @param particle - + * @param particle - The particle to process * @returns the previous ribbon head */ function getPreviousHead(particle: RibbonParticle): Vector { @@ -130,7 +130,7 @@ function getPreviousHead(particle: RibbonParticle): Vector { /** * - * @param particle - + * @param particle - The particle to process */ export function createRibbonState(particle: RibbonParticle): void { const shapeData = particle.shapeData, @@ -185,7 +185,7 @@ export function createRibbonState(particle: RibbonParticle): void { /** * - * @param particle - + * @param particle - The particle to process */ function resetRibbonState(particle: RibbonParticle): void { const points = particle.ribbonPoints, @@ -226,9 +226,9 @@ function resetRibbonState(particle: RibbonParticle): void { /** * - * @param particle - - * @param index - - * @param force - + * @param particle - The particle to process + * @param index - The index + * @param force - The force */ function addPointForce(particle: RibbonParticle, index: number, force: Vector): void { const point = particle.ribbonPoints?.[index]; @@ -242,9 +242,9 @@ function addPointForce(particle: RibbonParticle, index: number, force: Vector): /** * - * @param particle - - * @param index - - * @param dt - + * @param particle - The particle to process + * @param index - The index + * @param dt - The dt */ function integratePoint(particle: RibbonParticle, index: number, dt: number): void { const point = particle.ribbonPoints?.[index]; @@ -271,7 +271,7 @@ function integratePoint(particle: RibbonParticle, index: number, dt: number): vo /** * - * @param data - + * @param data - The data to handle */ export function updateRibbon(data: IShapeDrawData): void { const { particle, delta } = data, @@ -399,12 +399,12 @@ export function updateRibbon(data: IShapeDrawData): void { /** * - * @param x1 - - * @param y1 - - * @param x2 - - * @param y2 - - * @param x3 - - * @param y3 - + * @param x1 - The x1 + * @param y1 - The y1 + * @param x2 - The x2 + * @param y2 - The y2 + * @param x3 - The x3 + * @param y3 - The y3 * @returns the segment side */ function getSegmentSide(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): number { @@ -413,8 +413,8 @@ function getSegmentSide(x1: number, y1: number, x2: number, y2: number, x3: numb /** * - * @param a - - * @param b - + * @param a - The alpha component + * @param b - The blue component * @returns the midpoint */ function getMidpoint(a: Vector, b: Vector): Vector { @@ -423,8 +423,8 @@ function getMidpoint(a: Vector, b: Vector): Vector { /** * - * @param context - - * @param drawData - + * @param context - The rendering context + * @param drawData - The drawData */ function drawPolygonSegment(context: OffscreenCanvasRenderingContext2D, drawData: IRibbonDrawData): void { context.beginPath(); @@ -449,8 +449,8 @@ function drawPolygonSegment(context: OffscreenCanvasRenderingContext2D, drawData /** * - * @param data - - * @param hdr - + * @param data - The data to handle + * @param hdr - The hdr */ export function drawRibbon(data: IShapeDrawData, hdr: boolean): void { const { context, particle, radius } = data, diff --git a/shapes/ribbon/src/index.lazy.ts b/shapes/ribbon/src/index.lazy.ts index 1da541d289f..c75b83f99fb 100644 --- a/shapes/ribbon/src/index.lazy.ts +++ b/shapes/ribbon/src/index.lazy.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRibbonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/ribbon/src/index.ts b/shapes/ribbon/src/index.ts index b2e1f235966..64e72a39985 100644 --- a/shapes/ribbon/src/index.ts +++ b/shapes/ribbon/src/index.ts @@ -4,7 +4,7 @@ import { RibbonDrawer } from "./RibbonDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRibbonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/rounded-polygon/CHANGELOG.md b/shapes/rounded-polygon/CHANGELOG.md index 13908d31b90..fd4fac1adfe 100644 --- a/shapes/rounded-polygon/CHANGELOG.md +++ b/shapes/rounded-polygon/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-rounded-polygon diff --git a/shapes/rounded-polygon/package.dist.json b/shapes/rounded-polygon/package.dist.json index e63a3531089..463f6c15fea 100644 --- a/shapes/rounded-polygon/package.dist.json +++ b/shapes/rounded-polygon/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-rounded-polygon", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rounded polygon shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/rounded-polygon/package.json b/shapes/rounded-polygon/package.json index a87f1739181..cfb97a43a92 100644 --- a/shapes/rounded-polygon/package.json +++ b/shapes/rounded-polygon/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-rounded-polygon", - "version": "4.1.3", - "description": "tsParticles rounded polygon shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as rounded polygon shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "rounded-polygon" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/rounded-polygon/src/RoundedPolygonDrawer.ts b/shapes/rounded-polygon/src/RoundedPolygonDrawer.ts index 70e94bca7c1..b103c04b435 100644 --- a/shapes/rounded-polygon/src/RoundedPolygonDrawer.ts +++ b/shapes/rounded-polygon/src/RoundedPolygonDrawer.ts @@ -9,7 +9,7 @@ const defaultSides = 5, export class RoundedPolygonDrawer implements IShapeDrawer { /** * Draws the rounded polygon shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const { context, particle, radius } = data; @@ -19,7 +19,8 @@ export class RoundedPolygonDrawer implements IShapeDrawer { /** * Gets the number of sides - * @param particle + * @param particle - The particle to process + * @returns The numeric value */ getSidesCount(particle: RoundedParticle): number { const roundedPolygon = particle.shapeData; @@ -29,8 +30,8 @@ export class RoundedPolygonDrawer implements IShapeDrawer { /** * Initializes the rounded polygon particle properties - * @param container - * @param particle + * @param container - The container to handle + * @param particle - The particle to process */ particleInit(container: Container, particle: RoundedParticle): void { const shapeData = particle.shapeData; diff --git a/shapes/rounded-polygon/src/Utils.ts b/shapes/rounded-polygon/src/Utils.ts index 422484ee4d2..3588d2a1b9b 100644 --- a/shapes/rounded-polygon/src/Utils.ts +++ b/shapes/rounded-polygon/src/Utils.ts @@ -3,9 +3,9 @@ import { type ICoordinates, doublePI, half } from "@tsparticles/engine"; const defaultRotation = 0; /** - * @param sides - - * @param radius - - * @param rot - + * @param sides - The sides + * @param radius - The radius + * @param rot - The rot * @returns polygon coordinates */ export function polygon(sides: number, radius: number, rot = defaultRotation): ICoordinates[] { @@ -20,9 +20,9 @@ export function polygon(sides: number, radius: number, rot = defaultRotation): I } /** - * @param context - - * @param path - - * @param radius - + * @param context - The rendering context + * @param path - The path + * @param radius - The radius */ export function roundedPath(context: OffscreenCanvasRenderingContext2D, path: ICoordinates[], radius: number): void { const index1 = 0, diff --git a/shapes/rounded-polygon/src/index.lazy.ts b/shapes/rounded-polygon/src/index.lazy.ts index 771206bfb86..7a4c0d42a0d 100644 --- a/shapes/rounded-polygon/src/index.lazy.ts +++ b/shapes/rounded-polygon/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRoundedPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/rounded-polygon/src/index.ts b/shapes/rounded-polygon/src/index.ts index 0e9638fea61..20ed3e43461 100644 --- a/shapes/rounded-polygon/src/index.ts +++ b/shapes/rounded-polygon/src/index.ts @@ -4,7 +4,7 @@ import { RoundedPolygonDrawer } from "./RoundedPolygonDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRoundedPolygonShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/rounded-rect/CHANGELOG.md b/shapes/rounded-rect/CHANGELOG.md index 015f07eaadb..0f28747fc3e 100644 --- a/shapes/rounded-rect/CHANGELOG.md +++ b/shapes/rounded-rect/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-rounded-rect diff --git a/shapes/rounded-rect/package.dist.json b/shapes/rounded-rect/package.dist.json index a2b819cfc07..79412714281 100644 --- a/shapes/rounded-rect/package.dist.json +++ b/shapes/rounded-rect/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-rounded-rect", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles rounded rect shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/rounded-rect/package.json b/shapes/rounded-rect/package.json index b98b0cdc889..97c32db4ebe 100644 --- a/shapes/rounded-rect/package.json +++ b/shapes/rounded-rect/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-rounded-rect", - "version": "4.1.3", - "description": "tsParticles rounded rect shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as rounded rectangle shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "rounded-rect" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/rounded-rect/src/RoundedRectDrawer.ts b/shapes/rounded-rect/src/RoundedRectDrawer.ts index 14d939d2a3c..4c8080e9370 100644 --- a/shapes/rounded-rect/src/RoundedRectDrawer.ts +++ b/shapes/rounded-rect/src/RoundedRectDrawer.ts @@ -8,7 +8,7 @@ const defaultRadius = 5; export class RoundedRectDrawer implements IShapeDrawer { /** * Draws the rounded rectangle shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { const { context, particle, radius } = data, @@ -25,8 +25,8 @@ export class RoundedRectDrawer implements IShapeDrawer { /** * Initializes the rounded rectangle particle properties - * @param container - * @param particle + * @param container - The container to handle + * @param particle - The particle to process */ particleInit(container: Container, particle: RoundedParticle): void { const shapeData = particle.shapeData; diff --git a/shapes/rounded-rect/src/Utils.ts b/shapes/rounded-rect/src/Utils.ts index 156e3ebd20f..7a925fd83e5 100644 --- a/shapes/rounded-rect/src/Utils.ts +++ b/shapes/rounded-rect/src/Utils.ts @@ -3,10 +3,10 @@ import type { RectInfo } from "./RectInfo.js"; /** * - * @param ctx - - * @param fixedRadius - - * @param fixedDiameter - - * @param borderRadius - + * @param ctx - The rendering context + * @param fixedRadius - The fixedRadius + * @param fixedDiameter - The fixedDiameter + * @param borderRadius - The borderRadius */ export function drawRoundedRect( ctx: OffscreenCanvasRenderingContext2D, diff --git a/shapes/rounded-rect/src/index.lazy.ts b/shapes/rounded-rect/src/index.lazy.ts index dd06fbde690..675711d0278 100644 --- a/shapes/rounded-rect/src/index.lazy.ts +++ b/shapes/rounded-rect/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRoundedRectShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/rounded-rect/src/index.ts b/shapes/rounded-rect/src/index.ts index 92c5d072593..f59452bd958 100644 --- a/shapes/rounded-rect/src/index.ts +++ b/shapes/rounded-rect/src/index.ts @@ -4,7 +4,7 @@ import { RoundedRectDrawer } from "./RoundedRectDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRoundedRectShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/spiral/CHANGELOG.md b/shapes/spiral/CHANGELOG.md index 54e89b7ec2d..7943628e51f 100644 --- a/shapes/spiral/CHANGELOG.md +++ b/shapes/spiral/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-spiral diff --git a/shapes/spiral/package.dist.json b/shapes/spiral/package.dist.json index 92e4d0f4ac3..9bf4d7ee807 100644 --- a/shapes/spiral/package.dist.json +++ b/shapes/spiral/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-spiral", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles spiral shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/spiral/package.json b/shapes/spiral/package.json index d165b0a7e81..eacd49b2444 100644 --- a/shapes/spiral/package.json +++ b/shapes/spiral/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-spiral", - "version": "4.1.3", - "description": "tsParticles spiral shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as spiral shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "spiral" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/spiral/src/SpiralDrawer.ts b/shapes/spiral/src/SpiralDrawer.ts index 551899ff3b2..968583f8f23 100644 --- a/shapes/spiral/src/SpiralDrawer.ts +++ b/shapes/spiral/src/SpiralDrawer.ts @@ -10,7 +10,7 @@ const defaultInnerRadius = 1, export class SpiralDrawer implements IShapeDrawer { /** * Draws the spiral shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawSpiral(data); @@ -18,8 +18,8 @@ export class SpiralDrawer implements IShapeDrawer { /** * Initializes spiral-specific particle properties - * @param container - * @param particle + * @param container - The container to handle + * @param particle - The particle to process */ particleInit(container: Container, particle: SpiralParticle): void { const pixelRatio = container.retina.pixelRatio, diff --git a/shapes/spiral/src/Utils.ts b/shapes/spiral/src/Utils.ts index c28f10fe829..df2a1b72cb6 100644 --- a/shapes/spiral/src/Utils.ts +++ b/shapes/spiral/src/Utils.ts @@ -3,7 +3,7 @@ import type { SpiralParticle } from "./SpiralParticle.js"; /** * - * @param data - + * @param data - The data to handle */ export function drawSpiral(data: IShapeDrawData): void { const { context, particle, radius } = data; diff --git a/shapes/spiral/src/index.lazy.ts b/shapes/spiral/src/index.lazy.ts index 06562518cee..e2e98d6069f 100644 --- a/shapes/spiral/src/index.lazy.ts +++ b/shapes/spiral/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpiralShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/spiral/src/index.ts b/shapes/spiral/src/index.ts index 94f300d3fd5..9ccb16b8ce1 100644 --- a/shapes/spiral/src/index.ts +++ b/shapes/spiral/src/index.ts @@ -4,7 +4,7 @@ import { SpiralDrawer } from "./SpiralDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSpiralShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/square/CHANGELOG.md b/shapes/square/CHANGELOG.md index d88fdd6dab0..e433d30ae3e 100644 --- a/shapes/square/CHANGELOG.md +++ b/shapes/square/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-square diff --git a/shapes/square/package.dist.json b/shapes/square/package.dist.json index 05820fbaaff..249010c2e26 100644 --- a/shapes/square/package.dist.json +++ b/shapes/square/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-square", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles square shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/square/package.json b/shapes/square/package.json index 991122dc001..917ac15b0a8 100644 --- a/shapes/square/package.json +++ b/shapes/square/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-square", - "version": "4.1.3", - "description": "tsParticles square shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as square shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "square" ], "publishConfig": { "access": "public", @@ -80,7 +73,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "type": "module" diff --git a/shapes/square/src/SquareDrawer.ts b/shapes/square/src/SquareDrawer.ts index d39dbfec3a1..02d78235945 100644 --- a/shapes/square/src/SquareDrawer.ts +++ b/shapes/square/src/SquareDrawer.ts @@ -7,13 +7,16 @@ const sides = 4; export class SquareDrawer implements IShapeDrawer { /** * Draws the square shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawSquare(data); } - /** Gets the number of sides for this shape */ + /** + * Gets the number of sides for this shape + * @returns The numeric value + */ getSidesCount(): number { return sides; } diff --git a/shapes/square/src/Utils.ts b/shapes/square/src/Utils.ts index 463ee37571c..5c696db29c5 100644 --- a/shapes/square/src/Utils.ts +++ b/shapes/square/src/Utils.ts @@ -2,7 +2,7 @@ import { type IShapeDrawData, double } from "@tsparticles/engine"; /** * - * @param data - + * @param data - The data to handle */ export function drawSquare(data: IShapeDrawData): void { const { context, radius } = data, diff --git a/shapes/square/src/index.lazy.ts b/shapes/square/src/index.lazy.ts index 37f4a88bbbe..9ea727613aa 100644 --- a/shapes/square/src/index.lazy.ts +++ b/shapes/square/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSquareShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/square/src/index.ts b/shapes/square/src/index.ts index c40bb29d2c1..508f2b1c06f 100644 --- a/shapes/square/src/index.ts +++ b/shapes/square/src/index.ts @@ -4,7 +4,7 @@ import { SquareDrawer } from "./SquareDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSquareShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/squircle/CHANGELOG.md b/shapes/squircle/CHANGELOG.md index 20279f5c230..63b900751b1 100644 --- a/shapes/squircle/CHANGELOG.md +++ b/shapes/squircle/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-squircle diff --git a/shapes/squircle/package.dist.json b/shapes/squircle/package.dist.json index cf4af806307..5e63a6e2fd4 100644 --- a/shapes/squircle/package.dist.json +++ b/shapes/squircle/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-squircle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles squircle shape", "homepage": "https://particles.js.org", "repository": { @@ -106,7 +106,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/squircle/package.json b/shapes/squircle/package.json index de75b606ed3..4c3739a2d35 100644 --- a/shapes/squircle/package.json +++ b/shapes/squircle/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-squircle", - "version": "4.1.3", - "description": "tsParticles squircle shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as squircle shapes (square-circle hybrid)", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,55 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-shape" + "typescript", + "javascript", + "tsparticles-shape", + "squircle" ], "author": "Matteo Bruni ", "license": "MIT", @@ -116,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/squircle/src/SquircleDrawer.ts b/shapes/squircle/src/SquircleDrawer.ts index 2f14b3e5751..3aecd96feab 100644 --- a/shapes/squircle/src/SquircleDrawer.ts +++ b/shapes/squircle/src/SquircleDrawer.ts @@ -6,7 +6,7 @@ import type { SquircleParticle } from "./SquircleParticle.js"; export class SquircleDrawer implements IShapeDrawer { /** * Draws the squircle shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawSquircle(data); @@ -14,8 +14,8 @@ export class SquircleDrawer implements IShapeDrawer { /** * Initializes squircle-specific particle properties - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: SquircleParticle): void { const shapeData = particle.shapeData; diff --git a/shapes/squircle/src/Utils.ts b/shapes/squircle/src/Utils.ts index bbe463c39f4..e89eaf4e424 100644 --- a/shapes/squircle/src/Utils.ts +++ b/shapes/squircle/src/Utils.ts @@ -5,7 +5,7 @@ export const defaultExponent = 4, defaultSteps = 64; /** - * @param v - + * @param v - The v * @returns - */ function sign(v: number): number { @@ -13,7 +13,7 @@ function sign(v: number): number { } /** - * @param data - + * @param data - The data to handle */ export function drawSquircle(data: IShapeDrawData): void { const { context, particle, radius } = data; diff --git a/shapes/squircle/src/index.lazy.ts b/shapes/squircle/src/index.lazy.ts index d250f06e8dc..7432f88315d 100644 --- a/shapes/squircle/src/index.lazy.ts +++ b/shapes/squircle/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSquircleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/squircle/src/index.ts b/shapes/squircle/src/index.ts index 2a853c9a0d0..07256b16850 100644 --- a/shapes/squircle/src/index.ts +++ b/shapes/squircle/src/index.ts @@ -4,7 +4,7 @@ import { SquircleDrawer } from "./SquircleDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSquircleShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/star/CHANGELOG.md b/shapes/star/CHANGELOG.md index a82fc0306c1..79e1d1ef268 100644 --- a/shapes/star/CHANGELOG.md +++ b/shapes/star/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-star diff --git a/shapes/star/package.dist.json b/shapes/star/package.dist.json index 1a0328c1084..ef5885b3f06 100644 --- a/shapes/star/package.dist.json +++ b/shapes/star/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-star", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles star shape", "homepage": "https://particles.js.org", "repository": { @@ -65,7 +65,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/shapes/star/package.json b/shapes/star/package.json index b6721925f37..e731e422c12 100644 --- a/shapes/star/package.json +++ b/shapes/star/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-star", - "version": "4.1.3", - "description": "tsParticles star shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as star shapes", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "star" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/star/src/StarDrawer.ts b/shapes/star/src/StarDrawer.ts index efcb907b0e8..fe9e363db04 100644 --- a/shapes/star/src/StarDrawer.ts +++ b/shapes/star/src/StarDrawer.ts @@ -16,7 +16,7 @@ const defaultInset = 2, export class StarDrawer implements IShapeDrawer { /** * Draws the star shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawStar(data); @@ -24,7 +24,8 @@ export class StarDrawer implements IShapeDrawer { /** * Gets the number of sides for this shape - * @param particle + * @param particle - The particle to process + * @returns The numeric value */ getSidesCount(particle: Particle): number { const star = particle.shapeData as IStarShape | undefined; @@ -34,8 +35,8 @@ export class StarDrawer implements IShapeDrawer { /** * Initializes the star inset for the particle - * @param _container - * @param particle + * @param _container - The container to handle + * @param particle - The particle to process */ particleInit(_container: Container, particle: StarParticle): void { const star = particle.shapeData as IStarShape | undefined; diff --git a/shapes/star/src/Utils.ts b/shapes/star/src/Utils.ts index aa583a1d2fa..bce84a14a5e 100644 --- a/shapes/star/src/Utils.ts +++ b/shapes/star/src/Utils.ts @@ -6,7 +6,7 @@ const defaultInset = 2, /** * - * @param data - + * @param data - The data to handle */ export function drawStar(data: IShapeDrawData): void { const { context, particle, radius } = data, diff --git a/shapes/star/src/index.lazy.ts b/shapes/star/src/index.lazy.ts index 4555db020a4..23aa9335723 100644 --- a/shapes/star/src/index.lazy.ts +++ b/shapes/star/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadStarShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/star/src/index.ts b/shapes/star/src/index.ts index 38a98b5841e..5005a082c40 100644 --- a/shapes/star/src/index.ts +++ b/shapes/star/src/index.ts @@ -4,7 +4,7 @@ import { StarDrawer } from "./StarDrawer.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadStarShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/text/CHANGELOG.md b/shapes/text/CHANGELOG.md index b3c1e75a637..b5b31b21464 100644 --- a/shapes/text/CHANGELOG.md +++ b/shapes/text/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/shape-text diff --git a/shapes/text/package.dist.json b/shapes/text/package.dist.json index b569ad21814..47c6b293502 100644 --- a/shapes/text/package.dist.json +++ b/shapes/text/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/shape-text", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles text shape", "homepage": "https://particles.js.org", "repository": { @@ -65,13 +65,13 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" }, "type": "module", "dependencies": { - "@tsparticles/canvas-utils": "4.1.3" + "@tsparticles/canvas-utils": "4.2.0" } } diff --git a/shapes/text/package.json b/shapes/text/package.json index 258512c1448..b5b13b8ded4 100644 --- a/shapes/text/package.json +++ b/shapes/text/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/shape-text", - "version": "4.1.3", - "description": "tsParticles text shape", + "version": "4.2.0", + "description": "tsParticles shape for rendering particles as custom text characters and strings", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -20,25 +20,18 @@ "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles.js", - "particles-ts", - "particles.ts", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", - "tsparticles-shape" + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "text" ], "author": "Matteo Bruni ", "license": "MIT", @@ -75,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/shapes/text/src/TextDrawer.ts b/shapes/text/src/TextDrawer.ts index f6d1bf12dda..257a64160d3 100644 --- a/shapes/text/src/TextDrawer.ts +++ b/shapes/text/src/TextDrawer.ts @@ -21,7 +21,7 @@ const firstIndex = 0, export class TextDrawer implements IShapeDrawer { /** * Draws the text shape - * @param data + * @param data - The data to handle */ draw(data: IShapeDrawData): void { drawText(data); @@ -29,7 +29,7 @@ export class TextDrawer implements IShapeDrawer { /** * Loads the required fonts - * @param container + * @param container - The container to handle */ async init(container: Container): Promise { const options = container.actualOptions; diff --git a/shapes/text/src/Utils.ts b/shapes/text/src/Utils.ts index 19019695797..9de72f50e3f 100644 --- a/shapes/text/src/Utils.ts +++ b/shapes/text/src/Utils.ts @@ -8,7 +8,7 @@ const firstIndex = 0, /** * - * @param data - + * @param data - The data to handle */ export function drawText(data: IShapeDrawData): void { const { context, particle, fill, stroke, radius, opacity } = data, @@ -55,12 +55,12 @@ export function drawText(data: IShapeDrawData): void { } /** - * @param context - - * @param line - - * @param size - - * @param index - - * @param fill - - * @param stroke - + * @param context - The rendering context + * @param line - The line + * @param size - The size + * @param index - The index + * @param fill - The fill flag + * @param stroke - The stroke flag */ function drawTextLine( context: OffscreenCanvasRenderingContext2D, diff --git a/shapes/text/src/index.lazy.ts b/shapes/text/src/index.lazy.ts index 6f6cf6c8884..5538f4ccc0f 100644 --- a/shapes/text/src/index.lazy.ts +++ b/shapes/text/src/index.lazy.ts @@ -4,7 +4,7 @@ import { validTypes } from "./Utils.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTextShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/shapes/text/src/index.ts b/shapes/text/src/index.ts index a60e4e49872..d56a8071a17 100644 --- a/shapes/text/src/index.ts +++ b/shapes/text/src/index.ts @@ -5,7 +5,7 @@ import { validTypes } from "./Utils.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTextShape(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/templates/404/CHANGELOG.md b/templates/404/CHANGELOG.md new file mode 100644 index 00000000000..36bfa9b7827 --- /dev/null +++ b/templates/404/CHANGELOG.md @@ -0,0 +1,8 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/template-404 diff --git a/templates/404/package.json b/templates/404/package.json new file mode 100644 index 00000000000..020b82dac57 --- /dev/null +++ b/templates/404/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-404", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/404/scripts/prebuild.js b/templates/404/scripts/prebuild.js new file mode 100644 index 00000000000..faf6bbe5615 --- /dev/null +++ b/templates/404/scripts/prebuild.js @@ -0,0 +1,64 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/404/template.json b/templates/404/template.json new file mode 100644 index 00000000000..bcb43ec2ea6 --- /dev/null +++ b/templates/404/template.json @@ -0,0 +1,12 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/404/template/vanilla/LICENSE b/templates/404/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/404/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/404/template/vanilla/README.md b/templates/404/template/vanilla/README.md new file mode 100644 index 00000000000..caad9ae87ae --- /dev/null +++ b/templates/404/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles 404 error page scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/404/template/vanilla/gitignore b/templates/404/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/404/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/404/template/vanilla/index.html b/templates/404/template/vanilla/index.html new file mode 100644 index 00000000000..6c7d72c1b84 --- /dev/null +++ b/templates/404/template/vanilla/index.html @@ -0,0 +1,18 @@ + + + + + + {{projectName}} - 404 Not Found + + +
+
+

404

+

The page you are looking for was moved, removed, renamed or might never have existed.

+ Go back home +
+
+ + + diff --git a/templates/404/template/vanilla/package.json b/templates/404/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/404/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/404/template/vanilla/src/main.ts b/templates/404/template/vanilla/src/main.ts new file mode 100644 index 00000000000..b574c73c816 --- /dev/null +++ b/templates/404/template/vanilla/src/main.ts @@ -0,0 +1,48 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; + +(async () => { + await loadSlim(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + particles: { + number: { value: 50 }, + color: { + value: [ + "#3998D0", "#2EB6AF", "#A9BD33", "#FEC73B", + "#F89930", "#F45623", "#D62E32", "#EB586E", "#9952CF" + ] + }, + shape: { type: "circle" }, + opacity: { + value: 0.8, + random: { enable: true, minimumValue: 0.4 } + }, + size: { + value: 400, + random: { enable: true, minimumValue: 200 }, + animation: { + enable: true, + speed: 100, + minimumValue: 200, + sync: false + } + }, + move: { + enable: true, + speed: 10, + direction: "top", + random: false, + straight: false, + outModes: { default: "out" } + } + }, + background: { color: "#ffffff" }, + detectRetina: true + } + }); +})(); diff --git a/templates/404/template/vanilla/src/style.css b/templates/404/template/vanilla/src/style.css new file mode 100644 index 00000000000..a5cf29aa31a --- /dev/null +++ b/templates/404/template/vanilla/src/style.css @@ -0,0 +1,63 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + min-height: 100vh; + position: relative; +} + +.container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + z-index: 10; + width: 100%; + padding: 1rem; +} + +.error-code { + font-family: "Share Tech Mono", monospace; + font-weight: 900; + text-transform: uppercase; + letter-spacing: 0.7em; + font-size: 2rem; + padding: 0 0 0 1.4em; + color: #000; + margin-bottom: 1rem; +} + +.message { + font-family: "Space Mono", monospace; + line-height: 1.8; + font-size: 0.9rem; + letter-spacing: 0.15rem; + color: #000; + max-width: 500px; + margin: 0 auto 2rem; + padding: 0 1rem; +} + +.home-link { + display: inline-block; + padding: 0.8em 2em; + border: 1px solid #000; + color: #000; + text-decoration: none; + font-family: "Space Mono", monospace; + text-transform: uppercase; + font-size: 0.75rem; + letter-spacing: 0.1rem; + transition: all 0.3s; + position: relative; +} + +.home-link:hover { + background: #000; + color: #fff; +} diff --git a/templates/404/template/vanilla/tsconfig.json b/templates/404/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/404/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/404/template/vanilla/vite.config.ts b/templates/404/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/404/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/confetti/CHANGELOG.md b/templates/confetti/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/confetti/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/confetti/LICENSE b/templates/confetti/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/confetti/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/confetti/README.md b/templates/confetti/README.md new file mode 100644 index 00000000000..18a7b330c5b --- /dev/null +++ b/templates/confetti/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-confetti + +tsParticles confetti project template. Use with `create-tsparticles-app` to scaffold a new confetti animation project. diff --git a/templates/confetti/package.json b/templates/confetti/package.json new file mode 100644 index 00000000000..34e33c2adfe --- /dev/null +++ b/templates/confetti/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-confetti", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/confetti/scripts/prebuild.js b/templates/confetti/scripts/prebuild.js new file mode 100644 index 00000000000..21f0241b3e2 --- /dev/null +++ b/templates/confetti/scripts/prebuild.js @@ -0,0 +1,64 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/confetti": require("../../../bundles/confetti/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/confetti/template.json b/templates/confetti/template.json new file mode 100644 index 00000000000..0ac68bce127 --- /dev/null +++ b/templates/confetti/template.json @@ -0,0 +1,12 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/confetti": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/confetti/template/angular-confetti/package.json b/templates/confetti/template/angular-confetti/package.json new file mode 100644 index 00000000000..d6b1a90efa3 --- /dev/null +++ b/templates/confetti/template/angular-confetti/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-confetti": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/confetti/template/angular-confetti/src/app/app.component.css b/templates/confetti/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..977464d48e1 --- /dev/null +++ b/templates/confetti/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,47 @@ +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/angular-confetti/src/app/app.component.html b/templates/confetti/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..1f2c5e8d2e4 --- /dev/null +++ b/templates/confetti/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,11 @@ +
+

Confetti!

+
+ + +
+
diff --git a/templates/confetti/template/angular-confetti/src/app/app.component.ts b/templates/confetti/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..10d9a2ba463 --- /dev/null +++ b/templates/confetti/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,44 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + mode = "cannon"; + + randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; + } + + fireConfetti(): void { + switch (this.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: this.randomInRange(55, 125), + spread: this.randomInRange(50, 70), + particleCount: this.randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } +} diff --git a/templates/confetti/template/angular-fireworks/package.json b/templates/confetti/template/angular-fireworks/package.json new file mode 100644 index 00000000000..0879fdc0ada --- /dev/null +++ b/templates/confetti/template/angular-fireworks/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-fireworks": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/confetti/template/angular-fireworks/src/app/app.component.css b/templates/confetti/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..977464d48e1 --- /dev/null +++ b/templates/confetti/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,47 @@ +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/angular-fireworks/src/app/app.component.html b/templates/confetti/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..1f2c5e8d2e4 --- /dev/null +++ b/templates/confetti/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,11 @@ +
+

Confetti!

+
+ + +
+
diff --git a/templates/confetti/template/angular-fireworks/src/app/app.component.ts b/templates/confetti/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..10d9a2ba463 --- /dev/null +++ b/templates/confetti/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,44 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + mode = "cannon"; + + randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; + } + + fireConfetti(): void { + switch (this.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: this.randomInRange(55, 125), + spread: this.randomInRange(50, 70), + particleCount: this.randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } +} diff --git a/templates/confetti/template/angular/package.json b/templates/confetti/template/angular/package.json new file mode 100644 index 00000000000..a2819666f2e --- /dev/null +++ b/templates/confetti/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/confetti": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/confetti/template/angular/src/app/app.component.css b/templates/confetti/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/angular/src/app/app.component.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/angular/src/app/app.component.html b/templates/confetti/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..1f2c5e8d2e4 --- /dev/null +++ b/templates/confetti/template/angular/src/app/app.component.html @@ -0,0 +1,11 @@ +
+

Confetti!

+
+ + +
+
diff --git a/templates/confetti/template/angular/src/app/app.component.ts b/templates/confetti/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..10d9a2ba463 --- /dev/null +++ b/templates/confetti/template/angular/src/app/app.component.ts @@ -0,0 +1,44 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + mode = "cannon"; + + randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; + } + + fireConfetti(): void { + switch (this.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: this.randomInRange(55, 125), + spread: this.randomInRange(50, 70), + particleCount: this.randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } +} diff --git a/templates/confetti/template/angular/src/app/app.module.ts b/templates/confetti/template/angular/src/app/app.module.ts new file mode 100644 index 00000000000..859ce7b748d --- /dev/null +++ b/templates/confetti/template/angular/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { FormsModule } from "@angular/forms"; +import { NgxParticlesModule } from "@tsparticles/angular"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, FormsModule, NgxParticlesModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/confetti/template/astro/package.json b/templates/confetti/template/astro/package.json new file mode 100644 index 00000000000..de6cfda7971 --- /dev/null +++ b/templates/confetti/template/astro/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "@astrojs/check": "^0.9.4", + "astro": "^5.7.10", + "@tsparticles/astro": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/confetti/template/astro/src/pages/index.astro b/templates/confetti/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..c1ef99972ca --- /dev/null +++ b/templates/confetti/template/astro/src/pages/index.astro @@ -0,0 +1,77 @@ +--- +import Particles, { initParticlesEngine } from "@tsparticles/astro"; + +const id = "tsparticles"; +--- + + + + + {{projectName}} + + + +
+

Confetti!

+
+ + +
+
+ + + + + diff --git a/templates/confetti/template/ember/app/templates/application.hbs b/templates/confetti/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..eac8e236fab --- /dev/null +++ b/templates/confetti/template/ember/app/templates/application.hbs @@ -0,0 +1,26 @@ +
+
+ +
+

Confetti!

+
+ + +
+
+ +{{outlet}} + + diff --git a/templates/confetti/template/ember/package.json b/templates/confetti/template/ember/package.json new file mode 100644 index 00000000000..b60db0de227 --- /dev/null +++ b/templates/confetti/template/ember/package.json @@ -0,0 +1,41 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve" + }, + "devDependencies": { + "@ember/optional-features": "^3.0.0", + "@glimmer/component": "^2.1.1", + "@glimmer/tracking": "^1.1.2", + "broccoli-asset-rev": "^3.0.0", + "ember-auto-import": "^2.13.1", + "ember-cli": "~6.12.0", + "ember-cli-babel": "^8.3.1", + "ember-cli-htmlbars": "^7.0.1", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-cli-sri": "^2.1.1", + "ember-cli-terser": "^4.0.2", + "ember-load-initializers": "^3.0.1", + "ember-modifier": "^4.3.0", + "ember-resolver": "^13.2.0", + "ember-source": "~6.12.0", + "loader.js": "^4.7.0", + "typescript": "^6.0.3", + "webpack": "^5.106.1" + }, + "dependencies": { + "@tsparticles/ember": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/templates/confetti/template/inferno/package.json b/templates/confetti/template/inferno/package.json new file mode 100644 index 00000000000..1e1506e973f --- /dev/null +++ b/templates/confetti/template/inferno/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^9.1.0", + "@tsparticles/inferno": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14", + "babel-plugin-inferno": "^6.8.5", + "vite-plugin-inferno": "^2.0.1" + } +} diff --git a/templates/confetti/template/inferno/src/App.css b/templates/confetti/template/inferno/src/App.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/inferno/src/App.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/inferno/src/App.tsx b/templates/confetti/template/inferno/src/App.tsx new file mode 100644 index 00000000000..843863a6322 --- /dev/null +++ b/templates/confetti/template/inferno/src/App.tsx @@ -0,0 +1,69 @@ +import Particles, { ParticlesProvider } from "@tsparticles/inferno"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine } from "@tsparticles/engine"; +import { Component } from "inferno"; +import "./App.css"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +interface AppState { + mode: string; +} + +export default class App extends Component<{}, AppState> { + state = { mode: "cannon" }; + + private fireConfetti = () => { + switch (this.state.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + }; + + private handleModeChange = (e: Event) => { + this.setState({ mode: (e.target as HTMLSelectElement).value }); + }; + + render() { + return ( + => {}}> +
+

Confetti!

+
+ + +
+
+ +
+ ); + } +} diff --git a/templates/confetti/template/jquery/package.json b/templates/confetti/template/jquery/package.json new file mode 100644 index 00000000000..740ad14d258 --- /dev/null +++ b/templates/confetti/template/jquery/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/jquery": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/jquery/src/main.ts b/templates/confetti/template/jquery/src/main.ts new file mode 100644 index 00000000000..91fa822e1dc --- /dev/null +++ b/templates/confetti/template/jquery/src/main.ts @@ -0,0 +1,49 @@ +import $ from "jquery"; +import "@tsparticles/jquery"; +import { tsParticles } from "@tsparticles/engine"; +import { confetti } from "@tsparticles/confetti"; +import "./style.css"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +(async () => { + $("#tsparticles").particles().load({}); + + const fireBtn = document.getElementById("fireBtn") as HTMLButtonElement; + const modeSelect = document.getElementById("modeSelect") as HTMLSelectElement; + + fireBtn.addEventListener("click", () => { + const mode = modeSelect.value; + + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + }); +})(); diff --git a/templates/confetti/template/jquery/src/style.css b/templates/confetti/template/jquery/src/style.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/jquery/src/style.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/lit/package.json b/templates/confetti/template/lit/package.json new file mode 100644 index 00000000000..f7c6b436d17 --- /dev/null +++ b/templates/confetti/template/lit/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.5.0", + "@tsparticles/lit": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/lit/src/my-app.ts b/templates/confetti/template/lit/src/my-app.ts new file mode 100644 index 00000000000..2850a878407 --- /dev/null +++ b/templates/confetti/template/lit/src/my-app.ts @@ -0,0 +1,68 @@ +import { LitElement, html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import { initParticlesEngine } from "@tsparticles/lit"; +import { confetti } from "@tsparticles/confetti"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +@customElement("my-app") +export class MyApp extends LitElement { + @state() + private mode = "cannon"; + + constructor() { + super(); + void initParticlesEngine(() => Promise.resolve()); + } + + private fireConfetti(): void { + switch (this.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + private handleModeChange(e: Event): void { + this.mode = (e.target as HTMLSelectElement).value; + } + + render() { + return html` +
+

Confetti!

+
+ + +
+
+ `; + } +} diff --git a/templates/confetti/template/nextjs/package.json b/templates/confetti/template/nextjs/package.json new file mode 100644 index 00000000000..806c0dc1e8e --- /dev/null +++ b/templates/confetti/template/nextjs/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "preview": "next start" + }, + "dependencies": { + "next": "^15.3.2", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/nextjs": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "@types/node": "^22.15.3", + "@types/react": "^19.1.4", + "@types/react-dom": "^19.1.3" + } +} diff --git a/templates/confetti/template/nextjs/src/app/page.tsx b/templates/confetti/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..575b6435e2a --- /dev/null +++ b/templates/confetti/template/nextjs/src/app/page.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useState } from "react"; +import { NextParticles } from "@tsparticles/nextjs"; +import { confetti } from "@tsparticles/confetti"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +export default function Home() { + const [mode, setMode] = useState("cannon"); + + function fireConfetti() { + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + return ( +
+
+

Confetti!

+
+ + +
+
+ +
+ ); +} diff --git a/templates/confetti/template/nuxt2/package.json b/templates/confetti/template/nuxt2/package.json new file mode 100644 index 00000000000..d11e455fcea --- /dev/null +++ b/templates/confetti/template/nuxt2/package.json @@ -0,0 +1,16 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "preview": "nuxt start" + }, + "dependencies": { + "nuxt": "^2.18.1", + "@tsparticles/nuxt2": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + } +} diff --git a/templates/confetti/template/nuxt2/pages/index.vue b/templates/confetti/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..e1ffdc9c3c0 --- /dev/null +++ b/templates/confetti/template/nuxt2/pages/index.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/templates/confetti/template/nuxt3/app.vue b/templates/confetti/template/nuxt3/app.vue new file mode 100644 index 00000000000..241771e0961 --- /dev/null +++ b/templates/confetti/template/nuxt3/app.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/templates/confetti/template/nuxt3/package.json b/templates/confetti/template/nuxt3/package.json new file mode 100644 index 00000000000..7ad024be210 --- /dev/null +++ b/templates/confetti/template/nuxt3/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.17.3", + "@tsparticles/nuxt3": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/confetti/template/nuxt4/app.vue b/templates/confetti/template/nuxt4/app.vue new file mode 100644 index 00000000000..241771e0961 --- /dev/null +++ b/templates/confetti/template/nuxt4/app.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/templates/confetti/template/nuxt4/package.json b/templates/confetti/template/nuxt4/package.json new file mode 100644 index 00000000000..f0cf20ece5a --- /dev/null +++ b/templates/confetti/template/nuxt4/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.4.2", + "@tsparticles/nuxt4": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/confetti/template/preact/package.json b/templates/confetti/template/preact/package.json new file mode 100644 index 00000000000..a10eb48e25b --- /dev/null +++ b/templates/confetti/template/preact/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.19.3", + "@tsparticles/preact": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.8.1", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/preact/src/App.css b/templates/confetti/template/preact/src/App.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/preact/src/App.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/preact/src/App.tsx b/templates/confetti/template/preact/src/App.tsx new file mode 100644 index 00000000000..504f5871d0a --- /dev/null +++ b/templates/confetti/template/preact/src/App.tsx @@ -0,0 +1,62 @@ +import { useState, useEffect } from "preact/hooks"; +import Particles, { initParticlesEngine } from "@tsparticles/preact"; +import { confetti } from "@tsparticles/confetti"; +import "./App.css"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +export default function App() { + const [mode, setMode] = useState("cannon"); + + useEffect(() => { + void initParticlesEngine(() => Promise.resolve()); + }, []); + + function fireConfetti() { + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + return ( +
+
+

Confetti!

+
+ + +
+
+ +
+ ); +} diff --git a/templates/confetti/template/qwik/package.json b/templates/confetti/template/qwik/package.json new file mode 100644 index 00000000000..5932f4ebf20 --- /dev/null +++ b/templates/confetti/template/qwik/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/qwik": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/qwik/src/App.tsx b/templates/confetti/template/qwik/src/App.tsx new file mode 100644 index 00000000000..86a217c7bc4 --- /dev/null +++ b/templates/confetti/template/qwik/src/App.tsx @@ -0,0 +1,61 @@ +import { component$, useVisibleTask$, useSignal } from "@builder.io/qwik"; +import { Particles, initParticlesEngine } from "@tsparticles/qwik"; +import { confetti } from "@tsparticles/confetti"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +export default component$(() => { + const mode = useSignal("cannon"); + + useVisibleTask$(() => { + void initParticlesEngine(() => Promise.resolve()); + }); + + const fireConfetti = () => { + switch (mode.value) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + }; + + return ( +
+
+

Confetti!

+
+ + +
+
+ +
+ ); +}); diff --git a/templates/confetti/template/react/package.json b/templates/confetti/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/confetti/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/confetti/template/react/src/App.css b/templates/confetti/template/react/src/App.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/react/src/App.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/react/src/App.tsx b/templates/confetti/template/react/src/App.tsx new file mode 100644 index 00000000000..101fb820606 --- /dev/null +++ b/templates/confetti/template/react/src/App.tsx @@ -0,0 +1,60 @@ +import { useState } from "react"; +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine } from "@tsparticles/engine"; +import "./App.css"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +async function init(engine: Engine): Promise {} + +export default function App() { + const [mode, setMode] = useState("cannon"); + + function fireConfetti() { + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + return ( + +
+

Confetti!

+
+ + +
+
+
+ ); +} diff --git a/templates/confetti/template/riot/package.json b/templates/confetti/template/riot/package.json new file mode 100644 index 00000000000..2ef6f43bbcd --- /dev/null +++ b/templates/confetti/template/riot/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^10.0.0", + "@tsparticles/riot": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@riotjs/compiler": "^10.0.0", + "rollup-plugin-riot": "^10.0.0", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/riot/src/app.riot b/templates/confetti/template/riot/src/app.riot new file mode 100644 index 00000000000..d1bdbb2fcd2 --- /dev/null +++ b/templates/confetti/template/riot/src/app.riot @@ -0,0 +1,111 @@ + +
+

Confetti!

+
+ + +
+
+ + + + + +
diff --git a/templates/confetti/template/solid/package.json b/templates/confetti/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/confetti/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/confetti/template/solid/src/App.tsx b/templates/confetti/template/solid/src/App.tsx new file mode 100644 index 00000000000..cf1f39728cb --- /dev/null +++ b/templates/confetti/template/solid/src/App.tsx @@ -0,0 +1,66 @@ +import { createSignal } from "solid-js"; +import { confetti } from "@tsparticles/confetti"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +export default function App() { + const [mode, setMode] = createSignal("cannon"); + + function handleFire() { + switch (mode()) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ + particleCount: 10, + angle: 60, + spread: 55, + origin: { x: 0, y: 0.6 }, + }); + confetti({ + particleCount: 10, + angle: 120, + spread: 55, + origin: { x: 1, y: 0.6 }, + }); + }, 100); + break; + } + + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + return ( +
+

Confetti!

+
+ + +
+
+ ); +} diff --git a/templates/confetti/template/solid/src/index.css b/templates/confetti/template/solid/src/index.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/solid/src/index.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/solid/src/main.tsx b/templates/confetti/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/confetti/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/confetti/template/stencil/package.json b/templates/confetti/template/stencil/package.json new file mode 100644 index 00000000000..425142c1071 --- /dev/null +++ b/templates/confetti/template/stencil/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "stencil build --dev --watch --serve", + "build": "stencil build", + "preview": "stencil build --serve" + }, + "dependencies": { + "@stencil/core": "^4.43.5", + "@tsparticles/stencil": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/confetti/template/stencil/src/components/app-home/app-home.tsx b/templates/confetti/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..85c9380e019 --- /dev/null +++ b/templates/confetti/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,73 @@ +import { Component, State, h, type JSX } from "@stencil/core"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine } from "@tsparticles/engine"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + shadow: true, +}) +export class AppHome { + @State() + private mode = "cannon"; + + private async particlesInit(engine: Engine): Promise {} + + private fireConfetti(): void { + switch (this.mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } + } + + private handleModeChange(e: Event): void { + this.mode = (e.target as HTMLSelectElement).value; + } + + render(): JSX.Element { + return ( +
+

Confetti!

+
+ + +
+ +
+ ); + } +} diff --git a/templates/confetti/template/svelte/package.json b/templates/confetti/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/confetti/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/confetti/template/svelte/src/App.svelte b/templates/confetti/template/svelte/src/App.svelte new file mode 100644 index 00000000000..a7e1d2807ce --- /dev/null +++ b/templates/confetti/template/svelte/src/App.svelte @@ -0,0 +1,119 @@ + + +

tsParticles Confetti

+
+ + +
+ + diff --git a/templates/confetti/template/svelte/src/main.ts b/templates/confetti/template/svelte/src/main.ts new file mode 100644 index 00000000000..5409f56b109 --- /dev/null +++ b/templates/confetti/template/svelte/src/main.ts @@ -0,0 +1,6 @@ +import { mount } from "svelte"; +import App from "./App.svelte"; + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/confetti/template/vanilla/LICENSE b/templates/confetti/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/confetti/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/confetti/template/vanilla/README.md b/templates/confetti/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/confetti/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/confetti/template/vanilla/gitignore b/templates/confetti/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/confetti/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/confetti/template/vanilla/index.html b/templates/confetti/template/vanilla/index.html new file mode 100644 index 00000000000..109da56b649 --- /dev/null +++ b/templates/confetti/template/vanilla/index.html @@ -0,0 +1,22 @@ + + + + + + {{projectName}} + + +
+

Confetti!

+
+ + +
+
+ + + diff --git a/templates/confetti/template/vanilla/package.json b/templates/confetti/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/confetti/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/confetti/template/vanilla/src/main.ts b/templates/confetti/template/vanilla/src/main.ts new file mode 100644 index 00000000000..26cda1a4167 --- /dev/null +++ b/templates/confetti/template/vanilla/src/main.ts @@ -0,0 +1,54 @@ +import "./style.css"; +import { confetti } from "@tsparticles/confetti"; + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +const fireBtn = document.getElementById("fireBtn") as HTMLButtonElement; +const modeSelect = document.getElementById("modeSelect") as HTMLSelectElement; + +fireBtn.addEventListener("click", () => { + const mode = modeSelect.value; + + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + + case "waterfall": + { + const duration = 3000; + const end = Date.now() + duration; + + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ + particleCount: 10, + angle: 60, + spread: 55, + origin: { x: 0, y: 0.6 }, + }); + confetti({ + particleCount: 10, + angle: 120, + spread: 55, + origin: { x: 1, y: 0.6 }, + }); + }, 100); + } + break; + + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } +}); diff --git a/templates/confetti/template/vanilla/src/style.css b/templates/confetti/template/vanilla/src/style.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/vanilla/src/style.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/confetti/template/vanilla/tsconfig.json b/templates/confetti/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/confetti/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/confetti/template/vanilla/vite.config.ts b/templates/confetti/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/confetti/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/confetti/template/vue2/package.json b/templates/confetti/template/vue2/package.json new file mode 100644 index 00000000000..61e8d60d091 --- /dev/null +++ b/templates/confetti/template/vue2/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/vue2": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.0.1", + "vue-template-compiler": "^2.7.16", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/vue2/src/App.vue b/templates/confetti/template/vue2/src/App.vue new file mode 100644 index 00000000000..27cc3de63c5 --- /dev/null +++ b/templates/confetti/template/vue2/src/App.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/templates/confetti/template/vue3/package.json b/templates/confetti/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/confetti/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/confetti/template/vue3/src/App.vue b/templates/confetti/template/vue3/src/App.vue new file mode 100644 index 00000000000..36c2756f377 --- /dev/null +++ b/templates/confetti/template/vue3/src/App.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/templates/confetti/template/vue3/src/main.ts b/templates/confetti/template/vue3/src/main.ts new file mode 100644 index 00000000000..a67b4ecdcb6 --- /dev/null +++ b/templates/confetti/template/vue3/src/main.ts @@ -0,0 +1,9 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, {}); + +app.mount("#app"); diff --git a/templates/confetti/template/webcomponents/package.json b/templates/confetti/template/webcomponents/package.json new file mode 100644 index 00000000000..366e157b47d --- /dev/null +++ b/templates/confetti/template/webcomponents/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/webcomponents": "^4.1.3", + "@tsparticles/confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/confetti/template/webcomponents/src/main.ts b/templates/confetti/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..11fe083d5f1 --- /dev/null +++ b/templates/confetti/template/webcomponents/src/main.ts @@ -0,0 +1,48 @@ +import "./style.css"; +import { defineParticlesElement, initParticlesEngine } from "@tsparticles/webcomponents"; +import { confetti } from "@tsparticles/confetti"; + +void initParticlesEngine(() => Promise.resolve()); + +defineParticlesElement(); + +function randomInRange(min: number, max: number): number { + return Math.random() * (max - min) + min; +} + +const fireBtn = document.getElementById("fireBtn") as HTMLButtonElement; +const modeSelect = document.getElementById("modeSelect") as HTMLSelectElement; + +fireBtn.addEventListener("click", () => { + const mode = modeSelect.value; + + switch (mode) { + case "cannon": + confetti({ particleCount: 100, spread: 70, origin: { y: 0.6 } }); + break; + + case "waterfall": { + const duration = 3000; + const end = Date.now() + duration; + + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + confetti({ particleCount: 10, angle: 60, spread: 55, origin: { x: 0, y: 0.6 } }); + confetti({ particleCount: 10, angle: 120, spread: 55, origin: { x: 1, y: 0.6 } }); + }, 100); + break; + } + + case "random": + confetti({ + angle: randomInRange(55, 125), + spread: randomInRange(50, 70), + particleCount: randomInRange(50, 100), + origin: { y: 0.6 }, + }); + break; + } +}); diff --git a/templates/confetti/template/webcomponents/src/style.css b/templates/confetti/template/webcomponents/src/style.css new file mode 100644 index 00000000000..5ad03f5b914 --- /dev/null +++ b/templates/confetti/template/webcomponents/src/style.css @@ -0,0 +1,54 @@ +body { + margin: 0; + overflow: hidden; + background: #1a1a2e; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + display: flex; + gap: 1rem; + justify-content: center; + align-items: center; + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #e94560; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #ff6b81; +} + +select { + padding: 0.8em 1em; + font-size: 1em; + border-radius: 8px; + border: 1px solid #444; + background: #16213e; + color: #fff; + cursor: pointer; +} diff --git a/templates/landing/CHANGELOG.md b/templates/landing/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/landing/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/landing/LICENSE b/templates/landing/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/landing/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/landing/README.md b/templates/landing/README.md new file mode 100644 index 00000000000..35e866d1f56 --- /dev/null +++ b/templates/landing/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-landing + +tsParticles landing page template. Use with `create-tsparticles-app` to scaffold a new landing page project with animated particle background. diff --git a/templates/landing/package.json b/templates/landing/package.json new file mode 100644 index 00000000000..b691bad5768 --- /dev/null +++ b/templates/landing/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-landing", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/landing/scripts/prebuild.js b/templates/landing/scripts/prebuild.js new file mode 100644 index 00000000000..bfd3e6dbe76 --- /dev/null +++ b/templates/landing/scripts/prebuild.js @@ -0,0 +1,65 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, + "@tsparticles/configs": require("../../../utils/configs/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/landing/template.json b/templates/landing/template.json new file mode 100644 index 00000000000..c70f3f52a8e --- /dev/null +++ b/templates/landing/template.json @@ -0,0 +1,13 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/landing/template/angular-confetti/package.json b/templates/landing/template/angular-confetti/package.json new file mode 100644 index 00000000000..af0c40b940b --- /dev/null +++ b/templates/landing/template/angular-confetti/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@angular/animations": "~22.0.1", + "@angular/common": "~22.0.1", + "@angular/compiler": "~22.0.1", + "@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", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "angular-confetti": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/landing/template/angular-confetti/src/app/app.component.css b/templates/landing/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/angular-confetti/src/app/app.component.html b/templates/landing/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..e820625f77a --- /dev/null +++ b/templates/landing/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,66 @@ + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
{{ f.icon }}
+

{{ f.title }}

+

{{ f.desc }}

+
+
+
+
+
+
+

Pricing

+
+
+

{{ p.plan }}

+

{{ p.price }}/mo

+
    +
  • {{ f }}
  • +
+ {{ p.plan === 'Enterprise' ? 'Contact Sales' : 'Choose Plan' }} +
+
+
+
+
+
+

What Our Users Say

+
+
+

"{{ t.text }}"

+ — {{ t.author }} +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ diff --git a/templates/landing/template/angular-confetti/src/app/app.component.ts b/templates/landing/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..940a089018a --- /dev/null +++ b/templates/landing/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,49 @@ +import { Component } from "@angular/core"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + title = "{{projectName}}"; + + options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + features = [ + { icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." }, + ]; + + pricingPlans = [ + { plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"], featured: false }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"], featured: false }, + ]; + + testimonials = [ + { text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" }, + ]; +} diff --git a/templates/landing/template/angular-fireworks/package.json b/templates/landing/template/angular-fireworks/package.json new file mode 100644 index 00000000000..0bc826c2fa3 --- /dev/null +++ b/templates/landing/template/angular-fireworks/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@angular/animations": "~22.0.1", + "@angular/common": "~22.0.1", + "@angular/compiler": "~22.0.1", + "@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", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "angular-fireworks": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/landing/template/angular-fireworks/src/app/app.component.css b/templates/landing/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/angular-fireworks/src/app/app.component.html b/templates/landing/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..fd53a9c59a8 --- /dev/null +++ b/templates/landing/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,66 @@ + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
{{ f.icon }}
+

{{ f.title }}

+

{{ f.desc }}

+
+
+
+
+
+
+

Pricing

+
+
+

{{ p.plan }}

+

{{ p.price }}/mo

+
    +
  • {{ f }}
  • +
+ {{ p.plan === 'Enterprise' ? 'Contact Sales' : 'Choose Plan' }} +
+
+
+
+
+
+

What Our Users Say

+
+
+

"{{ t.text }}"

+ — {{ t.author }} +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ diff --git a/templates/landing/template/angular-fireworks/src/app/app.component.ts b/templates/landing/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..940a089018a --- /dev/null +++ b/templates/landing/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,49 @@ +import { Component } from "@angular/core"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + title = "{{projectName}}"; + + options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + features = [ + { icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." }, + ]; + + pricingPlans = [ + { plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"], featured: false }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"], featured: false }, + ]; + + testimonials = [ + { text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" }, + ]; +} diff --git a/templates/landing/template/angular/package.json b/templates/landing/template/angular/package.json new file mode 100644 index 00000000000..41b649f36b2 --- /dev/null +++ b/templates/landing/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/slim": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/landing/template/angular/src/app/app.component.css b/templates/landing/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..aab0419bc2f --- /dev/null +++ b/templates/landing/template/angular/src/app/app.component.css @@ -0,0 +1,265 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* Hero */ +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +/* Features */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +/* Pricing */ +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +/* Testimonials */ +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +/* CTA */ +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +/* Footer */ +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/angular/src/app/app.component.html b/templates/landing/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..c5de3a9aa35 --- /dev/null +++ b/templates/landing/template/angular/src/app/app.component.html @@ -0,0 +1,72 @@ + + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+ +
+
+

Features

+
+
+
{{ f.icon }}
+

{{ f.title }}

+

{{ f.desc }}

+
+
+
+
+ +
+
+

Pricing

+
+
+

{{ p.plan }}

+

{{ p.price }}/mo

+
    +
  • {{ f }}
  • +
+ {{ p.plan === 'Enterprise' ? 'Contact Sales' : 'Choose Plan' }} +
+
+
+
+ +
+
+

What Our Users Say

+
+
+

"{{ t.text }}"

+ — {{ t.author }} +
+
+
+
+ +
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + diff --git a/templates/landing/template/angular/src/app/app.component.ts b/templates/landing/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..c3538b3cd57 --- /dev/null +++ b/templates/landing/template/angular/src/app/app.component.ts @@ -0,0 +1,57 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + features = [ + { icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." }, + ]; + + pricingPlans = [ + { plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"], featured: false }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"], featured: false }, + ]; + + testimonials = [ + { text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" }, + ]; + + ngOnInit(): void { + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } +} diff --git a/templates/landing/template/astro/package.json b/templates/landing/template/astro/package.json new file mode 100644 index 00000000000..53e2469b6f1 --- /dev/null +++ b/templates/landing/template/astro/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^5.0.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/astro": "^4.1.3" + }, + "devDependencies": { + "@astrojs/check": "^0.9.0" + } +} diff --git a/templates/landing/template/astro/src/pages/index.astro b/templates/landing/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..6f8c8dbc9bb --- /dev/null +++ b/templates/landing/template/astro/src/pages/index.astro @@ -0,0 +1,143 @@ +--- +import Particles from "@tsparticles/astro"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, +}; +--- + + + + + + {{projectName}} + + + + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+

Blazing Fast

Optimized for performance from the ground up.

+
🔒

Secure

Enterprise-grade security built into every layer.

+
🌍

Global Scale

Deploy anywhere with our global infrastructure.

+
🎨

Customizable

Tailor every aspect to your brand and needs.

+
+
+
+
+
+

Pricing

+
+

Starter

$9/mo

  • Up to 5 projects
  • Basic analytics
  • Email support
Choose Plan
+ +

Enterprise

$99/mo

  • Everything in Pro
  • Dedicated support
  • SLA guarantee
  • Custom deployment
Contact Sales
+
+
+
+
+
+

What Our Users Say

+
+

"This platform transformed how our team ships features. Absolutely love it."

— Sarah K., CTO
+

"The best investment we made this year. The performance gains are incredible."

— Michael R., Developer
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + + + diff --git a/templates/landing/template/ember/app/templates/application.hbs b/templates/landing/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..8beab7ee9a8 --- /dev/null +++ b/templates/landing/template/ember/app/templates/application.hbs @@ -0,0 +1,75 @@ +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+ {{#each this.features as |f|}} +
+
{{f.icon}}
+

{{f.title}}

+

{{f.desc}}

+
+ {{/each}} +
+
+
+
+
+

Pricing

+
+ {{#each this.pricingPlans as |p|}} +
+

{{p.plan}}

+

{{p.price}}/mo

+
    + {{#each p.features as |f|}} +
  • {{f}}
  • + {{/each}} +
+ {{if (eq p.plan "Enterprise") "Contact Sales" "Choose Plan"}} +
+ {{/each}} +
+
+
+
+
+

What Our Users Say

+
+ {{#each this.testimonials as |t|}} +
+

"{{t.text}}"

+ — {{t.author}} +
+ {{/each}} +
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + +
diff --git a/templates/landing/template/ember/package.json b/templates/landing/template/ember/package.json new file mode 100644 index 00000000000..ff94739de2a --- /dev/null +++ b/templates/landing/template/ember/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "ember build", + "serve": "ember serve" + }, + "dependencies": { + "ember-source": "^5.12.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/ember": "^4.1.3" + }, + "devDependencies": { + "ember-cli": "^6.0.0" + } +} diff --git a/templates/landing/template/inferno/package.json b/templates/landing/template/inferno/package.json new file mode 100644 index 00000000000..8993bcc816d --- /dev/null +++ b/templates/landing/template/inferno/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^8.2.5", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/inferno": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.0", + "vite": "^6.0.0", + "vite-plugin-inferno": "^0.8.4" + } +} diff --git a/templates/landing/template/inferno/src/App.css b/templates/landing/template/inferno/src/App.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/inferno/src/App.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/inferno/src/App.tsx b/templates/landing/template/inferno/src/App.tsx new file mode 100644 index 00000000000..1d5278fbca1 --- /dev/null +++ b/templates/landing/template/inferno/src/App.tsx @@ -0,0 +1,126 @@ +import Particles, { initParticlesEngine } from "@tsparticles/inferno"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; +import { Component } from "inferno"; +import "./App.css"; + +export default class App extends Component { + constructor(props) { + super(props); + this.state = { init: false }; + } + + componentDidMount() { + initParticlesEngine(async (engine) => { + await loadSlim(engine); + }).then(() => { + this.setState({ init: true }); + }); + } + + options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + render() { + return ( +
+ +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+ {[{ icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." } + ].map((f, i) => ( +
+
{f.icon}
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+
+
+

Pricing

+
+ {[{ plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"] }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"] } + ].map((p, i) => ( +
+

{p.plan}

+

{p.price}/mo

+
    {p.features.map((f, j) =>
  • {f}
  • )}
+ {p.plan === "Enterprise" ? "Contact Sales" : "Choose Plan"} +
+ ))} +
+
+
+
+
+

What Our Users Say

+
+ {[{ text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" } + ].map((t, i) => ( +
+

"{t.text}"

+ — {t.author} +
+ ))} +
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +
+ ); + } +} diff --git a/templates/landing/template/jquery/package.json b/templates/landing/template/jquery/package.json new file mode 100644 index 00000000000..c7e9392db8a --- /dev/null +++ b/templates/landing/template/jquery/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/jquery": "^4.1.3" + }, + "devDependencies": { + "@types/jquery": "^3.5.32", + "typescript": "^5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/jquery/src/main.ts b/templates/landing/template/jquery/src/main.ts new file mode 100644 index 00000000000..6569a84f11a --- /dev/null +++ b/templates/landing/template/jquery/src/main.ts @@ -0,0 +1,161 @@ +import "./style.css"; +import $ from "jquery"; +import { loadSlim } from "@tsparticles/slim"; +import "@tsparticles/jquery"; + +$(() => { + $.particles().init(async (engine) => { + await loadSlim(engine); + }); + + $.particles().load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { + enable: true, + distance: 150, + color: "#6c5ce7", + opacity: 0.15, + width: 1, + }, + move: { + enable: true, + speed: 1.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "grab" }, + }, + modes: { + grab: { distance: 200, links: { opacity: 0.5 } }, + }, + }, + detectRetina: true, + }, + }); +}); + +$("body").html(` +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +`); diff --git a/templates/landing/template/jquery/src/style.css b/templates/landing/template/jquery/src/style.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/jquery/src/style.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/lit/package.json b/templates/landing/template/lit/package.json new file mode 100644 index 00000000000..067fde5ef8c --- /dev/null +++ b/templates/landing/template/lit/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.2.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/lit": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/lit/src/my-app.ts b/templates/landing/template/lit/src/my-app.ts new file mode 100644 index 00000000000..3e036df727c --- /dev/null +++ b/templates/landing/template/lit/src/my-app.ts @@ -0,0 +1,146 @@ +import { LitElement, html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "@tsparticles/lit"; + +@customElement("my-app") +export class MyApp extends LitElement { + @state() + private accessor options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + createRenderRoot() { + return this; + } + + render() { + return html` + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + `; + } +} diff --git a/templates/landing/template/nextjs/package.json b/templates/landing/template/nextjs/package.json new file mode 100644 index 00000000000..21b88814c78 --- /dev/null +++ b/templates/landing/template/nextjs/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "next": "^15.0.0", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/nextjs": "^4.1.3" + } +} diff --git a/templates/landing/template/nextjs/src/app/page.tsx b/templates/landing/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..10d76ee5186 --- /dev/null +++ b/templates/landing/template/nextjs/src/app/page.tsx @@ -0,0 +1,155 @@ +"use client"; + +import NextParticles from "@tsparticles/nextjs"; +import type { ISourceOptions } from "@tsparticles/engine"; +import { ParticlesProvider } from "./providers"; + +const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, +}; + +export default function Home() { + return ( + + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+ {[{ icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." } + ].map((f, i) => ( +
+
{f.icon}
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+
+
+

Pricing

+
+ {[{ plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"] }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"] } + ].map((p, i) => ( +
+

{p.plan}

+

{p.price}/mo

+
    {p.features.map((f, j) =>
  • {f}
  • )}
+ {p.plan === "Enterprise" ? "Contact Sales" : "Choose Plan"} +
+ ))} +
+
+
+
+
+

What Our Users Say

+
+ {[{ text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" } + ].map((t, i) => ( +
+

"{t.text}"

+ — {t.author} +
+ ))} +
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + +
+ ); +} diff --git a/templates/landing/template/nextjs/src/app/providers.tsx b/templates/landing/template/nextjs/src/app/providers.tsx new file mode 100644 index 00000000000..78e01f66c24 --- /dev/null +++ b/templates/landing/template/nextjs/src/app/providers.tsx @@ -0,0 +1,15 @@ +"use client"; + +import { initParticlesEngine } from "@tsparticles/nextjs"; +import { loadSlim } from "@tsparticles/slim"; +import { useEffect, type ReactNode } from "react"; + +export function ParticlesProvider({ children }: { children: ReactNode }) { + useEffect(() => { + initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }, []); + + return <>{children}; +} diff --git a/templates/landing/template/nuxt2/package.json b/templates/landing/template/nuxt2/package.json new file mode 100644 index 00000000000..a9af135e0fb --- /dev/null +++ b/templates/landing/template/nuxt2/package.json @@ -0,0 +1,17 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "generate": "nuxt generate" + }, + "dependencies": { + "nuxt": "^2.19.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/nuxt2": "^4.1.3" + } +} diff --git a/templates/landing/template/nuxt2/pages/index.vue b/templates/landing/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..0471db18707 --- /dev/null +++ b/templates/landing/template/nuxt2/pages/index.vue @@ -0,0 +1,375 @@ + + + + + diff --git a/templates/landing/template/nuxt3/app.vue b/templates/landing/template/nuxt3/app.vue new file mode 100644 index 00000000000..20399f14265 --- /dev/null +++ b/templates/landing/template/nuxt3/app.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/templates/landing/template/nuxt3/package.json b/templates/landing/template/nuxt3/package.json new file mode 100644 index 00000000000..cc186833f69 --- /dev/null +++ b/templates/landing/template/nuxt3/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.16.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/nuxt3": "^4.1.3" + } +} diff --git a/templates/landing/template/nuxt4/app.vue b/templates/landing/template/nuxt4/app.vue new file mode 100644 index 00000000000..20399f14265 --- /dev/null +++ b/templates/landing/template/nuxt4/app.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/templates/landing/template/nuxt4/package.json b/templates/landing/template/nuxt4/package.json new file mode 100644 index 00000000000..57bf144c398 --- /dev/null +++ b/templates/landing/template/nuxt4/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.0.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/nuxt4": "^4.1.3" + } +} diff --git a/templates/landing/template/preact/package.json b/templates/landing/template/preact/package.json new file mode 100644 index 00000000000..a5a6caf0c8f --- /dev/null +++ b/templates/landing/template/preact/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.26.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/preact": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.10.0", + "typescript": "^5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/preact/src/App.css b/templates/landing/template/preact/src/App.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/preact/src/App.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/preact/src/App.tsx b/templates/landing/template/preact/src/App.tsx new file mode 100644 index 00000000000..b024b999a0b --- /dev/null +++ b/templates/landing/template/preact/src/App.tsx @@ -0,0 +1,152 @@ +import Particles from "@tsparticles/preact"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import { useEffect, useState } from "preact/hooks"; +import "./App.css"; + +export default function App() { + const [init, setInit] = useState(false); + + useEffect(() => { + async function initEngine() { + const engine = {} as Engine; + await loadSlim(engine); + setInit(true); + } + initEngine(); + }, []); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + return ( + <> + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + + ); +} diff --git a/templates/landing/template/qwik/package.json b/templates/landing/template/qwik/package.json new file mode 100644 index 00000000000..d8c0e5ef043 --- /dev/null +++ b/templates/landing/template/qwik/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/qwik": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/qwik/src/App.tsx b/templates/landing/template/qwik/src/App.tsx new file mode 100644 index 00000000000..24a063b32e9 --- /dev/null +++ b/templates/landing/template/qwik/src/App.tsx @@ -0,0 +1,150 @@ +import { component$, useSignal, useVisibleTask$ } from "@builder.io/qwik"; +import type { ISourceOptions } from "@tsparticles/engine"; +import { Particles, initParticlesEngine } from "@tsparticles/qwik"; +import { loadSlim } from "@tsparticles/slim"; + +export default component$(() => { + const init = useSignal(false); + + useVisibleTask$(() => { + initParticlesEngine(async (engine) => { + await loadSlim(engine); + }).then(() => { + init.value = true; + }); + }); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + return ( + <> + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + + ); +}); diff --git a/templates/landing/template/react/package.json b/templates/landing/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/landing/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/landing/template/react/src/App.css b/templates/landing/template/react/src/App.css new file mode 100644 index 00000000000..aab0419bc2f --- /dev/null +++ b/templates/landing/template/react/src/App.css @@ -0,0 +1,265 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* Hero */ +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +/* Features */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +/* Pricing */ +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +/* Testimonials */ +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +/* CTA */ +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +/* Footer */ +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/react/src/App.tsx b/templates/landing/template/react/src/App.tsx new file mode 100644 index 00000000000..19dc2e5c79c --- /dev/null +++ b/templates/landing/template/react/src/App.tsx @@ -0,0 +1,114 @@ +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, +}; + +export default function App() { + return ( + + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+ {[{ icon: "\u26a1", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "\ud83d\udd12", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "\ud83c\udf0d", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "\ud83c\udfa8", title: "Customizable", desc: "Tailor every aspect to your brand and needs." } + ].map((f, i) => ( +
+
{f.icon}
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+
+
+

Pricing

+
+ {[{ plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"] }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"] } + ].map((p, i) => ( +
+

{p.plan}

+

{p.price}/mo

+
    {p.features.map((f, j) =>
  • {f}
  • )}
+ {p.plan === "Enterprise" ? "Contact Sales" : "Choose Plan"} +
+ ))} +
+
+
+
+
+

What Our Users Say

+
+ {[{ text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" } + ].map((t, i) => ( +
+

"{t.text}"

+ \u2014 {t.author} +
+ ))} +
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +
+ ); +} diff --git a/templates/landing/template/riot/package.json b/templates/landing/template/riot/package.json new file mode 100644 index 00000000000..98dab111846 --- /dev/null +++ b/templates/landing/template/riot/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^9.7.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/riot": "^4.1.3" + }, + "devDependencies": { + "@riotjs/vite-plugin": "^9.4.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/riot/src/app.riot b/templates/landing/template/riot/src/app.riot new file mode 100644 index 00000000000..8b43f2c8c46 --- /dev/null +++ b/templates/landing/template/riot/src/app.riot @@ -0,0 +1,123 @@ + + + +
+ +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
{ f.icon }
+

{ f.title }

+

{ f.desc }

+
+
+
+
+
+
+

Pricing

+
+
+

{ p.plan }

+

{ p.price }/mo

+
    +
  • { f }
  • +
+ { p.plan === 'Enterprise' ? 'Contact Sales' : 'Choose Plan' } +
+
+
+
+
+
+

What Our Users Say

+
+
+

"{ t.text }"

+ — { t.author } +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +
+ + +
diff --git a/templates/landing/template/solid/package.json b/templates/landing/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/landing/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/landing/template/solid/src/App.tsx b/templates/landing/template/solid/src/App.tsx new file mode 100644 index 00000000000..30af0c48a8a --- /dev/null +++ b/templates/landing/template/solid/src/App.tsx @@ -0,0 +1,170 @@ +import { onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { + enable: true, + distance: 150, + color: "#6c5ce7", + opacity: 0.15, + width: 1, + }, + move: { + enable: true, + speed: 1.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "grab" }, + }, + modes: { + grab: { distance: 200, links: { opacity: 0.5 } }, + }, + }, + detectRetina: true, + }; + + return ( + <> +
+
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+ +
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+ +
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+ +
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+ +
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + +
+ + + ); +} diff --git a/templates/landing/template/solid/src/index.css b/templates/landing/template/solid/src/index.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/solid/src/index.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/solid/src/main.tsx b/templates/landing/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/landing/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/landing/template/stencil/package.json b/templates/landing/template/stencil/package.json new file mode 100644 index 00000000000..0bc29b8f5a9 --- /dev/null +++ b/templates/landing/template/stencil/package.json @@ -0,0 +1,16 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "stencil build", + "start": "stencil build --dev --watch --serve" + }, + "dependencies": { + "@stencil/core": "^4.25.0", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/stencil": "^4.1.3" + } +} diff --git a/templates/landing/template/stencil/src/components/app-home/app-home.tsx b/templates/landing/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..157cd3f868b --- /dev/null +++ b/templates/landing/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,135 @@ +import { Component, h } from "@stencil/core"; +import type { ISourceOptions } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import { tsParticles } from "@tsparticles/engine"; + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", +}) +export class AppHome { + private options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { enable: true, distance: 150, color: "#6c5ce7", opacity: 0.15, width: 1 }, + move: { enable: true, speed: 1.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "grab" } }, + modes: { grab: { distance: 200, links: { opacity: 0.5 } } }, + }, + detectRetina: true, + }; + + async componentDidLoad() { + await loadSlim(tsParticles); + } + + private features = [ + { icon: "⚡", title: "Blazing Fast", desc: "Optimized for performance from the ground up." }, + { icon: "🔒", title: "Secure", desc: "Enterprise-grade security built into every layer." }, + { icon: "🌍", title: "Global Scale", desc: "Deploy anywhere with our global infrastructure." }, + { icon: "🎨", title: "Customizable", desc: "Tailor every aspect to your brand and needs." }, + ]; + + private pricingPlans = [ + { plan: "Starter", price: "$9", features: ["Up to 5 projects", "Basic analytics", "Email support"], featured: false }, + { plan: "Pro", price: "$29", features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom integrations"], featured: true }, + { plan: "Enterprise", price: "$99", features: ["Everything in Pro", "Dedicated support", "SLA guarantee", "Custom deployment"], featured: false }, + ]; + + private testimonials = [ + { text: "This platform transformed how our team ships features. Absolutely love it.", author: "Sarah K., CTO" }, + { text: "The best investment we made this year. The performance gains are incredible.", author: "Michael R., Developer" }, + ]; + + render() { + return ( +
+ +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+ {this.features.map((f) => ( +
+
{f.icon}
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+
+
+

Pricing

+
+ {this.pricingPlans.map((p) => ( +
+

{p.plan}

+

{p.price}/mo

+
    + {p.features.map((f) => ( +
  • {f}
  • + ))} +
+ + {p.plan === "Enterprise" ? "Contact Sales" : "Choose Plan"} + +
+ ))} +
+
+
+
+
+

What Our Users Say

+
+ {this.testimonials.map((t) => ( +
+

"{t.text}"

+ — {t.author} +
+ ))} +
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +
+ ); + } +} diff --git a/templates/landing/template/svelte/package.json b/templates/landing/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/landing/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/landing/template/svelte/src/App.svelte b/templates/landing/template/svelte/src/App.svelte new file mode 100644 index 00000000000..40b0975d617 --- /dev/null +++ b/templates/landing/template/svelte/src/App.svelte @@ -0,0 +1,424 @@ + + +
+
+

Build Amazing Products

+

+ Modern solutions for modern teams. Ship faster with less friction. +

+ +
+
+ +
+
+

Features

+
+
+
+

Lightning Fast

+

Optimized for performance with minimal overhead.

+
+
+
🔒
+

Secure by Default

+

Enterprise-grade security built into every layer.

+
+
+
🛠️
+

Developer First

+

Clean APIs and comprehensive documentation.

+
+
+
+
+ +
+
+

Pricing

+
+
+

Starter

+
$0/mo
+
    +
  • Up to 1,000 requests
  • +
  • Basic analytics
  • +
  • Community support
  • +
+ Get Started +
+ +
+

Enterprise

+
$99/mo
+
    +
  • Unlimited requests
  • +
  • Real-time analytics
  • +
  • Dedicated support
  • +
  • Custom SLA
  • +
+ Contact Us +
+
+
+
+ +
+
+

What Our Users Say

+
+
+

"This platform transformed our workflow. The speed and reliability are unmatched."

+
— Sarah K., CTO
+
+
+

"The developer experience is incredible. We built our entire product on top of it."

+
— Marcus J., Lead Developer
+
+
+

"Outstanding support and documentation. Highly recommended for any team."

+
— Elena R., Product Manager
+
+
+
+
+ +
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+
+ + + + + + diff --git a/templates/landing/template/svelte/src/main.ts b/templates/landing/template/svelte/src/main.ts new file mode 100644 index 00000000000..919025c542a --- /dev/null +++ b/templates/landing/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/landing/template/vanilla/LICENSE b/templates/landing/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/landing/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/landing/template/vanilla/README.md b/templates/landing/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/landing/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/landing/template/vanilla/gitignore b/templates/landing/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/landing/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/landing/template/vanilla/index.html b/templates/landing/template/vanilla/index.html new file mode 100644 index 00000000000..7a0ebdfbaca --- /dev/null +++ b/templates/landing/template/vanilla/index.html @@ -0,0 +1,126 @@ + + + + + + + {{projectName}} + + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+ +
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+ +
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+ +
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+ +
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ + + + + + diff --git a/templates/landing/template/vanilla/package.json b/templates/landing/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/landing/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/landing/template/vanilla/src/main.ts b/templates/landing/template/vanilla/src/main.ts new file mode 100644 index 00000000000..a968b2c928f --- /dev/null +++ b/templates/landing/template/vanilla/src/main.ts @@ -0,0 +1,47 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; + +(async () => { + await loadSlim(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { + enable: true, + distance: 150, + color: "#6c5ce7", + opacity: 0.15, + width: 1, + }, + move: { + enable: true, + speed: 1.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "grab" }, + }, + modes: { + grab: { distance: 200, links: { opacity: 0.5 } }, + }, + }, + detectRetina: true, + }, + }); +})(); diff --git a/templates/landing/template/vanilla/src/style.css b/templates/landing/template/vanilla/src/style.css new file mode 100644 index 00000000000..aab0419bc2f --- /dev/null +++ b/templates/landing/template/vanilla/src/style.css @@ -0,0 +1,265 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* Hero */ +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +/* Features */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +/* Pricing */ +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +/* Testimonials */ +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +/* CTA */ +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +/* Footer */ +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/landing/template/vanilla/tsconfig.json b/templates/landing/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/landing/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/landing/template/vanilla/vite.config.ts b/templates/landing/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/landing/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/landing/template/vue2/package.json b/templates/landing/template/vue2/package.json new file mode 100644 index 00000000000..98dc258d944 --- /dev/null +++ b/templates/landing/template/vue2/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/vue2": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.3.3", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/vue2/src/App.vue b/templates/landing/template/vue2/src/App.vue new file mode 100644 index 00000000000..56e2bc9cf4c --- /dev/null +++ b/templates/landing/template/vue2/src/App.vue @@ -0,0 +1,376 @@ + + + + + diff --git a/templates/landing/template/vue3/package.json b/templates/landing/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/landing/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/landing/template/vue3/src/App.vue b/templates/landing/template/vue3/src/App.vue new file mode 100644 index 00000000000..1bdb3ac7225 --- /dev/null +++ b/templates/landing/template/vue3/src/App.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/templates/landing/template/vue3/src/main.ts b/templates/landing/template/vue3/src/main.ts new file mode 100644 index 00000000000..5dcbea5f227 --- /dev/null +++ b/templates/landing/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/landing/template/webcomponents/package.json b/templates/landing/template/webcomponents/package.json new file mode 100644 index 00000000000..b6f3a91eb49 --- /dev/null +++ b/templates/landing/template/webcomponents/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/webcomponents": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/landing/template/webcomponents/src/main.ts b/templates/landing/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..62d47ec87c4 --- /dev/null +++ b/templates/landing/template/webcomponents/src/main.ts @@ -0,0 +1,160 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import "@tsparticles/webcomponents"; + +(async () => { + await loadSlim(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#080818" } }, + fpsLimit: 60, + particles: { + number: { value: 100, density: { enable: true } }, + color: { value: ["#6c5ce7", "#00cec9", "#fd79a8", "#ffeaa7"] }, + shape: { type: "circle" }, + opacity: { value: 0.4, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + links: { + enable: true, + distance: 150, + color: "#6c5ce7", + opacity: 0.15, + width: 1, + }, + move: { + enable: true, + speed: 1.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "grab" }, + }, + modes: { + grab: { distance: 200, links: { opacity: 0.5 } }, + }, + }, + detectRetina: true, + }, + }); +})(); + +document.body.innerHTML = ` + +
+
+

Build Faster.
Go Further.

+

The platform that helps teams ship products at the speed of light.

+ +
+
+
+
+

Features

+
+
+
+

Blazing Fast

+

Optimized for performance from the ground up.

+
+
+
🔒
+

Secure

+

Enterprise-grade security built into every layer.

+
+
+
🌍
+

Global Scale

+

Deploy anywhere with our global infrastructure.

+
+
+
🎨
+

Customizable

+

Tailor every aspect to your brand and needs.

+
+
+
+
+
+
+

Pricing

+
+
+

Starter

+

$9/mo

+
    +
  • Up to 5 projects
  • +
  • Basic analytics
  • +
  • Email support
  • +
+ Choose Plan +
+ +
+

Enterprise

+

$99/mo

+
    +
  • Everything in Pro
  • +
  • Dedicated support
  • +
  • SLA guarantee
  • +
  • Custom deployment
  • +
+ Contact Sales +
+
+
+
+
+
+

What Our Users Say

+
+
+

"This platform transformed how our team ships features. Absolutely love it."

+ — Sarah K., CTO +
+
+

"The best investment we made this year. The performance gains are incredible."

+ — Michael R., Developer +
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of teams already building with us.

+ Start Free Trial +
+
+ +`; diff --git a/templates/landing/template/webcomponents/src/style.css b/templates/landing/template/webcomponents/src/style.css new file mode 100644 index 00000000000..461e3bb18b2 --- /dev/null +++ b/templates/landing/template/webcomponents/src/style.css @@ -0,0 +1,259 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #080818; + overflow-x: hidden; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 4rem 1rem; + position: relative; +} + +.container { + max-width: 1100px; + width: 100%; + margin: 0 auto; + text-align: center; +} + +h2 { + font-size: 2.5em; + margin-bottom: 3rem; + background: linear-gradient(135deg, #6c5ce7, #00cec9); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +#hero { + min-height: 100vh; + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; + padding: 2rem; +} + +.hero-content h1 { + font-size: 4em; + line-height: 1.1; + margin-bottom: 1rem; +} + +.gradient-text { + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.3em; + opacity: 0.7; + margin-bottom: 2rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.btn { + padding: 0.8em 2em; + font-size: 1.1em; + font-weight: 600; + border-radius: 8px; + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-block; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 20px rgba(108, 92, 231, 0.4); +} + +.btn-primary { + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; +} + +.btn-secondary { + background: rgba(255, 255, 255, 0.1); + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.btn-large { + padding: 1em 3em; + font-size: 1.2em; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: transform 0.3s, border-color 0.3s; +} + +.feature-card:hover { + transform: translateY(-6px); + border-color: #6c5ce7; +} + +.feature-icon { + font-size: 2.5em; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin-bottom: 0.5rem; +} + +.feature-card p { + opacity: 0.7; + font-size: 0.95em; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + align-items: center; +} + +.pricing-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2.5rem 2rem; + text-align: center; +} + +.pricing-card.featured { + border-color: #6c5ce7; + background: rgba(108, 92, 231, 0.08); + transform: scale(1.05); +} + +.price { + font-size: 3em; + font-weight: 700; + margin: 1rem 0; +} + +.price span { + font-size: 0.4em; + opacity: 0.5; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + margin: 1.5rem 0; +} + +.pricing-card li { + padding: 0.4em 0; + opacity: 0.8; +} + +.pricing-card li::before { + content: "✓ "; + color: #00cec9; +} + +.testimonial-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.testimonial-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 16px; + padding: 2rem; + text-align: left; +} + +.testimonial-card p { + font-style: italic; + font-size: 1.1em; + line-height: 1.6; + margin-bottom: 1rem; +} + +.author { + opacity: 0.6; + font-size: 0.9em; +} + +.cta-content h2 { + margin-bottom: 1rem; +} + +.cta-content p { + font-size: 1.2em; + opacity: 0.7; + margin-bottom: 2rem; +} + +#footer { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding: 2rem 1rem; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.footer-content p { + opacity: 0.5; + font-size: 0.9em; +} + +.footer-links { + display: flex; + gap: 1.5rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.6); + text-decoration: none; + font-size: 0.9em; +} + +.footer-links a:hover { + color: #6c5ce7; +} diff --git a/templates/login/CHANGELOG.md b/templates/login/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/login/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/login/LICENSE b/templates/login/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/login/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/login/README.md b/templates/login/README.md new file mode 100644 index 00000000000..d572259e688 --- /dev/null +++ b/templates/login/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-login + +tsParticles login page template. Use with `create-tsparticles-app` to scaffold a new login page project with animated particle background. diff --git a/templates/login/package.json b/templates/login/package.json new file mode 100644 index 00000000000..68f9e75ca05 --- /dev/null +++ b/templates/login/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-login", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/login/scripts/prebuild.js b/templates/login/scripts/prebuild.js new file mode 100644 index 00000000000..bfd3e6dbe76 --- /dev/null +++ b/templates/login/scripts/prebuild.js @@ -0,0 +1,65 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, + "@tsparticles/configs": require("../../../utils/configs/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/login/template.json b/templates/login/template.json new file mode 100644 index 00000000000..c70f3f52a8e --- /dev/null +++ b/templates/login/template.json @@ -0,0 +1,13 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/login/template/angular-confetti/package.json b/templates/login/template/angular-confetti/package.json new file mode 100644 index 00000000000..ac1b750cd14 --- /dev/null +++ b/templates/login/template/angular-confetti/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-confetti": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/login/template/angular-confetti/src/app/app.component.css b/templates/login/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/angular-confetti/src/app/app.component.html b/templates/login/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..5382bd7efc2 --- /dev/null +++ b/templates/login/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,32 @@ + + +
+
+
+

{{ isLogin ? 'Login' : 'Register' }}

+ +
+
+
+ + + {{ emailErr }} +
+
+ + + {{ passErr }} +
+
+ + + {{ confirmErr }} +
+ +
+

+ {{ isLogin ? "Don't have an account?" : 'Already have an account?' }} + {{ isLogin ? 'Register' : 'Login' }} +

+
+
diff --git a/templates/login/template/angular-confetti/src/app/app.component.ts b/templates/login/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..5fbdb0b8145 --- /dev/null +++ b/templates/login/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,105 @@ +import { Component, OnInit } from "@angular/core"; +import { NgxConfettiService } from "angular-confetti"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + isLogin = true; + theme = localStorage.getItem("theme") || "dark"; + email = ""; + password = ""; + confirm = ""; + emailErr = ""; + passErr = ""; + confirmErr = ""; + + constructor(private readonly confettiService: NgxConfettiService) {} + + options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + document.documentElement.setAttribute("data-theme", this.theme); + void this.confettiService.init(async (engine) => { + await loadSlim(engine); + }); + } + + toggleTheme(): void { + this.theme = this.theme === "dark" ? "light" : "dark"; + document.documentElement.setAttribute("data-theme", this.theme); + localStorage.setItem("theme", this.theme); + } + + private validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); + } + + onSubmit(): void { + let valid = true; + + if (!this.email || !this.validateEmail(this.email)) { + this.emailErr = "Please enter a valid email address"; + valid = false; + } else { + this.emailErr = ""; + } + + if (!this.password || this.password.length < 6) { + this.passErr = "Password must be at least 6 characters"; + valid = false; + } else { + this.passErr = ""; + } + + if (!this.isLogin) { + if (this.password !== this.confirm) { + this.confirmErr = "Passwords do not match"; + valid = false; + } else { + this.confirmErr = ""; + } + } + + if (!valid) return; + + if (this.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.isLogin = true; + } + + this.email = ""; + this.password = ""; + this.confirm = ""; + } + + toggleMode(event: Event): void { + event.preventDefault(); + this.isLogin = !this.isLogin; + this.emailErr = ""; + this.passErr = ""; + this.confirmErr = ""; + } +} diff --git a/templates/login/template/angular-confetti/src/app/app.module.ts b/templates/login/template/angular-confetti/src/app/app.module.ts new file mode 100644 index 00000000000..5c0b27d82f8 --- /dev/null +++ b/templates/login/template/angular-confetti/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { FormsModule } from "@angular/forms"; +import { NgxConfettiModule } from "angular-confetti"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, FormsModule, NgxConfettiModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/login/template/angular-fireworks/package.json b/templates/login/template/angular-fireworks/package.json new file mode 100644 index 00000000000..eaaec658bd3 --- /dev/null +++ b/templates/login/template/angular-fireworks/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-fireworks": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/login/template/angular-fireworks/src/app/app.component.css b/templates/login/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/angular-fireworks/src/app/app.component.html b/templates/login/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..55ca3d53ce9 --- /dev/null +++ b/templates/login/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,32 @@ + + +
+
+
+

{{ isLogin ? 'Login' : 'Register' }}

+ +
+
+
+ + + {{ emailErr }} +
+
+ + + {{ passErr }} +
+
+ + + {{ confirmErr }} +
+ +
+

+ {{ isLogin ? "Don't have an account?" : 'Already have an account?' }} + {{ isLogin ? 'Register' : 'Login' }} +

+
+
diff --git a/templates/login/template/angular-fireworks/src/app/app.component.ts b/templates/login/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..0925e6e9c42 --- /dev/null +++ b/templates/login/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,105 @@ +import { Component, OnInit } from "@angular/core"; +import { NgxFireworksService } from "angular-fireworks"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + isLogin = true; + theme = localStorage.getItem("theme") || "dark"; + email = ""; + password = ""; + confirm = ""; + emailErr = ""; + passErr = ""; + confirmErr = ""; + + constructor(private readonly fireworksService: NgxFireworksService) {} + + options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + document.documentElement.setAttribute("data-theme", this.theme); + void this.fireworksService.init(async (engine) => { + await loadSlim(engine); + }); + } + + toggleTheme(): void { + this.theme = this.theme === "dark" ? "light" : "dark"; + document.documentElement.setAttribute("data-theme", this.theme); + localStorage.setItem("theme", this.theme); + } + + private validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); + } + + onSubmit(): void { + let valid = true; + + if (!this.email || !this.validateEmail(this.email)) { + this.emailErr = "Please enter a valid email address"; + valid = false; + } else { + this.emailErr = ""; + } + + if (!this.password || this.password.length < 6) { + this.passErr = "Password must be at least 6 characters"; + valid = false; + } else { + this.passErr = ""; + } + + if (!this.isLogin) { + if (this.password !== this.confirm) { + this.confirmErr = "Passwords do not match"; + valid = false; + } else { + this.confirmErr = ""; + } + } + + if (!valid) return; + + if (this.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.isLogin = true; + } + + this.email = ""; + this.password = ""; + this.confirm = ""; + } + + toggleMode(event: Event): void { + event.preventDefault(); + this.isLogin = !this.isLogin; + this.emailErr = ""; + this.passErr = ""; + this.confirmErr = ""; + } +} diff --git a/templates/login/template/angular-fireworks/src/app/app.module.ts b/templates/login/template/angular-fireworks/src/app/app.module.ts new file mode 100644 index 00000000000..9ead2204cf4 --- /dev/null +++ b/templates/login/template/angular-fireworks/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { FormsModule } from "@angular/forms"; +import { NgxFireworksModule } from "angular-fireworks"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, FormsModule, NgxFireworksModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/login/template/angular/package.json b/templates/login/template/angular/package.json new file mode 100644 index 00000000000..41b649f36b2 --- /dev/null +++ b/templates/login/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/slim": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/login/template/angular/src/app/app.component.css b/templates/login/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/angular/src/app/app.component.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/angular/src/app/app.component.html b/templates/login/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..1602b5b23b0 --- /dev/null +++ b/templates/login/template/angular/src/app/app.component.html @@ -0,0 +1,32 @@ + + +
+
+
+

{{ isLogin ? 'Login' : 'Register' }}

+ +
+
+
+ + + {{ emailErr }} +
+
+ + + {{ passErr }} +
+
+ + + {{ confirmErr }} +
+ +
+

+ {{ isLogin ? "Don't have an account?" : 'Already have an account?' }} + {{ isLogin ? 'Register' : 'Login' }} +

+
+
diff --git a/templates/login/template/angular/src/app/app.component.ts b/templates/login/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..e342e49deca --- /dev/null +++ b/templates/login/template/angular/src/app/app.component.ts @@ -0,0 +1,105 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + isLogin = true; + theme = localStorage.getItem("theme") || "dark"; + email = ""; + password = ""; + confirm = ""; + emailErr = ""; + passErr = ""; + confirmErr = ""; + + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + document.documentElement.setAttribute("data-theme", this.theme); + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } + + toggleTheme(): void { + this.theme = this.theme === "dark" ? "light" : "dark"; + document.documentElement.setAttribute("data-theme", this.theme); + localStorage.setItem("theme", this.theme); + } + + private validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); + } + + onSubmit(): void { + let valid = true; + + if (!this.email || !this.validateEmail(this.email)) { + this.emailErr = "Please enter a valid email address"; + valid = false; + } else { + this.emailErr = ""; + } + + if (!this.password || this.password.length < 6) { + this.passErr = "Password must be at least 6 characters"; + valid = false; + } else { + this.passErr = ""; + } + + if (!this.isLogin) { + if (this.password !== this.confirm) { + this.confirmErr = "Passwords do not match"; + valid = false; + } else { + this.confirmErr = ""; + } + } + + if (!valid) return; + + if (this.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.isLogin = true; + } + + this.email = ""; + this.password = ""; + this.confirm = ""; + } + + toggleMode(event: Event): void { + event.preventDefault(); + this.isLogin = !this.isLogin; + this.emailErr = ""; + this.passErr = ""; + this.confirmErr = ""; + } +} diff --git a/templates/login/template/angular/src/app/app.module.ts b/templates/login/template/angular/src/app/app.module.ts new file mode 100644 index 00000000000..859ce7b748d --- /dev/null +++ b/templates/login/template/angular/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { FormsModule } from "@angular/forms"; +import { NgxParticlesModule } from "@tsparticles/angular"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, FormsModule, NgxParticlesModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/login/template/astro/package.json b/templates/login/template/astro/package.json new file mode 100644 index 00000000000..57be4277dcf --- /dev/null +++ b/templates/login/template/astro/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "@astrojs/check": "^0.9.4", + "astro": "^5.7.10", + "@tsparticles/astro": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/login/template/astro/src/pages/index.astro b/templates/login/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..6d8a176cd6f --- /dev/null +++ b/templates/login/template/astro/src/pages/index.astro @@ -0,0 +1,173 @@ +--- +import { initParticlesEngine } from "@tsparticles/astro"; +import { loadSlim } from "@tsparticles/slim"; + +const id = "tsparticles"; +--- + + + + + {{projectName}} + + + +
+
+
+

Login

+ +
+
+
+ + + +
+
+ + + +
+ + +
+

+ Don't have an account? + Register +

+
+
+ + + + diff --git a/templates/login/template/ember/app/templates/application.hbs b/templates/login/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..66c1dfa6ce7 --- /dev/null +++ b/templates/login/template/ember/app/templates/application.hbs @@ -0,0 +1,61 @@ +
+
+ +
+
+
+

{{if this.isLogin "Login" "Register"}}

+ +
+
+
+ + + {{this.emailErr}} +
+
+ + + {{this.passErr}} +
+ {{#unless this.isLogin}} +
+ + + {{this.confirmErr}} +
+ {{/unless}} + +
+

+ {{if this.isLogin "Don't have an account?" "Already have an account?"}} + {{if this.isLogin "Register" "Login"}} +

+
+
+ +{{outlet}} + + diff --git a/templates/login/template/ember/package.json b/templates/login/template/ember/package.json new file mode 100644 index 00000000000..c1517087a14 --- /dev/null +++ b/templates/login/template/ember/package.json @@ -0,0 +1,42 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve" + }, + "devDependencies": { + "@ember/optional-features": "^3.0.0", + "@glimmer/component": "^2.1.1", + "@glimmer/tracking": "^1.1.2", + "broccoli-asset-rev": "^3.0.0", + "ember-auto-import": "^2.13.1", + "ember-cli": "~6.12.0", + "ember-cli-babel": "^8.3.1", + "ember-cli-htmlbars": "^7.0.1", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-cli-sri": "^2.1.1", + "ember-cli-terser": "^4.0.2", + "ember-load-initializers": "^3.0.1", + "ember-modifier": "^4.3.0", + "ember-resolver": "^13.2.0", + "ember-source": "~6.12.0", + "loader.js": "^4.7.0", + "typescript": "^6.0.3", + "webpack": "^5.106.1" + }, + "dependencies": { + "@tsparticles/ember": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/templates/login/template/inferno/package.json b/templates/login/template/inferno/package.json new file mode 100644 index 00000000000..03ecc33c4f7 --- /dev/null +++ b/templates/login/template/inferno/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^9.1.0", + "@tsparticles/inferno": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14", + "babel-plugin-inferno": "^6.8.5", + "vite-plugin-inferno": "^2.0.1" + } +} diff --git a/templates/login/template/inferno/src/App.css b/templates/login/template/inferno/src/App.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/inferno/src/App.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/inferno/src/App.tsx b/templates/login/template/inferno/src/App.tsx new file mode 100644 index 00000000000..8d9c9d96d99 --- /dev/null +++ b/templates/login/template/inferno/src/App.tsx @@ -0,0 +1,158 @@ +import { Component, type ComponentType } from "inferno"; +import Particles, { ParticlesProvider } from "@tsparticles/inferno"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +interface AppState { + isLogin: boolean; + theme: string; + email: string; + password: string; + confirm: string; + emailErr: string; + passErr: string; + confirmErr: string; +} + +const App: ComponentType> = class App extends Component, AppState> { + constructor(props: Record) { + super(props); + this.state = { + isLogin: true, + theme: localStorage.getItem("theme") || "dark", + email: "", + password: "", + confirm: "", + emailErr: "", + passErr: "", + confirmErr: "", + }; + } + + componentDidMount(): void { + document.documentElement.setAttribute("data-theme", this.state.theme); + } + + componentDidUpdate(): void { + document.documentElement.setAttribute("data-theme", this.state.theme); + } + + private setTheme(t: string): void { + this.setState({ theme: t }); + document.documentElement.setAttribute("data-theme", t); + localStorage.setItem("theme", t); + } + + private toggleTheme = (): void => { + this.setTheme(this.state.theme === "dark" ? "light" : "dark"); + }; + + private handleSubmit = (e: Event): void => { + e.preventDefault(); + let valid = true; + + if (!this.state.email || !validateEmail(this.state.email)) { + this.setState({ emailErr: "Please enter a valid email address" }); + valid = false; + } else { + this.setState({ emailErr: "" }); + } + + if (!this.state.password || this.state.password.length < 6) { + this.setState({ passErr: "Password must be at least 6 characters" }); + valid = false; + } else { + this.setState({ passErr: "" }); + } + + if (!this.state.isLogin) { + if (this.state.password !== this.state.confirm) { + this.setState({ confirmErr: "Passwords do not match" }); + valid = false; + } else { + this.setState({ confirmErr: "" }); + } + } + + if (!valid) return; + + if (this.state.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.setState({ isLogin: true }); + } + + this.setState({ email: "", password: "", confirm: "" }); + }; + + private toggleMode = (e: Event): void => { + e.preventDefault(); + this.setState({ isLogin: !this.state.isLogin, emailErr: "", passErr: "", confirmErr: "" }); + }; + + render() { + return ( + => { await loadSlim(engine); }}> +
+
+
+

{this.state.isLogin ? "Login" : "Register"}

+ +
+
+
+ + this.setState({ email: (e.target as HTMLInputElement).value })} required /> + {this.state.emailErr} +
+
+ + this.setState({ password: (e.target as HTMLInputElement).value })} required /> + {this.state.passErr} +
+ {!this.state.isLogin && ( +
+ + this.setState({ confirm: (e.target as HTMLInputElement).value })} /> + {this.state.confirmErr} +
+ )} + +
+

+ {this.state.isLogin ? "Don't have an account?" : "Already have an account?"} + {this.state.isLogin ? "Register" : "Login"} +

+
+
+ +
+ ); + } +}; + +export default App; diff --git a/templates/login/template/jquery/package.json b/templates/login/template/jquery/package.json new file mode 100644 index 00000000000..252efc119ec --- /dev/null +++ b/templates/login/template/jquery/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/jquery": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/jquery/src/main.ts b/templates/login/template/jquery/src/main.ts new file mode 100644 index 00000000000..79da3e7f620 --- /dev/null +++ b/templates/login/template/jquery/src/main.ts @@ -0,0 +1,110 @@ +import $ from "jquery"; +import "@tsparticles/jquery"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import "./style.css"; + +let isLogin = true; + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +function setTheme(theme: string): void { + document.documentElement.setAttribute("data-theme", theme); + $("#themeToggle").text(theme === "dark" ? "🌙" : "☀️"); + localStorage.setItem("theme", theme); +} + +const savedTheme = localStorage.getItem("theme") || "dark"; +setTheme(savedTheme); + +$("#themeToggle").on("click", () => { + const current = document.documentElement.getAttribute("data-theme") || "dark"; + setTheme(current === "dark" ? "light" : "dark"); +}); + +function validate(): boolean { + let valid = true; + + const email = $("#email").val() as string; + const password = $("#password").val() as string; + const confirm = $("#confirmPassword").val() as string; + + if (!email || !validateEmail(email)) { + $("#emailError").text("Please enter a valid email address"); + valid = false; + } else { + $("#emailError").text(""); + } + + if (!password || password.length < 6) { + $("#passwordError").text("Password must be at least 6 characters"); + valid = false; + } else { + $("#passwordError").text(""); + } + + if (!isLogin && password !== confirm) { + $("#confirmError").text("Passwords do not match"); + valid = false; + } else { + $("#confirmError").text(""); + } + + return valid; +} + +function toggleMode(): void { + isLogin = !isLogin; + $("#authTitle").text(isLogin ? "Login" : "Register"); + $("#submitBtn").text(isLogin ? "Sign In" : "Create Account"); + $("#toggleLabel").text(isLogin ? "Don't have an account?" : "Already have an account?"); + $("#toggleAuth").text(isLogin ? "Register" : "Login"); + $("#confirmGroup").toggle(!isLogin); + $("#emailError").text(""); + $("#passwordError").text(""); + $("#confirmError").text(""); +} + +$("#toggleAuth").on("click", (e) => { + e.preventDefault(); + toggleMode(); +}); + +$("#authForm").on("submit", (e) => { + e.preventDefault(); + + if (!validate()) return; + + if (isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + toggleMode(); + } + + $("#authForm")[0].reset(); +}); + +(async () => { + await loadSlim(tsParticles); + + $("#tsparticles").particles().load({ + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, + }); +})(); diff --git a/templates/login/template/jquery/src/style.css b/templates/login/template/jquery/src/style.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/jquery/src/style.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/lit/package.json b/templates/login/template/lit/package.json new file mode 100644 index 00000000000..3946dc8c3d4 --- /dev/null +++ b/templates/login/template/lit/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.5.0", + "@tsparticles/lit": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/lit/src/my-app.ts b/templates/login/template/lit/src/my-app.ts new file mode 100644 index 00000000000..11269970bba --- /dev/null +++ b/templates/login/template/lit/src/my-app.ts @@ -0,0 +1,143 @@ +import { LitElement, html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +@customElement("my-app") +export class MyApp extends LitElement { + @state() private isLogin = true; + @state() private theme = localStorage.getItem("theme") || "dark"; + @state() private email = ""; + @state() private password = ""; + @state() private confirm = ""; + @state() private emailErr = ""; + @state() private passErr = ""; + @state() private confirmErr = ""; + + connectedCallback(): void { + super.connectedCallback(); + document.documentElement.setAttribute("data-theme", this.theme); + } + + private setTheme(t: string): void { + this.theme = t; + document.documentElement.setAttribute("data-theme", t); + localStorage.setItem("theme", t); + } + + private toggleTheme(): void { + this.setTheme(this.theme === "dark" ? "light" : "dark"); + } + + private handleSubmit(e: Event): void { + e.preventDefault(); + let valid = true; + + if (!this.email || !validateEmail(this.email)) { + this.emailErr = "Please enter a valid email address"; + valid = false; + } else { + this.emailErr = ""; + } + + if (!this.password || this.password.length < 6) { + this.passErr = "Password must be at least 6 characters"; + valid = false; + } else { + this.passErr = ""; + } + + if (!this.isLogin) { + if (this.password !== this.confirm) { + this.confirmErr = "Passwords do not match"; + valid = false; + } else { + this.confirmErr = ""; + } + } + + if (!valid) return; + + if (this.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.isLogin = true; + } + + this.email = ""; + this.password = ""; + this.confirm = ""; + } + + private toggleMode(e: Event): void { + e.preventDefault(); + this.isLogin = !this.isLogin; + this.emailErr = ""; + this.passErr = ""; + this.confirmErr = ""; + } + + render() { + return html` + +
+
+
+

${this.isLogin ? "Login" : "Register"}

+ +
+
+
+ + { this.email = (e.target as HTMLInputElement).value; }} required /> + ${this.emailErr} +
+
+ + { this.password = (e.target as HTMLInputElement).value; }} required /> + ${this.passErr} +
+ ${!this.isLogin ? html` +
+ + { this.confirm = (e.target as HTMLInputElement).value; }} /> + ${this.confirmErr} +
+ ` : ""} + +
+

+ ${this.isLogin ? "Don't have an account?" : "Already have an account?"} + ${this.isLogin ? "Register" : "Login"} +

+
+
+ `; + } + + createRenderRoot() { + return this; + } +} diff --git a/templates/login/template/nextjs/package.json b/templates/login/template/nextjs/package.json new file mode 100644 index 00000000000..0dd5c718a7a --- /dev/null +++ b/templates/login/template/nextjs/package.json @@ -0,0 +1,25 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "preview": "next start" + }, + "dependencies": { + "next": "^15.3.2", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/nextjs": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "@types/node": "^22.15.3", + "@types/react": "^19.1.4", + "@types/react-dom": "^19.1.3" + } +} diff --git a/templates/login/template/nextjs/src/app/page.tsx b/templates/login/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..e3f0df06eab --- /dev/null +++ b/templates/login/template/nextjs/src/app/page.tsx @@ -0,0 +1,168 @@ +"use client"; + +import { useState, useEffect } from "react"; +import { NextParticles } from "@tsparticles/nextjs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(email: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(email); +} + +export default function Home() { + const [theme, setTheme] = useState("dark"); + const [isLogin, setIsLogin] = useState(true); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [confirm, setConfirm] = useState(""); + const [emailErr, setEmailErr] = useState(""); + const [passErr, setPassErr] = useState(""); + const [confirmErr, setConfirmErr] = useState(""); + + useEffect(() => { + const saved = localStorage.getItem("theme") || "dark"; + setTheme(saved); + document.documentElement.setAttribute("data-theme", saved); + }, []); + + useEffect(() => { + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); + }, [theme]); + + function toggleTheme() { + setTheme((t) => (t === "dark" ? "light" : "dark")); + } + + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + let valid = true; + + if (!email || !validateEmail(email)) { + setEmailErr("Please enter a valid email address"); + valid = false; + } else { + setEmailErr(""); + } + + if (!password || password.length < 6) { + setPassErr("Password must be at least 6 characters"); + valid = false; + } else { + setPassErr(""); + } + + if (!isLogin) { + if (password !== confirm) { + setConfirmErr("Passwords do not match"); + valid = false; + } else { + setConfirmErr(""); + } + } + + if (!valid) return; + + if (isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + setIsLogin(true); + } + + setEmail(""); + setPassword(""); + setConfirm(""); + } + + function toggleMode(e: React.MouseEvent) { + e.preventDefault(); + setIsLogin((m) => !m); + setEmailErr(""); + setPassErr(""); + setConfirmErr(""); + } + + return ( + + + {{projectName}} + + + + +
+
+
+

{isLogin ? "Login" : "Register"}

+ +
+
+
+ + setEmail(e.target.value)} required /> + {emailErr} +
+
+ + setPassword(e.target.value)} required /> + {passErr} +
+ {!isLogin && ( +
+ + setConfirm(e.target.value)} /> + {confirmErr} +
+ )} + +
+

+ {isLogin ? "Don't have an account?" : "Already have an account?"} + {isLogin ? "Register" : "Login"} +

+
+
+ + + ); +} diff --git a/templates/login/template/nextjs/src/app/providers.tsx b/templates/login/template/nextjs/src/app/providers.tsx new file mode 100644 index 00000000000..8aeb84e04cf --- /dev/null +++ b/templates/login/template/nextjs/src/app/providers.tsx @@ -0,0 +1,13 @@ +"use client"; + +import { NextParticlesProvider } from "@tsparticles/nextjs"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +export default function Providers({ children }: { children: React.ReactNode }) { + return ( + => { await loadSlim(engine); }}> + {children} + + ); +} diff --git a/templates/login/template/nuxt2/package.json b/templates/login/template/nuxt2/package.json new file mode 100644 index 00000000000..479d12e465a --- /dev/null +++ b/templates/login/template/nuxt2/package.json @@ -0,0 +1,17 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "preview": "nuxt start" + }, + "dependencies": { + "nuxt": "^2.18.1", + "@tsparticles/nuxt2": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + } +} diff --git a/templates/login/template/nuxt2/pages/index.vue b/templates/login/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..d8491a45d91 --- /dev/null +++ b/templates/login/template/nuxt2/pages/index.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/templates/login/template/nuxt3/app.vue b/templates/login/template/nuxt3/app.vue new file mode 100644 index 00000000000..6825b6c0d6e --- /dev/null +++ b/templates/login/template/nuxt3/app.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/templates/login/template/nuxt3/package.json b/templates/login/template/nuxt3/package.json new file mode 100644 index 00000000000..83dd6b0a86a --- /dev/null +++ b/templates/login/template/nuxt3/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.17.3", + "@tsparticles/nuxt3": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/login/template/nuxt4/app.vue b/templates/login/template/nuxt4/app.vue new file mode 100644 index 00000000000..6825b6c0d6e --- /dev/null +++ b/templates/login/template/nuxt4/app.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/templates/login/template/nuxt4/package.json b/templates/login/template/nuxt4/package.json new file mode 100644 index 00000000000..2e72a68a0ff --- /dev/null +++ b/templates/login/template/nuxt4/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.4.2", + "@tsparticles/nuxt4": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/login/template/preact/package.json b/templates/login/template/preact/package.json new file mode 100644 index 00000000000..f4716129065 --- /dev/null +++ b/templates/login/template/preact/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.19.3", + "@tsparticles/preact": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.8.1", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/preact/src/App.css b/templates/login/template/preact/src/App.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/preact/src/App.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/preact/src/App.tsx b/templates/login/template/preact/src/App.tsx new file mode 100644 index 00000000000..b9cfd1bba6a --- /dev/null +++ b/templates/login/template/preact/src/App.tsx @@ -0,0 +1,140 @@ +import { useState, useEffect } from "preact/hooks"; +import Particles, { initParticlesEngine } from "@tsparticles/preact"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(email: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(email); +} + +export default function App() { + const [theme, setTheme] = useState(() => localStorage.getItem("theme") || "dark"); + const [isLogin, setIsLogin] = useState(true); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [confirm, setConfirm] = useState(""); + const [emailErr, setEmailErr] = useState(""); + const [passErr, setPassErr] = useState(""); + const [confirmErr, setConfirmErr] = useState(""); + + useEffect(() => { + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); + }, [theme]); + + useEffect(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }, []); + + function toggleTheme() { + setTheme((t) => (t === "dark" ? "light" : "dark")); + } + + function handleSubmit(e: Event) { + e.preventDefault(); + let valid = true; + + if (!email || !validateEmail(email)) { + setEmailErr("Please enter a valid email address"); + valid = false; + } else { + setEmailErr(""); + } + + if (!password || password.length < 6) { + setPassErr("Password must be at least 6 characters"); + valid = false; + } else { + setPassErr(""); + } + + if (!isLogin) { + if (password !== confirm) { + setConfirmErr("Passwords do not match"); + valid = false; + } else { + setConfirmErr(""); + } + } + + if (!valid) return; + + if (isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + setIsLogin(true); + } + + setEmail(""); + setPassword(""); + setConfirm(""); + } + + function toggleMode(e: Event) { + e.preventDefault(); + setIsLogin((m) => !m); + setEmailErr(""); + setPassErr(""); + setConfirmErr(""); + } + + return ( +
+
+
+
+

{isLogin ? "Login" : "Register"}

+ +
+
+
+ + setEmail(e.currentTarget.value)} required /> + {emailErr} +
+
+ + setPassword(e.currentTarget.value)} required /> + {passErr} +
+ {!isLogin && ( +
+ + setConfirm(e.currentTarget.value)} /> + {confirmErr} +
+ )} + +
+

+ {isLogin ? "Don't have an account?" : "Already have an account?"} + {isLogin ? "Register" : "Login"} +

+
+
+ +
+ ); +} diff --git a/templates/login/template/qwik/package.json b/templates/login/template/qwik/package.json new file mode 100644 index 00000000000..6f2a30e0687 --- /dev/null +++ b/templates/login/template/qwik/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/qwik": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/qwik/src/App.tsx b/templates/login/template/qwik/src/App.tsx new file mode 100644 index 00000000000..10a01cc1859 --- /dev/null +++ b/templates/login/template/qwik/src/App.tsx @@ -0,0 +1,139 @@ +import { component$, useVisibleTask$, useSignal, $ } from "@builder.io/qwik"; +import { Particles, initParticlesEngine } from "@tsparticles/qwik"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +export default component$(() => { + const isLogin = useSignal(true); + const theme = useSignal("dark"); + const email = useSignal(""); + const password = useSignal(""); + const confirm = useSignal(""); + const emailErr = useSignal(""); + const passErr = useSignal(""); + const confirmErr = useSignal(""); + + // eslint-disable-next-line qwik/no-use-visible-task + useVisibleTask$(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + theme.value = localStorage.getItem("theme") || "dark"; + document.documentElement.setAttribute("data-theme", theme.value); + }); + + const toggleTheme = $(() => { + theme.value = theme.value === "dark" ? "light" : "dark"; + document.documentElement.setAttribute("data-theme", theme.value); + localStorage.setItem("theme", theme.value); + }); + + const handleSubmit = $((e: Event) => { + e.preventDefault(); + let valid = true; + + if (!email.value || !validateEmail(email.value)) { + emailErr.value = "Please enter a valid email address"; + valid = false; + } else { + emailErr.value = ""; + } + + if (!password.value || password.value.length < 6) { + passErr.value = "Password must be at least 6 characters"; + valid = false; + } else { + passErr.value = ""; + } + + if (!isLogin.value) { + if (password.value !== confirm.value) { + confirmErr.value = "Passwords do not match"; + valid = false; + } else { + confirmErr.value = ""; + } + } + + if (!valid) return; + + if (isLogin.value) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + isLogin.value = true; + } + + email.value = ""; + password.value = ""; + confirm.value = ""; + }); + + const toggleMode = $((e: Event) => { + e.preventDefault(); + isLogin.value = !isLogin.value; + emailErr.value = ""; + passErr.value = ""; + confirmErr.value = ""; + }); + + return ( +
+
+
+
+

{isLogin.value ? "Login" : "Register"}

+ +
+
+
+ + { email.value = (e.target as HTMLInputElement).value; }} required /> + {emailErr.value} +
+
+ + { password.value = (e.target as HTMLInputElement).value; }} required /> + {passErr.value} +
+ {!isLogin.value && ( +
+ + { confirm.value = (e.target as HTMLInputElement).value; }} /> + {confirmErr.value} +
+ )} + +
+

+ {isLogin.value ? "Don't have an account?" : "Already have an account?"} + {isLogin.value ? "Register" : "Login"} +

+
+
+ +
+ ); +}); diff --git a/templates/login/template/react/package.json b/templates/login/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/login/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/login/template/react/src/App.css b/templates/login/template/react/src/App.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/react/src/App.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/react/src/App.tsx b/templates/login/template/react/src/App.tsx new file mode 100644 index 00000000000..4ab1330d08f --- /dev/null +++ b/templates/login/template/react/src/App.tsx @@ -0,0 +1,140 @@ +import { useState, useEffect } from "react"; +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(email: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(email); +} + +export default function App() { + const [theme, setTheme] = useState(() => localStorage.getItem("theme") || "dark"); + const [loginMode, setLoginMode] = useState(true); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [confirm, setConfirm] = useState(""); + const [emailErr, setEmailErr] = useState(""); + const [passErr, setPassErr] = useState(""); + const [confirmErr, setConfirmErr] = useState(""); + + useEffect(() => { + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); + }, [theme]); + + function toggleTheme() { + setTheme((t) => (t === "dark" ? "light" : "dark")); + } + + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + let valid = true; + + if (!email || !validateEmail(email)) { + setEmailErr("Please enter a valid email address"); + valid = false; + } else { + setEmailErr(""); + } + + if (!password || password.length < 6) { + setPassErr("Password must be at least 6 characters"); + valid = false; + } else { + setPassErr(""); + } + + if (!loginMode) { + if (password !== confirm) { + setConfirmErr("Passwords do not match"); + valid = false; + } else { + setConfirmErr(""); + } + } + + if (!valid) return; + + if (loginMode) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + setLoginMode(true); + } + + setEmail(""); + setPassword(""); + setConfirm(""); + } + + function toggleMode(e: React.MouseEvent) { + e.preventDefault(); + setLoginMode((m) => !m); + setEmailErr(""); + setPassErr(""); + setConfirmErr(""); + } + + return ( + + +
+
+
+

{loginMode ? "Login" : "Register"}

+ +
+
+
+ + setEmail(e.target.value)} required /> + {emailErr} +
+
+ + setPassword(e.target.value)} required /> + {passErr} +
+ {!loginMode && ( +
+ + setConfirm(e.target.value)} /> + {confirmErr} +
+ )} + +
+

+ {loginMode ? "Don't have an account?" : "Already have an account?"} + {loginMode ? "Register" : "Login"} +

+
+
+
+ ); +} diff --git a/templates/login/template/riot/package.json b/templates/login/template/riot/package.json new file mode 100644 index 00000000000..e4cc7d6d75c --- /dev/null +++ b/templates/login/template/riot/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^10.0.0", + "@tsparticles/riot": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@riotjs/compiler": "^10.0.0", + "rollup-plugin-riot": "^10.0.0", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/riot/src/app.riot b/templates/login/template/riot/src/app.riot new file mode 100644 index 00000000000..5e0c4a5c973 --- /dev/null +++ b/templates/login/template/riot/src/app.riot @@ -0,0 +1,156 @@ + +
+
+
+

{ state.isLogin ? 'Login' : 'Register' }

+ +
+
+
+ + + { state.emailErr } +
+
+ + + { state.passErr } +
+
+ + + { state.confirmErr } +
+ +
+

+ { state.isLogin ? "Don't have an account?" : 'Already have an account?' } + { state.isLogin ? 'Register' : 'Login' } +

+
+
+ + + + + +
diff --git a/templates/login/template/solid/package.json b/templates/login/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/login/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/login/template/solid/src/App.tsx b/templates/login/template/solid/src/App.tsx new file mode 100644 index 00000000000..d36811c14c2 --- /dev/null +++ b/templates/login/template/solid/src/App.tsx @@ -0,0 +1,169 @@ +import { createSignal, createEffect, onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + const [isLogin, setIsLogin] = createSignal(true); + const [theme, setTheme] = createSignal(localStorage.getItem("theme") || "dark"); + const [email, setEmail] = createSignal(""); + const [password, setPassword] = createSignal(""); + const [confirm, setConfirm] = createSignal(""); + const [emailError, setEmailError] = createSignal(""); + const [passwordError, setPasswordError] = createSignal(""); + const [confirmError, setConfirmError] = createSignal(""); + + createEffect(() => { + document.documentElement.setAttribute("data-theme", theme()); + }); + + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { + enable: true, + speed: 1, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "bubble" }, + }, + modes: { + bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 }, + }, + }, + detectRetina: true, + }; + + function validateEmail(value: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(value); + } + + function handleSubmit(e: Event) { + e.preventDefault(); + let valid = true; + + if (!email() || !validateEmail(email())) { + setEmailError("Please enter a valid email address"); + valid = false; + } else { + setEmailError(""); + } + + if (!password() || password().length < 6) { + setPasswordError("Password must be at least 6 characters"); + valid = false; + } else { + setPasswordError(""); + } + + if (!isLogin() && password() !== confirm()) { + setConfirmError("Passwords do not match"); + valid = false; + } else { + setConfirmError(""); + } + + if (!valid) return; + + if (isLogin()) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + setIsLogin(true); + } + + setEmail(""); + setPassword(""); + setConfirm(""); + } + + function toggleMode() { + setIsLogin(!isLogin()); + setEmailError(""); + setPasswordError(""); + setConfirmError(""); + } + + function toggleTheme() { + setTheme(theme() === "dark" ? "light" : "dark"); + localStorage.setItem("theme", theme()); + } + + return ( + <> +
+
+
+

{isLogin() ? "Login" : "Register"}

+ +
+
+
+ + setEmail(e.currentTarget.value)} + required + /> + {emailError()} +
+
+ + setPassword(e.currentTarget.value)} + required + /> + {passwordError()} +
+
+ + setConfirm(e.currentTarget.value)} + /> + {confirmError()} +
+ +
+

+ {isLogin() ? "Don't have an account?" : "Already have an account?"} + { e.preventDefault(); toggleMode(); }}> + {isLogin() ? "Register" : "Login"} + +

+
+
+ + + ); +} diff --git a/templates/login/template/solid/src/index.css b/templates/login/template/solid/src/index.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/solid/src/index.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/solid/src/main.tsx b/templates/login/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/login/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/login/template/stencil/package.json b/templates/login/template/stencil/package.json new file mode 100644 index 00000000000..247c87a9d5d --- /dev/null +++ b/templates/login/template/stencil/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "stencil build --dev --watch --serve", + "build": "stencil build", + "preview": "stencil build --serve" + }, + "dependencies": { + "@stencil/core": "^4.43.5", + "@tsparticles/stencil": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/login/template/stencil/src/components/app-home/app-home.tsx b/templates/login/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..1bfd303dde2 --- /dev/null +++ b/templates/login/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,164 @@ +import { Component, State, h, type JSX } from "@stencil/core"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + shadow: true, +}) +export class AppHome { + @State() isLogin = true; + @State() theme = localStorage.getItem("theme") || "dark"; + @State() email = ""; + @State() password = ""; + @State() confirm = ""; + @State() emailErr = ""; + @State() passErr = ""; + @State() confirmErr = ""; + + componentDidLoad(): void { + document.documentElement.setAttribute("data-theme", this.theme); + } + + private async particlesInit(engine: Engine): Promise { + await loadSlim(engine); + } + + private setTheme(t: string): void { + this.theme = t; + document.documentElement.setAttribute("data-theme", t); + localStorage.setItem("theme", t); + } + + private toggleTheme = (): void => { + this.setTheme(this.theme === "dark" ? "light" : "dark"); + }; + + private handleSubmit = (e: Event): void => { + e.preventDefault(); + let valid = true; + + if (!this.email || !validateEmail(this.email)) { + this.emailErr = "Please enter a valid email address"; + valid = false; + } else { + this.emailErr = ""; + } + + if (!this.password || this.password.length < 6) { + this.passErr = "Password must be at least 6 characters"; + valid = false; + } else { + this.passErr = ""; + } + + if (!this.isLogin) { + if (this.password !== this.confirm) { + this.confirmErr = "Passwords do not match"; + valid = false; + } else { + this.confirmErr = ""; + } + } + + if (!valid) return; + + if (this.isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + this.isLogin = true; + } + + this.email = ""; + this.password = ""; + this.confirm = ""; + }; + + private toggleMode = (e: Event): void => { + e.preventDefault(); + this.isLogin = !this.isLogin; + this.emailErr = ""; + this.passErr = ""; + this.confirmErr = ""; + }; + + private handleEmailInput = (e: InputEvent): void => { + this.email = (e.target as HTMLInputElement).value; + }; + + private handlePasswordInput = (e: InputEvent): void => { + this.password = (e.target as HTMLInputElement).value; + }; + + private handleConfirmInput = (e: InputEvent): void => { + this.confirm = (e.target as HTMLInputElement).value; + }; + + render(): JSX.Element { + return ( +
+
+
+
+

{this.isLogin ? "Login" : "Register"}

+ +
+
+
+ + + {this.emailErr} +
+
+ + + {this.passErr} +
+ {!this.isLogin && ( +
+ + + {this.confirmErr} +
+ )} + +
+

+ {this.isLogin ? "Don't have an account?" : "Already have an account?"} + {this.isLogin ? "Register" : "Login"} +

+
+
+ +
+ ); + } +} diff --git a/templates/login/template/svelte/package.json b/templates/login/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/login/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/login/template/svelte/src/App.svelte b/templates/login/template/svelte/src/App.svelte new file mode 100644 index 00000000000..bf313b36517 --- /dev/null +++ b/templates/login/template/svelte/src/App.svelte @@ -0,0 +1,325 @@ + + +
+
+
+

{isLogin ? "Login" : "Register"}

+ +
+ +
+
+ + + {emailError} +
+ +
+ + + {passwordError} +
+ + {#if !isLogin} +
+ + + {confirmError} +
+ {/if} + + +
+ +
+ {isLogin ? "Don't have an account?" : "Already have an account?"} + {isLogin ? "Register" : "Login"} +
+
+
+ + + + diff --git a/templates/login/template/svelte/src/main.ts b/templates/login/template/svelte/src/main.ts new file mode 100644 index 00000000000..919025c542a --- /dev/null +++ b/templates/login/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/login/template/vanilla/LICENSE b/templates/login/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/login/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/login/template/vanilla/README.md b/templates/login/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/login/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/login/template/vanilla/gitignore b/templates/login/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/login/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/login/template/vanilla/index.html b/templates/login/template/vanilla/index.html new file mode 100644 index 00000000000..04fca06ad8d --- /dev/null +++ b/templates/login/template/vanilla/index.html @@ -0,0 +1,43 @@ + + + + + + {{projectName}} + + +
+
+
+
+

Login

+ +
+
+
+ + + +
+
+ + + +
+ + +
+

+ Don't have an account? + Register +

+
+
+
+ + + diff --git a/templates/login/template/vanilla/package.json b/templates/login/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/login/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/login/template/vanilla/src/main.ts b/templates/login/template/vanilla/src/main.ts new file mode 100644 index 00000000000..b5e086d8d3d --- /dev/null +++ b/templates/login/template/vanilla/src/main.ts @@ -0,0 +1,142 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; + +let isLogin = true; + +const authTitle = document.getElementById("authTitle") as HTMLHeadingElement; +const authForm = document.getElementById("authForm") as HTMLFormElement; +const submitBtn = document.getElementById("submitBtn") as HTMLButtonElement; +const toggleAuth = document.getElementById("toggleAuth") as HTMLAnchorElement; +const toggleLabel = document.getElementById("toggleLabel") as HTMLSpanElement; +const confirmGroup = document.getElementById("confirmGroup") as HTMLDivElement; +const themeToggle = document.getElementById("themeToggle") as HTMLButtonElement; + +const emailInput = document.getElementById("email") as HTMLInputElement; +const passwordInput = document.getElementById("password") as HTMLInputElement; +const confirmInput = document.getElementById("confirmPassword") as HTMLInputElement; + +const emailError = document.getElementById("emailError") as HTMLSpanElement; +const passwordError = document.getElementById("passwordError") as HTMLSpanElement; +const confirmError = document.getElementById("confirmError") as HTMLSpanElement; + +function setTheme(theme: string): void { + document.documentElement.setAttribute("data-theme", theme); + themeToggle.textContent = theme === "dark" ? "🌙" : "☀️"; + localStorage.setItem("theme", theme); +} + +function toggleTheme(): void { + const current = document.documentElement.getAttribute("data-theme") || "dark"; + setTheme(current === "dark" ? "light" : "dark"); +} + +const savedTheme = localStorage.getItem("theme") || "dark"; +setTheme(savedTheme); + +themeToggle.addEventListener("click", toggleTheme); + +function validateEmail(email: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(email); +} + +function validate(): boolean { + let valid = true; + + if (!emailInput.value || !validateEmail(emailInput.value)) { + emailError.textContent = "Please enter a valid email address"; + valid = false; + } else { + emailError.textContent = ""; + } + + if (!passwordInput.value || passwordInput.value.length < 6) { + passwordError.textContent = "Password must be at least 6 characters"; + valid = false; + } else { + passwordError.textContent = ""; + } + + if (!isLogin) { + if (passwordInput.value !== confirmInput.value) { + confirmError.textContent = "Passwords do not match"; + valid = false; + } else { + confirmError.textContent = ""; + } + } + + return valid; +} + +function toggleMode(): void { + isLogin = !isLogin; + + authTitle.textContent = isLogin ? "Login" : "Register"; + submitBtn.textContent = isLogin ? "Sign In" : "Create Account"; + toggleLabel.textContent = isLogin ? "Don't have an account?" : "Already have an account?"; + toggleAuth.textContent = isLogin ? "Register" : "Login"; + confirmGroup.style.display = isLogin ? "none" : "block"; + + emailError.textContent = ""; + passwordError.textContent = ""; + confirmError.textContent = ""; +} + +toggleAuth.addEventListener("click", (e) => { + e.preventDefault(); + toggleMode(); +}); + +authForm.addEventListener("submit", (e) => { + e.preventDefault(); + + if (!validate()) { + return; + } + + if (isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + toggleMode(); + } + + authForm.reset(); +}); + +(async () => { + await loadSlim(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { + enable: true, + speed: 1, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "bubble" }, + }, + modes: { + bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 }, + }, + }, + detectRetina: true, + }, + }); +})(); diff --git a/templates/login/template/vanilla/src/style.css b/templates/login/template/vanilla/src/style.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/vanilla/src/style.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/login/template/vanilla/tsconfig.json b/templates/login/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/login/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/login/template/vanilla/vite.config.ts b/templates/login/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/login/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/login/template/vue2/package.json b/templates/login/template/vue2/package.json new file mode 100644 index 00000000000..31be6f6b18c --- /dev/null +++ b/templates/login/template/vue2/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/vue2": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.0.1", + "vue-template-compiler": "^2.7.16", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/vue2/src/App.vue b/templates/login/template/vue2/src/App.vue new file mode 100644 index 00000000000..498d2ecad4e --- /dev/null +++ b/templates/login/template/vue2/src/App.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/templates/login/template/vue3/package.json b/templates/login/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/login/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/login/template/vue3/src/App.vue b/templates/login/template/vue3/src/App.vue new file mode 100644 index 00000000000..fe1e88becc4 --- /dev/null +++ b/templates/login/template/vue3/src/App.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/templates/login/template/vue3/src/main.ts b/templates/login/template/vue3/src/main.ts new file mode 100644 index 00000000000..5dcbea5f227 --- /dev/null +++ b/templates/login/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/login/template/webcomponents/package.json b/templates/login/template/webcomponents/package.json new file mode 100644 index 00000000000..f8c81ef5efc --- /dev/null +++ b/templates/login/template/webcomponents/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/webcomponents": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3", + "@tsparticles/engine": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/login/template/webcomponents/src/main.ts b/templates/login/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..a3887aeddb1 --- /dev/null +++ b/templates/login/template/webcomponents/src/main.ts @@ -0,0 +1,125 @@ +import { defineParticlesElement, initParticlesEngine } from "@tsparticles/webcomponents"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./style.css"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +defineParticlesElement(); + +const options: ISourceOptions = { + background: { color: { value: "transparent" } }, + fpsLimit: 60, + particles: { + number: { value: 60, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 3 }, random: true }, + move: { enable: true, speed: 1, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "bubble" } }, + modes: { bubble: { distance: 200, size: 6, duration: 2, opacity: 0.8 } }, + }, + detectRetina: true, +}; + +let isLogin = true; + +const authTitle = document.getElementById("authTitle") as HTMLHeadingElement; +const authForm = document.getElementById("authForm") as HTMLFormElement; +const submitBtn = document.getElementById("submitBtn") as HTMLButtonElement; +const toggleAuth = document.getElementById("toggleAuth") as HTMLAnchorElement; +const toggleLabel = document.getElementById("toggleLabel") as HTMLSpanElement; +const confirmGroup = document.getElementById("confirmGroup") as HTMLDivElement; +const themeBtn = document.getElementById("themeToggle") as HTMLButtonElement; + +const emailInput = document.getElementById("email") as HTMLInputElement; +const passwordInput = document.getElementById("password") as HTMLInputElement; +const confirmInput = document.getElementById("confirmPassword") as HTMLInputElement; + +const emailError = document.getElementById("emailError") as HTMLSpanElement; +const passwordError = document.getElementById("passwordError") as HTMLSpanElement; +const confirmError = document.getElementById("confirmError") as HTMLSpanElement; + +function setTheme(theme: string): void { + document.documentElement.setAttribute("data-theme", theme); + themeBtn.textContent = theme === "dark" ? "🌙" : "☀️"; + localStorage.setItem("theme", theme); +} + +const savedTheme = localStorage.getItem("theme") || "dark"; +setTheme(savedTheme); + +themeBtn.addEventListener("click", () => { + const current = document.documentElement.getAttribute("data-theme") || "dark"; + setTheme(current === "dark" ? "light" : "dark"); +}); + +function validateEmail(val: string): boolean { + return /^[^\s@]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(val); +} + +function validate(): boolean { + let valid = true; + + if (!emailInput.value || !validateEmail(emailInput.value)) { + emailError.textContent = "Please enter a valid email address"; + valid = false; + } else { + emailError.textContent = ""; + } + + if (!passwordInput.value || passwordInput.value.length < 6) { + passwordError.textContent = "Password must be at least 6 characters"; + valid = false; + } else { + passwordError.textContent = ""; + } + + if (!isLogin) { + if (passwordInput.value !== confirmInput.value) { + confirmError.textContent = "Passwords do not match"; + valid = false; + } else { + confirmError.textContent = ""; + } + } + + return valid; +} + +function toggleMode(): void { + isLogin = !isLogin; + authTitle.textContent = isLogin ? "Login" : "Register"; + submitBtn.textContent = isLogin ? "Sign In" : "Create Account"; + toggleLabel.textContent = isLogin ? "Don't have an account?" : "Already have an account?"; + toggleAuth.textContent = isLogin ? "Register" : "Login"; + confirmGroup.style.display = isLogin ? "none" : "block"; + emailError.textContent = ""; + passwordError.textContent = ""; + confirmError.textContent = ""; +} + +toggleAuth.addEventListener("click", (e) => { + e.preventDefault(); + toggleMode(); +}); + +authForm.addEventListener("submit", (e) => { + e.preventDefault(); + + if (!validate()) return; + + if (isLogin) { + alert("Logged in successfully! (demo)"); + } else { + alert("Account created successfully! (demo)"); + toggleMode(); + } + + authForm.reset(); +}); diff --git a/templates/login/template/webcomponents/src/style.css b/templates/login/template/webcomponents/src/style.css new file mode 100644 index 00000000000..d983751c46d --- /dev/null +++ b/templates/login/template/webcomponents/src/style.css @@ -0,0 +1,151 @@ +:root { + --bg: #0f0f1a; + --card-bg: rgba(255, 255, 255, 0.05); + --text: #fff; + --border: rgba(255, 255, 255, 0.1); + --input-bg: rgba(255, 255, 255, 0.08); + --accent: #6c5ce7; + --accent-hover: #a29bfe; + --error: #e74c3c; +} + +[data-theme="light"] { + --bg: #f0f0f5; + --card-bg: rgba(255, 255, 255, 0.8); + --text: #1a1a2e; + --border: rgba(0, 0, 0, 0.1); + --input-bg: rgba(0, 0, 0, 0.05); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + transition: background 0.3s, color 0.3s; +} + +.auth-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 100%; + max-width: 400px; + padding: 1rem; +} + +.auth-card { + background: var(--card-bg); + backdrop-filter: blur(10px); + border: 1px solid var(--border); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +} + +.auth-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.auth-header h1 { + margin: 0; + font-size: 1.8em; +} + +.theme-btn { + background: none; + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.4em 0.6em; + font-size: 1.2em; + cursor: pointer; + transition: background 0.2s; +} + +.theme-btn:hover { + background: var(--input-bg); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.3em; + font-size: 0.9em; + opacity: 0.8; +} + +input { + width: 100%; + padding: 0.7em 1em; + font-size: 1em; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--input-bg); + color: var(--text); + outline: none; + transition: border-color 0.2s; +} + +input:focus { + border-color: var(--accent); +} + +input::placeholder { + color: var(--text); + opacity: 0.4; +} + +.error { + display: block; + margin-top: 0.3em; + font-size: 0.8em; + color: var(--error); + min-height: 1em; +} + +button[type="submit"] { + width: 100%; + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.2s; + margin-top: 0.5rem; +} + +button[type="submit"]:hover { + background: var(--accent-hover); +} + +.toggle-text { + text-align: center; + margin-top: 1.5rem; + font-size: 0.9em; + opacity: 0.7; +} + +.toggle-text a { + color: var(--accent); + text-decoration: none; + margin-left: 0.3em; +} + +.toggle-text a:hover { + text-decoration: underline; +} diff --git a/templates/particles/CHANGELOG.md b/templates/particles/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/particles/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/particles/LICENSE b/templates/particles/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/particles/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/particles/README.md b/templates/particles/README.md new file mode 100644 index 00000000000..04edb9f9c3e --- /dev/null +++ b/templates/particles/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-particles + +tsParticles base particles template. Use with `create-tsparticles-app` to scaffold a new project with a full-screen particle animation. diff --git a/templates/particles/package.json b/templates/particles/package.json new file mode 100644 index 00000000000..9da3aa800ae --- /dev/null +++ b/templates/particles/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-particles", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/particles/scripts/prebuild.js b/templates/particles/scripts/prebuild.js new file mode 100644 index 00000000000..62253fcf146 --- /dev/null +++ b/templates/particles/scripts/prebuild.js @@ -0,0 +1,64 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/particles": require("../../../bundles/particles/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/particles/template.json b/templates/particles/template.json new file mode 100644 index 00000000000..28c2f792e34 --- /dev/null +++ b/templates/particles/template.json @@ -0,0 +1,12 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/particles": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/particles/template/angular-confetti/package.json b/templates/particles/template/angular-confetti/package.json new file mode 100644 index 00000000000..2f503e2200d --- /dev/null +++ b/templates/particles/template/angular-confetti/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/particles/template/angular-confetti/src/app/app.component.css b/templates/particles/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..714bedfbe99 --- /dev/null +++ b/templates/particles/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,16 @@ +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/angular-confetti/src/app/app.component.html b/templates/particles/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..4fd54e7624d --- /dev/null +++ b/templates/particles/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

tsParticles

+
+ diff --git a/templates/particles/template/angular-confetti/src/app/app.component.ts b/templates/particles/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..2c39e62dd2b --- /dev/null +++ b/templates/particles/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadParticles } from "@tsparticles/particles"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + void this.ngParticlesService.init(async (engine) => { + await loadParticles(engine); + }); + } +} diff --git a/templates/particles/template/angular-fireworks/package.json b/templates/particles/template/angular-fireworks/package.json new file mode 100644 index 00000000000..2f503e2200d --- /dev/null +++ b/templates/particles/template/angular-fireworks/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/particles/template/angular-fireworks/src/app/app.component.css b/templates/particles/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..714bedfbe99 --- /dev/null +++ b/templates/particles/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,16 @@ +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/angular-fireworks/src/app/app.component.html b/templates/particles/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..4fd54e7624d --- /dev/null +++ b/templates/particles/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

tsParticles

+
+ diff --git a/templates/particles/template/angular-fireworks/src/app/app.component.ts b/templates/particles/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..2c39e62dd2b --- /dev/null +++ b/templates/particles/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadParticles } from "@tsparticles/particles"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + void this.ngParticlesService.init(async (engine) => { + await loadParticles(engine); + }); + } +} diff --git a/templates/particles/template/angular/package.json b/templates/particles/template/angular/package.json new file mode 100644 index 00000000000..732d77ea856 --- /dev/null +++ b/templates/particles/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/particles": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/particles/template/angular/src/app/app.component.css b/templates/particles/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..714bedfbe99 --- /dev/null +++ b/templates/particles/template/angular/src/app/app.component.css @@ -0,0 +1,16 @@ +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/angular/src/app/app.component.html b/templates/particles/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..0055e34bf0d --- /dev/null +++ b/templates/particles/template/angular/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

tsParticles

+
+ diff --git a/templates/particles/template/angular/src/app/app.component.ts b/templates/particles/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..2c39e62dd2b --- /dev/null +++ b/templates/particles/template/angular/src/app/app.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadParticles } from "@tsparticles/particles"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, + }; + + ngOnInit(): void { + void this.ngParticlesService.init(async (engine) => { + await loadParticles(engine); + }); + } +} diff --git a/templates/particles/template/astro/package.json b/templates/particles/template/astro/package.json new file mode 100644 index 00000000000..ce444d704c8 --- /dev/null +++ b/templates/particles/template/astro/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^5.7.0", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/astro": "^4.1.3" + } +} diff --git a/templates/particles/template/astro/src/pages/index.astro b/templates/particles/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..9b13441b0e9 --- /dev/null +++ b/templates/particles/template/astro/src/pages/index.astro @@ -0,0 +1,53 @@ +--- +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; +--- + + + + + tsParticles + + + +
+

tsParticles

+
+ + + + diff --git a/templates/particles/template/ember/app/templates/application.hbs b/templates/particles/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..b669ecca36d --- /dev/null +++ b/templates/particles/template/ember/app/templates/application.hbs @@ -0,0 +1,4 @@ +
+

tsParticles

+
+ diff --git a/templates/particles/template/ember/package.json b/templates/particles/template/ember/package.json new file mode 100644 index 00000000000..93a7a396209 --- /dev/null +++ b/templates/particles/template/ember/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve" + }, + "dependencies": { + "ember-source": "^6.4.0", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/ember": "^4.1.3" + }, + "devDependencies": { + "ember-cli": "^6.3.1" + } +} diff --git a/templates/particles/template/inferno/package.json b/templates/particles/template/inferno/package.json new file mode 100644 index 00000000000..8fecf510cd4 --- /dev/null +++ b/templates/particles/template/inferno/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^9.0.4", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/inferno": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/inferno/src/App.css b/templates/particles/template/inferno/src/App.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/inferno/src/App.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/inferno/src/App.tsx b/templates/particles/template/inferno/src/App.tsx new file mode 100644 index 00000000000..62553583eb0 --- /dev/null +++ b/templates/particles/template/inferno/src/App.tsx @@ -0,0 +1,42 @@ +import { Component } from "inferno"; +import Particles from "@tsparticles/inferno"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +export default class App extends Component { + componentDidMount() { + void loadParticles(tsParticles); + } + + render() { + return ( + <> +
+

tsParticles

+
+ + + ); + } +} diff --git a/templates/particles/template/jquery/package.json b/templates/particles/template/jquery/package.json new file mode 100644 index 00000000000..c410ccd1d70 --- /dev/null +++ b/templates/particles/template/jquery/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/jquery": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/jquery/src/main.ts b/templates/particles/template/jquery/src/main.ts new file mode 100644 index 00000000000..b671c63e3e4 --- /dev/null +++ b/templates/particles/template/jquery/src/main.ts @@ -0,0 +1,49 @@ +import "./style.css"; +import $ from "jquery"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; + +(async () => { + await loadParticles(tsParticles); + + $(() => { + $("#app").after('
'); + $("#tsparticles").particles({ + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.3, + width: 1, + }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "bounce" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "repulse" }, + onClick: { enable: true, mode: "push" }, + }, + modes: { + repulse: { distance: 100, duration: 0.4 }, + push: { quantity: 4 }, + }, + }, + detectRetina: true, + }); + }); +})(); diff --git a/templates/particles/template/jquery/src/style.css b/templates/particles/template/jquery/src/style.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/jquery/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/lit/package.json b/templates/particles/template/lit/package.json new file mode 100644 index 00000000000..8d550073d09 --- /dev/null +++ b/templates/particles/template/lit/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.2.1", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/lit": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/lit/src/my-app.ts b/templates/particles/template/lit/src/my-app.ts new file mode 100644 index 00000000000..ef1abe7c456 --- /dev/null +++ b/templates/particles/template/lit/src/my-app.ts @@ -0,0 +1,64 @@ +import { LitElement, html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import { initParticlesEngine } from "@tsparticles/lit"; +import { loadParticles } from "@tsparticles/particles"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +@customElement("my-app") +export class MyApp extends LitElement { + @state() + private initialized = false; + + connectedCallback(): void { + super.connectedCallback(); + void initParticlesEngine(async (engine) => { + await loadParticles(engine); + this.initialized = true; + }); + } + + render() { + return html` + +
+

tsParticles

+
+ ${this.initialized ? html`` : ""} + `; + } +} diff --git a/templates/particles/template/nextjs/package.json b/templates/particles/template/nextjs/package.json new file mode 100644 index 00000000000..5146c6a0957 --- /dev/null +++ b/templates/particles/template/nextjs/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "preview": "next start" + }, + "dependencies": { + "next": "^15.3.1", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/nextjs": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/nextjs/src/app/page.tsx b/templates/particles/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..42545be6b93 --- /dev/null +++ b/templates/particles/template/nextjs/src/app/page.tsx @@ -0,0 +1,39 @@ +"use client"; + +import Particles from "@tsparticles/nextjs"; +import { loadParticles } from "@tsparticles/particles"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; + +async function init(engine: Engine): Promise { + await loadParticles(engine); +} + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +export default function Home() { + return ( + <> +
+

tsParticles

+
+ + + ); +} diff --git a/templates/particles/template/nuxt2/package.json b/templates/particles/template/nuxt2/package.json new file mode 100644 index 00000000000..4a1d807ca35 --- /dev/null +++ b/templates/particles/template/nuxt2/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "start": "nuxt start", + "preview": "nuxt start" + }, + "dependencies": { + "nuxt": "^2.18.1", + "vue": "^2.7.16", + "vue-template-compiler": "^2.7.16", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/vue2": "^4.1.3" + } +} diff --git a/templates/particles/template/nuxt2/pages/index.vue b/templates/particles/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..f37e303b74a --- /dev/null +++ b/templates/particles/template/nuxt2/pages/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/templates/particles/template/nuxt3/app.vue b/templates/particles/template/nuxt3/app.vue new file mode 100644 index 00000000000..e917dcc4f68 --- /dev/null +++ b/templates/particles/template/nuxt3/app.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/templates/particles/template/nuxt3/package.json b/templates/particles/template/nuxt3/package.json new file mode 100644 index 00000000000..10b73aba7cf --- /dev/null +++ b/templates/particles/template/nuxt3/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.17.1", + "vue": "^3.5.32", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/vue3": "^4.1.3" + } +} diff --git a/templates/particles/template/nuxt4/app.vue b/templates/particles/template/nuxt4/app.vue new file mode 100644 index 00000000000..e917dcc4f68 --- /dev/null +++ b/templates/particles/template/nuxt4/app.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/templates/particles/template/nuxt4/package.json b/templates/particles/template/nuxt4/package.json new file mode 100644 index 00000000000..99601f86dd9 --- /dev/null +++ b/templates/particles/template/nuxt4/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.0.0", + "vue": "^4.0.0", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/vue3": "^4.1.3" + } +} diff --git a/templates/particles/template/preact/package.json b/templates/particles/template/preact/package.json new file mode 100644 index 00000000000..3d434b4ef65 --- /dev/null +++ b/templates/particles/template/preact/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.26.5", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/preact": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.10.1", + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/preact/src/App.css b/templates/particles/template/preact/src/App.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/preact/src/App.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/preact/src/App.tsx b/templates/particles/template/preact/src/App.tsx new file mode 100644 index 00000000000..0df69a2a6c9 --- /dev/null +++ b/templates/particles/template/preact/src/App.tsx @@ -0,0 +1,40 @@ +import { useEffect } from "preact/hooks"; +import Particles from "@tsparticles/preact"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +export default function App() { + useEffect(() => { + void loadParticles(tsParticles); + }, []); + + return ( + <> +
+

tsParticles

+
+ + + ); +} diff --git a/templates/particles/template/qwik/package.json b/templates/particles/template/qwik/package.json new file mode 100644 index 00000000000..1984e8e7469 --- /dev/null +++ b/templates/particles/template/qwik/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.1", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/qwik": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/qwik/src/App.tsx b/templates/particles/template/qwik/src/App.tsx new file mode 100644 index 00000000000..82ae7e7bcf7 --- /dev/null +++ b/templates/particles/template/qwik/src/App.tsx @@ -0,0 +1,50 @@ +import { component$, useVisibleTask$ } from "@builder.io/qwik"; +import { Particles } from "@tsparticles/qwik"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +export default component$(() => { + useVisibleTask$(() => { + void loadParticles(tsParticles); + }); + + return ( + <> + +
+

tsParticles

+
+ + + ); +}); diff --git a/templates/particles/template/react/package.json b/templates/particles/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/particles/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/particles/template/react/src/App.css b/templates/particles/template/react/src/App.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/react/src/App.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/react/src/App.tsx b/templates/particles/template/react/src/App.tsx new file mode 100644 index 00000000000..4a0e41fa10e --- /dev/null +++ b/templates/particles/template/react/src/App.tsx @@ -0,0 +1,38 @@ +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadParticles } from "@tsparticles/particles"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +async function init(engine: Engine): Promise { + await loadParticles(engine); +} + +const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { enable: true, distance: 150, color: "#ffffff", opacity: 0.3, width: 1 }, + move: { enable: true, speed: 2, direction: "none", random: false, straight: false, outModes: { default: "bounce" } }, + }, + interactivity: { + events: { onHover: { enable: true, mode: "repulse" }, onClick: { enable: true, mode: "push" } }, + modes: { repulse: { distance: 100, duration: 0.4 }, push: { quantity: 4 } }, + }, + detectRetina: true, +}; + +export default function App() { + return ( + +
+

tsParticles

+
+ +
+ ); +} diff --git a/templates/particles/template/riot/package.json b/templates/particles/template/riot/package.json new file mode 100644 index 00000000000..4d16a9a7304 --- /dev/null +++ b/templates/particles/template/riot/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^9.5.2", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/riot": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/riot/src/app.riot b/templates/particles/template/riot/src/app.riot new file mode 100644 index 00000000000..c2c7125b49c --- /dev/null +++ b/templates/particles/template/riot/src/app.riot @@ -0,0 +1,31 @@ + +
+

tsParticles

+
+ + + + + +
diff --git a/templates/particles/template/solid/package.json b/templates/particles/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/particles/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/particles/template/solid/src/App.tsx b/templates/particles/template/solid/src/App.tsx new file mode 100644 index 00000000000..e3e9500851c --- /dev/null +++ b/templates/particles/template/solid/src/App.tsx @@ -0,0 +1,59 @@ +import { onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadParticles } from "@tsparticles/particles"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadParticles(engine); + }); + }); + + const options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.3, + width: 1, + }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "bounce" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "repulse" }, + onClick: { enable: true, mode: "push" }, + }, + modes: { + repulse: { distance: 100, duration: 0.4 }, + push: { quantity: 4 }, + }, + }, + detectRetina: true, + }; + + return ( + <> +
+

tsParticles

+
+ + + ); +} diff --git a/templates/particles/template/solid/src/index.css b/templates/particles/template/solid/src/index.css new file mode 100644 index 00000000000..5f103dd138b --- /dev/null +++ b/templates/particles/template/solid/src/index.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/solid/src/main.tsx b/templates/particles/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/particles/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/particles/template/stencil/package.json b/templates/particles/template/stencil/package.json new file mode 100644 index 00000000000..cff8affbf21 --- /dev/null +++ b/templates/particles/template/stencil/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "stencil build --dev --watch", + "build": "stencil build", + "preview": "stencil build --preview" + }, + "dependencies": { + "@stencil/core": "^4.26.0", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/stencil": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/stencil/src/components/app-home/app-home.tsx b/templates/particles/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..865a7bee9ee --- /dev/null +++ b/templates/particles/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,64 @@ +import { Component, h } from "@stencil/core"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + shadow: true, +}) +export class AppHome { + private options: ISourceOptions = { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.3, + width: 1, + }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "bounce" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "repulse" }, + onClick: { enable: true, mode: "push" }, + }, + modes: { + repulse: { distance: 100, duration: 0.4 }, + push: { quantity: 4 }, + }, + }, + detectRetina: true, + }; + + componentDidLoad() { + void loadParticles(tsParticles); + } + + render() { + return ( +
+
+

tsParticles

+
+ +
+ ); + } +} diff --git a/templates/particles/template/svelte/package.json b/templates/particles/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/particles/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/particles/template/svelte/src/App.svelte b/templates/particles/template/svelte/src/App.svelte new file mode 100644 index 00000000000..8e4ef859ab7 --- /dev/null +++ b/templates/particles/template/svelte/src/App.svelte @@ -0,0 +1,70 @@ + + +

tsParticles

+ + + + diff --git a/templates/particles/template/svelte/src/main.ts b/templates/particles/template/svelte/src/main.ts new file mode 100644 index 00000000000..60d9a0ffbf7 --- /dev/null +++ b/templates/particles/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadParticles } from "@tsparticles/particles"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadParticles(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/particles/template/vanilla/LICENSE b/templates/particles/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/particles/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/particles/template/vanilla/README.md b/templates/particles/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/particles/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/particles/template/vanilla/gitignore b/templates/particles/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/particles/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/particles/template/vanilla/index.html b/templates/particles/template/vanilla/index.html new file mode 100644 index 00000000000..4841f9ddf3d --- /dev/null +++ b/templates/particles/template/vanilla/index.html @@ -0,0 +1,14 @@ + + + + + + {{projectName}} + + +
+

tsParticles

+
+ + + diff --git a/templates/particles/template/vanilla/package.json b/templates/particles/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/particles/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/particles/template/vanilla/src/main.ts b/templates/particles/template/vanilla/src/main.ts new file mode 100644 index 00000000000..2bbb011b9f4 --- /dev/null +++ b/templates/particles/template/vanilla/src/main.ts @@ -0,0 +1,48 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadParticles } from "@tsparticles/particles"; + +(async () => { + await loadParticles(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + background: { color: { value: "#0d0d2b" } }, + fpsLimit: 120, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: "#ffffff" }, + shape: { type: "circle" }, + opacity: { value: 0.5 }, + size: { value: { min: 1, max: 5 } }, + links: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.3, + width: 1, + }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "bounce" }, + }, + }, + interactivity: { + events: { + onHover: { enable: true, mode: "repulse" }, + onClick: { enable: true, mode: "push" }, + }, + modes: { + repulse: { distance: 100, duration: 0.4 }, + push: { quantity: 4 }, + }, + }, + detectRetina: true, + }, + }); +})(); diff --git a/templates/particles/template/vanilla/src/style.css b/templates/particles/template/vanilla/src/style.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/vanilla/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/particles/template/vanilla/tsconfig.json b/templates/particles/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/particles/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/particles/template/vanilla/vite.config.ts b/templates/particles/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/particles/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/particles/template/vue2/package.json b/templates/particles/template/vue2/package.json new file mode 100644 index 00000000000..22c5bbfebec --- /dev/null +++ b/templates/particles/template/vue2/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/vue2": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.3.3", + "vue-tsc": "^2.2.8", + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/vue2/src/App.vue b/templates/particles/template/vue2/src/App.vue new file mode 100644 index 00000000000..c87cb9dcfc4 --- /dev/null +++ b/templates/particles/template/vue2/src/App.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/templates/particles/template/vue3/package.json b/templates/particles/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/particles/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/particles/template/vue3/src/App.vue b/templates/particles/template/vue3/src/App.vue new file mode 100644 index 00000000000..b240a5a3837 --- /dev/null +++ b/templates/particles/template/vue3/src/App.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/templates/particles/template/vue3/src/main.ts b/templates/particles/template/vue3/src/main.ts new file mode 100644 index 00000000000..f8dbdbef49b --- /dev/null +++ b/templates/particles/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadParticles } from "@tsparticles/particles"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadParticles(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/particles/template/webcomponents/package.json b/templates/particles/template/webcomponents/package.json new file mode 100644 index 00000000000..efeed2a6c6c --- /dev/null +++ b/templates/particles/template/webcomponents/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^4.0.0", + "@tsparticles/particles": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/webcomponents": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.8.3" + } +} diff --git a/templates/particles/template/webcomponents/src/main.ts b/templates/particles/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..642691a8420 --- /dev/null +++ b/templates/particles/template/webcomponents/src/main.ts @@ -0,0 +1,16 @@ +import "./style.css"; +import { loadParticles } from "@tsparticles/particles"; +import { tsParticles } from "@tsparticles/engine"; + +(async () => { + await loadParticles(tsParticles); + + const app = document.createElement("div"); + app.id = "app"; + app.innerHTML = "

tsParticles

"; + document.body.appendChild(app); + + const particles = document.createElement("web-particles"); + particles.id = "tsparticles"; + document.body.appendChild(particles); +})(); diff --git a/templates/particles/template/webcomponents/src/style.css b/templates/particles/template/webcomponents/src/style.css new file mode 100644 index 00000000000..b4e87e4a492 --- /dev/null +++ b/templates/particles/template/webcomponents/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/portfolio/CHANGELOG.md b/templates/portfolio/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/portfolio/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/portfolio/LICENSE b/templates/portfolio/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/portfolio/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/portfolio/README.md b/templates/portfolio/README.md new file mode 100644 index 00000000000..20a05b8e5b7 --- /dev/null +++ b/templates/portfolio/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-portfolio + +tsParticles portfolio template. Use with `create-tsparticles-app` to scaffold a new portfolio project with animated particle background. diff --git a/templates/portfolio/package.json b/templates/portfolio/package.json new file mode 100644 index 00000000000..22506e0361b --- /dev/null +++ b/templates/portfolio/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-portfolio", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/portfolio/scripts/prebuild.js b/templates/portfolio/scripts/prebuild.js new file mode 100644 index 00000000000..bfd3e6dbe76 --- /dev/null +++ b/templates/portfolio/scripts/prebuild.js @@ -0,0 +1,65 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, + "@tsparticles/configs": require("../../../utils/configs/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/portfolio/template.json b/templates/portfolio/template.json new file mode 100644 index 00000000000..c70f3f52a8e --- /dev/null +++ b/templates/portfolio/template.json @@ -0,0 +1,13 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/portfolio/template/angular-confetti/package.json b/templates/portfolio/template/angular-confetti/package.json new file mode 100644 index 00000000000..76614395ad7 --- /dev/null +++ b/templates/portfolio/template/angular-confetti/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/portfolio/template/angular-confetti/src/app/app.component.css b/templates/portfolio/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/angular-confetti/src/app/app.component.html b/templates/portfolio/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..ec51f77f282 --- /dev/null +++ b/templates/portfolio/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,53 @@ + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+
+

{{ p.title }}

+

{{ p.desc }}

+
+
+
+
+ +
+
+

Skills

+
+ {{ s.name }} +
+
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
diff --git a/templates/portfolio/template/angular-confetti/src/app/app.component.ts b/templates/portfolio/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..2dc0f774229 --- /dev/null +++ b/templates/portfolio/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,47 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options!: ISourceOptions; + + navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Angular", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, + ]; + projects = [ + { title: "Project One", desc: "A web application built with Angular and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, + ]; + + ngOnInit(): void { + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + this.options = { + ...(configs[randomKey] as ISourceOptions), + fullScreen: { enable: true, zIndex: -1 }, + }; + + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } + + onSubmit(form: HTMLFormElement): void { + alert("Message sent! (demo)"); + form.reset(); + } +} diff --git a/templates/portfolio/template/angular-fireworks/package.json b/templates/portfolio/template/angular-fireworks/package.json new file mode 100644 index 00000000000..76614395ad7 --- /dev/null +++ b/templates/portfolio/template/angular-fireworks/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/portfolio/template/angular-fireworks/src/app/app.component.css b/templates/portfolio/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/angular-fireworks/src/app/app.component.html b/templates/portfolio/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..ec51f77f282 --- /dev/null +++ b/templates/portfolio/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,53 @@ + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+
+

{{ p.title }}

+

{{ p.desc }}

+
+
+
+
+ +
+
+

Skills

+
+ {{ s.name }} +
+
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
diff --git a/templates/portfolio/template/angular-fireworks/src/app/app.component.ts b/templates/portfolio/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..2dc0f774229 --- /dev/null +++ b/templates/portfolio/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,47 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options!: ISourceOptions; + + navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Angular", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, + ]; + projects = [ + { title: "Project One", desc: "A web application built with Angular and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, + ]; + + ngOnInit(): void { + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + this.options = { + ...(configs[randomKey] as ISourceOptions), + fullScreen: { enable: true, zIndex: -1 }, + }; + + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } + + onSubmit(form: HTMLFormElement): void { + alert("Message sent! (demo)"); + form.reset(); + } +} diff --git a/templates/portfolio/template/angular/package.json b/templates/portfolio/template/angular/package.json new file mode 100644 index 00000000000..07b063e34c7 --- /dev/null +++ b/templates/portfolio/template/angular/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/configs": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/portfolio/template/angular/src/app/app.component.css b/templates/portfolio/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/angular/src/app/app.component.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/angular/src/app/app.component.html b/templates/portfolio/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..ec51f77f282 --- /dev/null +++ b/templates/portfolio/template/angular/src/app/app.component.html @@ -0,0 +1,53 @@ + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+
+

{{ p.title }}

+

{{ p.desc }}

+
+
+
+
+ +
+
+

Skills

+
+ {{ s.name }} +
+
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
diff --git a/templates/portfolio/template/angular/src/app/app.component.ts b/templates/portfolio/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..b838da93688 --- /dev/null +++ b/templates/portfolio/template/angular/src/app/app.component.ts @@ -0,0 +1,47 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + constructor(private readonly ngParticlesService: NgParticlesService) {} + + options!: ISourceOptions; + + navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + skills = [ + { name: "TypeScript", pct: 90 }, + { name: "React", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, + ]; + projects = [ + { title: "Project One", desc: "A web application built with React and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, + ]; + + ngOnInit(): void { + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + this.options = { + ...(configs[randomKey] as ISourceOptions), + fullScreen: { enable: true, zIndex: -1 }, + }; + + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } + + onSubmit(form: HTMLFormElement): void { + alert("Message sent! (demo)"); + form.reset(); + } +} diff --git a/templates/portfolio/template/astro/package.json b/templates/portfolio/template/astro/package.json new file mode 100644 index 00000000000..41d7d145e6f --- /dev/null +++ b/templates/portfolio/template/astro/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "@tsparticles/astro": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "astro": "^5.0.0" + }, + "devDependencies": { + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/astro/src/pages/index.astro b/templates/portfolio/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..63859137279 --- /dev/null +++ b/templates/portfolio/template/astro/src/pages/index.astro @@ -0,0 +1,131 @@ +--- +import Particles, { initParticlesEngine } from "@tsparticles/astro"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +const navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + +const projects = [ + { title: "Project One", desc: "A web application built with Astro and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, +]; + +const skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Astro", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, +]; +--- + + + + + + + Portfolio + + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+ + + diff --git a/templates/portfolio/template/ember/app/templates/application.hbs b/templates/portfolio/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..89be76d57fd --- /dev/null +++ b/templates/portfolio/template/ember/app/templates/application.hbs @@ -0,0 +1,61 @@ + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+ {{#each this.projects as |p|}} +
+

{{p.title}}

+

{{p.desc}}

+
+ {{/each}} +
+
+
+ +
+
+

Skills

+ {{#each this.skills as |s|}} +
+ {{s.name}} +
+
+ {{/each}} +
+
+ +
+
+

Contact

+
+ + + + +
+
+
+ +{{outlet}} diff --git a/templates/portfolio/template/ember/package.json b/templates/portfolio/template/ember/package.json new file mode 100644 index 00000000000..c8b31d09efc --- /dev/null +++ b/templates/portfolio/template/ember/package.json @@ -0,0 +1,25 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve --proxy http://localhost:4200", + "start": "ember serve" + }, + "dependencies": { + "@tsparticles/ember": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "ember-source": "^6.0.0" + }, + "devDependencies": { + "@ember/optional-features": "^2.1.0", + "@glimmer/component": "^2.0.0", + "@glimmer/tracking": "^2.0.0", + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/inferno/package.json b/templates/portfolio/template/inferno/package.json new file mode 100644 index 00000000000..dc5b141a594 --- /dev/null +++ b/templates/portfolio/template/inferno/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/inferno": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "inferno": "^9.0.0" + }, + "devDependencies": { + "typescript": "~5.8.0", + "vite": "^7.0.0", + "vite-plugin-inferno": "^1.0.0" + } +} diff --git a/templates/portfolio/template/inferno/src/App.css b/templates/portfolio/template/inferno/src/App.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/inferno/src/App.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/inferno/src/App.tsx b/templates/portfolio/template/inferno/src/App.tsx new file mode 100644 index 00000000000..d014c9f8a55 --- /dev/null +++ b/templates/portfolio/template/inferno/src/App.tsx @@ -0,0 +1,100 @@ +import { Component } from "inferno"; +import Particles, { initParticlesEngine } from "@tsparticles/inferno"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + +const projects = [ + { title: "Project One", desc: "A web application built with Inferno and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, +]; + +const skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Inferno", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, +]; + +export default class App extends Component { + handleSubmit(e: Event) { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + render() { + return ( +
+ + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+
+ ); + } +} diff --git a/templates/portfolio/template/jquery/package.json b/templates/portfolio/template/jquery/package.json new file mode 100644 index 00000000000..7e7aa6c4d52 --- /dev/null +++ b/templates/portfolio/template/jquery/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/jquery": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "jquery": "^3.7.1" + }, + "devDependencies": { + "@types/jquery": "^3.5.30", + "typescript": "~5.8.0", + "vite": "^7.0.0" + } +} diff --git a/templates/portfolio/template/jquery/src/main.ts b/templates/portfolio/template/jquery/src/main.ts new file mode 100644 index 00000000000..d12ae70d0de --- /dev/null +++ b/templates/portfolio/template/jquery/src/main.ts @@ -0,0 +1,33 @@ +import "./style.css"; +import $ from "jquery"; +import "jquery-particles"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import { tsParticles } from "@tsparticles/engine"; + +(async () => { + await loadSlim(tsParticles); + + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + + $("#tsparticles").particles().ajax({ + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, + }); + + $(".nav-link").on("click", function (e) { + e.preventDefault(); + const target = $($(this).attr("href")!); + if (target.length) { + $("html, body").animate({ scrollTop: target.offset()!.top }, 500); + } + }); + + const contactForm = document.getElementById("contactForm") as HTMLFormElement; + contactForm.addEventListener("submit", (e) => { + e.preventDefault(); + alert("Message sent! (demo)"); + contactForm.reset(); + }); +})(); diff --git a/templates/portfolio/template/jquery/src/style.css b/templates/portfolio/template/jquery/src/style.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/jquery/src/style.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/lit/package.json b/templates/portfolio/template/lit/package.json new file mode 100644 index 00000000000..4d1297b7b24 --- /dev/null +++ b/templates/portfolio/template/lit/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/lit": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "lit": "^3.4.0" + }, + "devDependencies": { + "typescript": "~5.8.0", + "vite": "^7.0.0" + } +} diff --git a/templates/portfolio/template/lit/src/my-app.ts b/templates/portfolio/template/lit/src/my-app.ts new file mode 100644 index 00000000000..dfa4c45d63e --- /dev/null +++ b/templates/portfolio/template/lit/src/my-app.ts @@ -0,0 +1,117 @@ +import { LitElement, html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import { ParticlesBase } from "@tsparticles/lit"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; +import style from "./style.css" with { type: "css" }; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +@customElement("my-app") +export class MyApp extends LitElement { + static styles = [style]; + + @state() + private projects = [ + { title: "Project One", desc: "A web application built with Lit and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, + ]; + + @state() + private skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Lit", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, + ]; + + private navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + + connectedCallback(): void { + super.connectedCallback(); + void ParticlesBase.init(async (engine) => { + await loadSlim(engine); + }); + } + + private handleSubmit(e: Event): void { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + render() { + return html` + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+ ${this.projects.map( + (p) => html` +
+

${p.title}

+

${p.desc}

+
+ ` + )} +
+
+
+ +
+
+

Skills

+ ${this.skills.map( + (s) => html` +
+ ${s.name} +
+
+ ` + )} +
+
+ +
+
+

Contact

+
+ + + + +
+
+
+ `; + } +} diff --git a/templates/portfolio/template/lit/src/style.css b/templates/portfolio/template/lit/src/style.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/lit/src/style.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/nextjs/package.json b/templates/portfolio/template/nextjs/package.json new file mode 100644 index 00000000000..bc8e7088cce --- /dev/null +++ b/templates/portfolio/template/nextjs/package.json @@ -0,0 +1,25 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "next dev", + "build": "next build", + "preview": "next start" + }, + "dependencies": { + "@tsparticles/nextjs": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "next": "^15.0.0", + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/nextjs/src/app/page.tsx b/templates/portfolio/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..0c45426bdcd --- /dev/null +++ b/templates/portfolio/template/nextjs/src/app/page.tsx @@ -0,0 +1,94 @@ +"use client"; + +import Particles from "@tsparticles/nextjs"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; +import { ParticlesProvider } from "./providers"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +const navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + +const projects = [ + { title: "Project One", desc: "A web application built with Next.js and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, +]; + +const skills = [ + { name: "TypeScript", pct: 90 }, + { name: "React", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, +]; + +export default function Home() { + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + return ( + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+
+ ); +} diff --git a/templates/portfolio/template/nextjs/src/app/providers.tsx b/templates/portfolio/template/nextjs/src/app/providers.tsx new file mode 100644 index 00000000000..4a6dd9618aa --- /dev/null +++ b/templates/portfolio/template/nextjs/src/app/providers.tsx @@ -0,0 +1,20 @@ +"use client"; + +import { initParticlesEngine } from "@tsparticles/nextjs"; +import { loadSlim } from "@tsparticles/slim"; +import { useEffect, useRef } from "react"; + +export function ParticlesProvider({ children }: { children: React.ReactNode }) { + const initialized = useRef(false); + + useEffect(() => { + if (!initialized.current) { + initialized.current = true; + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + } + }, []); + + return <>{children}; +} diff --git a/templates/portfolio/template/nuxt2/package.json b/templates/portfolio/template/nuxt2/package.json new file mode 100644 index 00000000000..c43f9dd4ced --- /dev/null +++ b/templates/portfolio/template/nuxt2/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "preview": "nuxt start" + }, + "dependencies": { + "@tsparticles/nuxt2": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "nuxt": "^2.18.0", + "vue": "^2.7.16" + }, + "devDependencies": { + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/nuxt2/pages/index.vue b/templates/portfolio/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..3fd2a67d7d1 --- /dev/null +++ b/templates/portfolio/template/nuxt2/pages/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/templates/portfolio/template/nuxt3/app.vue b/templates/portfolio/template/nuxt3/app.vue new file mode 100644 index 00000000000..0bee7ad0108 --- /dev/null +++ b/templates/portfolio/template/nuxt3/app.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/templates/portfolio/template/nuxt3/package.json b/templates/portfolio/template/nuxt3/package.json new file mode 100644 index 00000000000..5bc8ba5a653 --- /dev/null +++ b/templates/portfolio/template/nuxt3/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "@tsparticles/nuxt3": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "nuxt": "^3.16.0", + "vue": "^3.5.0" + }, + "devDependencies": { + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/nuxt4/app.vue b/templates/portfolio/template/nuxt4/app.vue new file mode 100644 index 00000000000..f58a8816d49 --- /dev/null +++ b/templates/portfolio/template/nuxt4/app.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/templates/portfolio/template/nuxt4/package.json b/templates/portfolio/template/nuxt4/package.json new file mode 100644 index 00000000000..48c1c238b9d --- /dev/null +++ b/templates/portfolio/template/nuxt4/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "@tsparticles/nuxt4": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "nuxt": "^4.0.0", + "vue": "^3.5.0" + }, + "devDependencies": { + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/preact/package.json b/templates/portfolio/template/preact/package.json new file mode 100644 index 00000000000..1515cdd19ef --- /dev/null +++ b/templates/portfolio/template/preact/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/preact": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "preact": "^10.26.0" + }, + "devDependencies": { + "@preact/preset-vite": "^3.0.0", + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/preact/src/App.css b/templates/portfolio/template/preact/src/App.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/preact/src/App.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/preact/src/App.tsx b/templates/portfolio/template/preact/src/App.tsx new file mode 100644 index 00000000000..06fb0559372 --- /dev/null +++ b/templates/portfolio/template/preact/src/App.tsx @@ -0,0 +1,98 @@ +import { h } from "preact"; +import Particles, { initParticlesEngine } from "@tsparticles/preact"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + +const projects = [ + { title: "Project One", desc: "A web application built with Preact and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, +]; + +const skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Preact", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, +]; + +export function App() { + function handleSubmit(e: h.JSX.TargetedEvent) { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + return ( +
+ + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+
+ ); +} diff --git a/templates/portfolio/template/qwik/package.json b/templates/portfolio/template/qwik/package.json new file mode 100644 index 00000000000..358aa87d9c5 --- /dev/null +++ b/templates/portfolio/template/qwik/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/qwik": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@builder.io/qwik": "^1.12.0" + }, + "devDependencies": { + "@builder.io/qwik-vite": "^1.12.0", + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/qwik/src/App.tsx b/templates/portfolio/template/qwik/src/App.tsx new file mode 100644 index 00000000000..0069a8e5ab0 --- /dev/null +++ b/templates/portfolio/template/qwik/src/App.tsx @@ -0,0 +1,104 @@ +import { component$, useVisibleTask$, useSignal } from "@builder.io/qwik"; +import Particles, { initParticlesEngine } from "@tsparticles/qwik"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +const navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + +const projects = [ + { title: "Project One", desc: "A web application built with Qwik and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, +]; + +const skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Qwik", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, +]; + +export default component$(() => { + const initialized = useSignal(false); + + useVisibleTask$(() => { + if (!initialized.value) { + initialized.value = true; + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + } + }); + + const handleSubmit = (e: Event) => { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + }; + + return ( + <> + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+ + ); +}); diff --git a/templates/portfolio/template/react/package.json b/templates/portfolio/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/portfolio/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/portfolio/template/react/src/App.css b/templates/portfolio/template/react/src/App.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/react/src/App.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/react/src/App.tsx b/templates/portfolio/template/react/src/App.tsx new file mode 100644 index 00000000000..ec488e48f9c --- /dev/null +++ b/templates/portfolio/template/react/src/App.tsx @@ -0,0 +1,85 @@ +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +export default function App() { + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + return ( + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {[{ title: "Project One", desc: "A web application built with React and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." } + ].map((p, i) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {[{ name: "TypeScript", pct: 90 }, { name: "React", pct: 85 }, { name: "Node.js", pct: 80 }, { name: "CSS", pct: 88 }].map((s, i) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+
+ ); +} diff --git a/templates/portfolio/template/riot/package.json b/templates/portfolio/template/riot/package.json new file mode 100644 index 00000000000..724074fb026 --- /dev/null +++ b/templates/portfolio/template/riot/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/riot": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "riot": "^9.5.0" + }, + "devDependencies": { + "@riotjs/vite": "^9.2.0", + "typescript": "~5.8.0", + "vite": "^7.0.0" + } +} diff --git a/templates/portfolio/template/riot/src/app.riot b/templates/portfolio/template/riot/src/app.riot new file mode 100644 index 00000000000..4dd82f491df --- /dev/null +++ b/templates/portfolio/template/riot/src/app.riot @@ -0,0 +1,121 @@ + + + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+
+

{ p.title }

+

{ p.desc }

+
+
+
+
+ +
+
+

Skills

+
+ { s.name } +
+
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
+ + + + +
diff --git a/templates/portfolio/template/solid/package.json b/templates/portfolio/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/portfolio/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/portfolio/template/solid/src/App.tsx b/templates/portfolio/template/solid/src/App.tsx new file mode 100644 index 00000000000..cea2c311f1d --- /dev/null +++ b/templates/portfolio/template/solid/src/App.tsx @@ -0,0 +1,99 @@ +import { onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + const presetConfig = configs[randomKey] as Record; + + const options: ISourceOptions = { + ...presetConfig, + fullScreen: { enable: true, zIndex: -1 }, + } as ISourceOptions; + + function handleSubmit(e: Event) { + e.preventDefault(); + alert("Message sent! (demo)"); + const form = e.target as HTMLFormElement; + form.reset(); + } + + return ( + <> + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+ +
+
+

Projects

+
+
+

Project One

+

A web application built with React and TypeScript.

+
+
+

Project Two

+

Real-time dashboard with data visualization.

+
+
+

Project Three

+

Mobile-first e-commerce platform.

+
+
+
+
+ +
+
+

Skills

+
TypeScript
+
React
+
Node.js
+
CSS
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
+ + + + ); +} diff --git a/templates/portfolio/template/solid/src/index.css b/templates/portfolio/template/solid/src/index.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/solid/src/index.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/solid/src/main.tsx b/templates/portfolio/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/portfolio/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/portfolio/template/stencil/package.json b/templates/portfolio/template/stencil/package.json new file mode 100644 index 00000000000..9f0d6baa02c --- /dev/null +++ b/templates/portfolio/template/stencil/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "stencil build --dev --watch", + "build": "stencil build", + "preview": "stencil build --dev --watch" + }, + "dependencies": { + "@tsparticles/stencil": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "@stencil/core": "^4.20.0" + }, + "devDependencies": { + "typescript": "~5.8.0" + } +} diff --git a/templates/portfolio/template/stencil/src/components/app-home/app-home.tsx b/templates/portfolio/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..f4fe3fc1f77 --- /dev/null +++ b/templates/portfolio/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,109 @@ +import { Component, State, h } from "@stencil/core"; +import { ParticlesBase } from "@tsparticles/stencil"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const keys = Object.keys(configs); +const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; +const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, +} as ISourceOptions; + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + scoped: true, +}) +export class AppHome { + @State() + private navItems = ["Home", "About", "Projects", "Skills", "Contact"]; + + @State() + private projects = [ + { title: "Project One", desc: "A web application built with Stencil and TypeScript." }, + { title: "Project Two", desc: "Real-time dashboard with data visualization." }, + { title: "Project Three", desc: "Mobile-first e-commerce platform." }, + ]; + + @State() + private skills = [ + { name: "TypeScript", pct: 90 }, + { name: "Stencil", pct: 85 }, + { name: "Node.js", pct: 80 }, + { name: "CSS", pct: 88 }, + ]; + + connectedCallback(): void { + void ParticlesBase.init(async (engine) => { + await loadSlim(engine); + }); + } + + private handleSubmit(e: Event): void { + e.preventDefault(); + alert("Message sent! (demo)"); + (e.target as HTMLFormElement).reset(); + } + + render() { + return ( +
+ + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+ {this.projects.map((p) => ( +
+

{p.title}

+

{p.desc}

+
+ ))} +
+
+
+
+
+

Skills

+ {this.skills.map((s) => ( +
+ {s.name} +
+
+ ))} +
+
+
+
+

Contact

+
+ + + + +
+
+
+
+ ); + } +} diff --git a/templates/portfolio/template/svelte/package.json b/templates/portfolio/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/portfolio/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/portfolio/template/svelte/src/App.svelte b/templates/portfolio/template/svelte/src/App.svelte new file mode 100644 index 00000000000..84a0e3091fc --- /dev/null +++ b/templates/portfolio/template/svelte/src/App.svelte @@ -0,0 +1,289 @@ + + + + +
+
+

Hi, I'm Alex

+

Full-Stack Developer & Designer

+
+
+ +
+
+

About Me

+

+ I'm a passionate developer with experience building modern web applications. + I love creating elegant solutions to complex problems, and I'm always + exploring new technologies to stay at the cutting edge. +

+
+
+ +
+
+

Projects

+
+
+

Project Alpha

+

A real-time collaboration platform built with modern web technologies.

+
+
+

Project Beta

+

An AI-powered analytics dashboard for data-driven decision making.

+
+
+

Project Gamma

+

A cross-platform mobile app for tracking personal fitness goals.

+
+
+
+
+ +
+
+

Skills

+
+ TypeScript +
+
+
+ React +
+
+
+ Node.js +
+
+
+ Python +
+
+
+ Svelte +
+
+
+
+ +
+
+

Contact

+
+ + + + +
+
+
+ + + + diff --git a/templates/portfolio/template/svelte/src/main.ts b/templates/portfolio/template/svelte/src/main.ts new file mode 100644 index 00000000000..919025c542a --- /dev/null +++ b/templates/portfolio/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/portfolio/template/vanilla/LICENSE b/templates/portfolio/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/portfolio/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/portfolio/template/vanilla/README.md b/templates/portfolio/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/portfolio/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/portfolio/template/vanilla/gitignore b/templates/portfolio/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/portfolio/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/portfolio/template/vanilla/index.html b/templates/portfolio/template/vanilla/index.html new file mode 100644 index 00000000000..b57b462bb3d --- /dev/null +++ b/templates/portfolio/template/vanilla/index.html @@ -0,0 +1,69 @@ + + + + + + {{projectName}} + + + +
+
+

Hello, I'm Your Name

+

Full-Stack Developer & Designer

+
+
+
+
+

About Me

+

A passionate developer who loves building beautiful and performant web applications. Experienced in modern JavaScript frameworks, cloud infrastructure, and UI/UX design.

+
+
+
+
+

Projects

+
+
+

Project One

+

A web application built with React and TypeScript.

+
+
+

Project Two

+

Real-time dashboard with data visualization.

+
+
+

Project Three

+

Mobile-first e-commerce platform.

+
+
+
+
+
+
+

Skills

+
TypeScript
+
React
+
Node.js
+
CSS
+
+
+
+
+

Contact

+
+ + + + +
+
+
+ + + diff --git a/templates/portfolio/template/vanilla/package.json b/templates/portfolio/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/portfolio/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/portfolio/template/vanilla/src/main.ts b/templates/portfolio/template/vanilla/src/main.ts new file mode 100644 index 00000000000..1bd386040e1 --- /dev/null +++ b/templates/portfolio/template/vanilla/src/main.ts @@ -0,0 +1,27 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; + +(async () => { + await loadSlim(tsParticles); + + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + + await tsParticles.load({ + id: "tsparticles", + options: { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, + }, + }); + + const contactForm = document.getElementById("contactForm") as HTMLFormElement; + + contactForm.addEventListener("submit", (e) => { + e.preventDefault(); + alert("Message sent! (demo)"); + contactForm.reset(); + }); +})(); diff --git a/templates/portfolio/template/vanilla/src/style.css b/templates/portfolio/template/vanilla/src/style.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/vanilla/src/style.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/portfolio/template/vanilla/tsconfig.json b/templates/portfolio/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/portfolio/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/portfolio/template/vanilla/vite.config.ts b/templates/portfolio/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/portfolio/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/portfolio/template/vue2/package.json b/templates/portfolio/template/vue2/package.json new file mode 100644 index 00000000000..1b8d5e3b28a --- /dev/null +++ b/templates/portfolio/template/vue2/package.json @@ -0,0 +1,22 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/vue2": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0", + "vue": "^2.7.16" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.3.0", + "typescript": "~5.8.0", + "vite": "^7.0.0" + } +} diff --git a/templates/portfolio/template/vue2/src/App.vue b/templates/portfolio/template/vue2/src/App.vue new file mode 100644 index 00000000000..a62d876ba96 --- /dev/null +++ b/templates/portfolio/template/vue2/src/App.vue @@ -0,0 +1,273 @@ + + + + + diff --git a/templates/portfolio/template/vue3/package.json b/templates/portfolio/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/portfolio/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/portfolio/template/vue3/src/App.vue b/templates/portfolio/template/vue3/src/App.vue new file mode 100644 index 00000000000..38e60c60cd2 --- /dev/null +++ b/templates/portfolio/template/vue3/src/App.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/templates/portfolio/template/vue3/src/main.ts b/templates/portfolio/template/vue3/src/main.ts new file mode 100644 index 00000000000..5dcbea5f227 --- /dev/null +++ b/templates/portfolio/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/portfolio/template/webcomponents/package.json b/templates/portfolio/template/webcomponents/package.json new file mode 100644 index 00000000000..65a31f87304 --- /dev/null +++ b/templates/portfolio/template/webcomponents/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "{{version}}", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/webcomponents": "^4.1.3", + "@tsparticles/engine": "^4.0.0", + "@tsparticles/slim": "^4.0.0", + "@tsparticles/configs": "^4.0.0" + }, + "devDependencies": { + "typescript": "~5.8.0", + "vite": "^7.0.0" + } +} diff --git a/templates/portfolio/template/webcomponents/src/main.ts b/templates/portfolio/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..34e510823ce --- /dev/null +++ b/templates/portfolio/template/webcomponents/src/main.ts @@ -0,0 +1,38 @@ +import "./style.css"; +import { ParticlesBase } from "@tsparticles/webcomponents"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +(async () => { + await ParticlesBase.init(async (engine) => { + await loadSlim(engine); + }); + + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + const options: ISourceOptions = { + ...configs[randomKey], + fullScreen: { enable: true, zIndex: -1 }, + } as ISourceOptions; + + const particlesEl = document.createElement("ts-particles"); + particlesEl.id = "tsparticles"; + (particlesEl as unknown as Record).options = options; + document.body.appendChild(particlesEl); + + document.querySelectorAll(".nav-link").forEach((link) => { + link.addEventListener("click", (e) => { + e.preventDefault(); + const target = document.querySelector((e.target as HTMLAnchorElement).getAttribute("href")!); + if (target) target.scrollIntoView({ behavior: "smooth" }); + }); + }); + + const contactForm = document.getElementById("contactForm") as HTMLFormElement; + contactForm.addEventListener("submit", (e) => { + e.preventDefault(); + alert("Message sent! (demo)"); + contactForm.reset(); + }); +})(); diff --git a/templates/portfolio/template/webcomponents/src/style.css b/templates/portfolio/template/webcomponents/src/style.css new file mode 100644 index 00000000000..3e9c0c1b101 --- /dev/null +++ b/templates/portfolio/template/webcomponents/src/style.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; + background: #0a0a1a; +} + +#navbar { + position: fixed; + top: 0; + width: 100%; + z-index: 100; + display: flex; + justify-content: center; + gap: 2rem; + padding: 1rem; + background: rgba(10, 10, 26, 0.8); + backdrop-filter: blur(10px); +} + +.nav-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + font-size: 0.9em; + transition: color 0.2s; +} + +.nav-link:hover { + color: #6c5ce7; +} + +.section { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +#hero { + position: relative; +} + +.hero-content { + text-align: center; + z-index: 10; +} + +.hero-content h1 { + font-size: 3.5em; + margin-bottom: 0.5rem; +} + +.highlight { + color: #6c5ce7; +} + +.subtitle { + font-size: 1.3em; + opacity: 0.7; +} + +.content-section { + padding: 6rem 1rem; + min-height: auto; +} + +.container { + max-width: 900px; + width: 100%; + margin: 0 auto; +} + +h2 { + font-size: 2.2em; + margin-bottom: 2rem; + color: #6c5ce7; +} + +p { + line-height: 1.7; + opacity: 0.85; + font-size: 1.1em; +} + +.project-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: transform 0.2s, border-color 0.2s; +} + +.project-card:hover { + transform: translateY(-4px); + border-color: #6c5ce7; +} + +.project-card h3 { + margin-bottom: 0.5rem; +} + +.skill-bar { + margin-bottom: 1.2rem; +} + +.skill-name { + display: block; + margin-bottom: 0.3em; + font-size: 0.95em; + opacity: 0.8; +} + +.bar { + height: 10px; + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; +} + +.fill { + height: 100%; + background: linear-gradient(90deg, #6c5ce7, #a29bfe); + border-radius: 5px; + transition: width 1s ease; +} + +#contactForm { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 500px; +} + +#contactForm input, +#contactForm textarea { + padding: 0.8em 1em; + font-size: 1em; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: #fff; + outline: none; + font-family: inherit; +} + +#contactForm input:focus, +#contactForm textarea:focus { + border-color: #6c5ce7; +} + +#contactForm button { + padding: 0.8em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +#contactForm button:hover { + background: #a29bfe; +} diff --git a/templates/react-ts/CHANGELOG.md b/templates/react-ts/CHANGELOG.md index 800494d4719..fe49a68d0f0 100644 --- a/templates/react-ts/CHANGELOG.md +++ b/templates/react-ts/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package cra-template-particles-typescript diff --git a/templates/react-ts/package.json b/templates/react-ts/package.json index 9676cab1da5..2282f449af2 100644 --- a/templates/react-ts/package.json +++ b/templates/react-ts/package.json @@ -1,6 +1,7 @@ { "name": "cra-template-particles-typescript", - "version": "4.1.3", + "version": "4.2.0", + "deprecated": "Use @tsparticles/template-scaffold instead. Create React App is deprecated. Run `npm create tsparticles` for Vite-based templates.", "description": "Official TypeScript React tsParticles template", "keywords": [ "front-end", @@ -91,7 +92,7 @@ "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@tsparticles/engine": "workspace:*", - "@tsparticles/react": "workspace:^", + "@tsparticles/react": "workspace:*", "@types/jest": "^30.0.0", "@types/node": "^25.6.0", "@types/react": "^19.2.14", diff --git a/templates/react-ts/template.json b/templates/react-ts/template.json index 767b8a50944..1afe6b612cc 100644 --- a/templates/react-ts/template.json +++ b/templates/react-ts/template.json @@ -9,12 +9,12 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/jest": "^30.0.0", - "@tsparticles/react": "^4.1.3", - "@tsparticles/engine": "^4.1.3", + "@tsparticles/react": "^4.2.0", + "@tsparticles/engine": "^4.2.0", "tslib": "^2.8.1", "typescript": "^6.0.2", "web-vitals": "^5.2.0", - "tsparticles": "^4.1.3" + "tsparticles": "^4.2.0" } } } \ No newline at end of file diff --git a/templates/react/CHANGELOG.md b/templates/react/CHANGELOG.md index 3c77326e532..8430edf2111 100644 --- a/templates/react/CHANGELOG.md +++ b/templates/react/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package cra-template-particles diff --git a/templates/react/package.json b/templates/react/package.json index 1fd82fb68aa..c84503639ee 100644 --- a/templates/react/package.json +++ b/templates/react/package.json @@ -1,6 +1,7 @@ { "name": "cra-template-particles", - "version": "4.1.3", + "version": "4.2.0", + "deprecated": "Use @tsparticles/template-scaffold instead. Create React App is deprecated. Run `npm create tsparticles` for Vite-based templates.", "description": "Official React tsParticles template", "keywords": [ "front-end", @@ -87,7 +88,7 @@ ], "dependencies": { "@tsparticles/engine": "workspace:*", - "@tsparticles/react": "workspace:^", + "@tsparticles/react": "workspace:*", "tslib": "^2.8.1", "tsparticles": "workspace:*" }, diff --git a/templates/react/template.json b/templates/react/template.json index 4735bfff28a..b130adbfa73 100644 --- a/templates/react/template.json +++ b/templates/react/template.json @@ -1,9 +1,9 @@ { "package": { "dependencies": { - "@tsparticles/react": "^4.1.3", - "@tsparticles/engine": "^4.1.3", - "tsparticles": "^4.1.3", + "@tsparticles/react": "^4.2.0", + "@tsparticles/engine": "^4.2.0", + "tsparticles": "^4.2.0", "tslib": "^2.8.1" } } diff --git a/templates/ribbons/CHANGELOG.md b/templates/ribbons/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/ribbons/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/ribbons/LICENSE b/templates/ribbons/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/ribbons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/ribbons/README.md b/templates/ribbons/README.md new file mode 100644 index 00000000000..3dcdaabc03c --- /dev/null +++ b/templates/ribbons/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-ribbons + +tsParticles ribbons template. Use with `create-tsparticles-app` to scaffold a new ribbons animation project. diff --git a/templates/ribbons/package.json b/templates/ribbons/package.json new file mode 100644 index 00000000000..e2f0248b3a7 --- /dev/null +++ b/templates/ribbons/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-ribbons", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/ribbons/scripts/prebuild.js b/templates/ribbons/scripts/prebuild.js new file mode 100644 index 00000000000..57a32b3b23d --- /dev/null +++ b/templates/ribbons/scripts/prebuild.js @@ -0,0 +1,64 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/ribbons": require("../../../bundles/ribbons/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/ribbons/template.json b/templates/ribbons/template.json new file mode 100644 index 00000000000..b35d5f8dfeb --- /dev/null +++ b/templates/ribbons/template.json @@ -0,0 +1,12 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/ribbons": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/ribbons/template/angular-confetti/package.json b/templates/ribbons/template/angular-confetti/package.json new file mode 100644 index 00000000000..9814eb7c7f6 --- /dev/null +++ b/templates/ribbons/template/angular-confetti/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/ribbons/template/angular-confetti/src/app/app.component.css b/templates/ribbons/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/angular-confetti/src/app/app.component.html b/templates/ribbons/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..61b46ca877b --- /dev/null +++ b/templates/ribbons/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,6 @@ +
+

Ribbons

+
+ +
+
diff --git a/templates/ribbons/template/angular-confetti/src/app/app.component.ts b/templates/ribbons/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..d1809af383a --- /dev/null +++ b/templates/ribbons/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from "@angular/core"; +import { ribbons } from "@tsparticles/ribbons"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + fireRibbons(): void { + ribbons(); + } +} diff --git a/templates/ribbons/template/angular-fireworks/package.json b/templates/ribbons/template/angular-fireworks/package.json new file mode 100644 index 00000000000..9814eb7c7f6 --- /dev/null +++ b/templates/ribbons/template/angular-fireworks/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/ribbons/template/angular-fireworks/src/app/app.component.css b/templates/ribbons/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/angular-fireworks/src/app/app.component.html b/templates/ribbons/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..61b46ca877b --- /dev/null +++ b/templates/ribbons/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,6 @@ +
+

Ribbons

+
+ +
+
diff --git a/templates/ribbons/template/angular-fireworks/src/app/app.component.ts b/templates/ribbons/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..d1809af383a --- /dev/null +++ b/templates/ribbons/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from "@angular/core"; +import { ribbons } from "@tsparticles/ribbons"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + fireRibbons(): void { + ribbons(); + } +} diff --git a/templates/ribbons/template/angular/package.json b/templates/ribbons/template/angular/package.json new file mode 100644 index 00000000000..d02aa6c1787 --- /dev/null +++ b/templates/ribbons/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/ribbons/template/angular/src/app/app.component.css b/templates/ribbons/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/angular/src/app/app.component.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/angular/src/app/app.component.html b/templates/ribbons/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..61b46ca877b --- /dev/null +++ b/templates/ribbons/template/angular/src/app/app.component.html @@ -0,0 +1,6 @@ +
+

Ribbons

+
+ +
+
diff --git a/templates/ribbons/template/angular/src/app/app.component.ts b/templates/ribbons/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..d1809af383a --- /dev/null +++ b/templates/ribbons/template/angular/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from "@angular/core"; +import { ribbons } from "@tsparticles/ribbons"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + fireRibbons(): void { + ribbons(); + } +} diff --git a/templates/ribbons/template/astro/package.json b/templates/ribbons/template/astro/package.json new file mode 100644 index 00000000000..c66b8e3d726 --- /dev/null +++ b/templates/ribbons/template/astro/package.json @@ -0,0 +1,17 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "@tsparticles/astro": "^4.1.3", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "astro": "^5.0.0" + } +} diff --git a/templates/ribbons/template/astro/src/pages/index.astro b/templates/ribbons/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..71c38420072 --- /dev/null +++ b/templates/ribbons/template/astro/src/pages/index.astro @@ -0,0 +1,70 @@ +--- +import { ribbons } from "@tsparticles/ribbons"; +--- + + + + + + Ribbons + + +
+

Ribbons

+
+ +
+
+ + + + + + diff --git a/templates/ribbons/template/ember/app/templates/application.hbs b/templates/ribbons/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..4027c6c784c --- /dev/null +++ b/templates/ribbons/template/ember/app/templates/application.hbs @@ -0,0 +1,6 @@ +
+

Ribbons

+
+ +
+
diff --git a/templates/ribbons/template/ember/package.json b/templates/ribbons/template/ember/package.json new file mode 100644 index 00000000000..18532c2a65f --- /dev/null +++ b/templates/ribbons/template/ember/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "ember build", + "start": "ember serve", + "preview": "ember serve", + "dev": "ember serve" + }, + "dependencies": { + "@tsparticles/ember": "^4.1.3", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1" + }, + "devDependencies": { + "ember-cli": "~6.4.0", + "ember-source": "~6.4.0" + } +} diff --git a/templates/ribbons/template/inferno/package.json b/templates/ribbons/template/inferno/package.json new file mode 100644 index 00000000000..5452d54f933 --- /dev/null +++ b/templates/ribbons/template/inferno/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/inferno": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "inferno": "^8.2.0" + }, + "devDependencies": { + "babel-plugin-inferno": "^6.5.0", + "vite-plugin-inferno": "^1.0.0" + } +} diff --git a/templates/ribbons/template/inferno/src/App.css b/templates/ribbons/template/inferno/src/App.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/inferno/src/App.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/inferno/src/App.tsx b/templates/ribbons/template/inferno/src/App.tsx new file mode 100644 index 00000000000..5bc0036311b --- /dev/null +++ b/templates/ribbons/template/inferno/src/App.tsx @@ -0,0 +1,13 @@ +import { ribbons } from "@tsparticles/ribbons"; +import "./App.css"; + +export default function App() { + return ( +
+

Ribbons

+
+ +
+
+ ); +} diff --git a/templates/ribbons/template/jquery/package.json b/templates/ribbons/template/jquery/package.json new file mode 100644 index 00000000000..966d35a6921 --- /dev/null +++ b/templates/ribbons/template/jquery/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/jquery": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "jquery": "^3.7.1" + }, + "devDependencies": { + "@types/jquery": "^3.5.32" + } +} diff --git a/templates/ribbons/template/jquery/src/main.ts b/templates/ribbons/template/jquery/src/main.ts new file mode 100644 index 00000000000..e8094390e8e --- /dev/null +++ b/templates/ribbons/template/jquery/src/main.ts @@ -0,0 +1,7 @@ +import "./style.css"; +import $ from "jquery"; +import { ribbons } from "@tsparticles/ribbons"; + +$(() => { + $("#fireBtn").on("click", () => ribbons()); +}); diff --git a/templates/ribbons/template/jquery/src/style.css b/templates/ribbons/template/jquery/src/style.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/jquery/src/style.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/lit/package.json b/templates/ribbons/template/lit/package.json new file mode 100644 index 00000000000..5360328ac45 --- /dev/null +++ b/templates/ribbons/template/lit/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/lit": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "lit": "^3.1.0" + }, + "devDependencies": { + "typescript": "~5.8.2" + } +} diff --git a/templates/ribbons/template/lit/src/my-app.ts b/templates/ribbons/template/lit/src/my-app.ts new file mode 100644 index 00000000000..c846a74d153 --- /dev/null +++ b/templates/ribbons/template/lit/src/my-app.ts @@ -0,0 +1,23 @@ +import { LitElement, html } from "lit"; +import { customElement } from "lit/decorators.js"; +import { initParticlesEngine } from "@tsparticles/lit"; +import { ribbons } from "@tsparticles/ribbons"; +import { confetti } from "@tsparticles/confetti"; + +@customElement("my-app") +export class MyApp extends LitElement { + private fireRibbons(): void { + ribbons(); + } + + render() { + return html` +
+

Ribbons

+
+ +
+
+ `; + } +} diff --git a/templates/ribbons/template/nextjs/package.json b/templates/ribbons/template/nextjs/package.json new file mode 100644 index 00000000000..39db9f4eb26 --- /dev/null +++ b/templates/ribbons/template/nextjs/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "preview": "next start" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "@tsparticles/react": "^4.1.3", + "next": "^15.0.0", + "react": "^19.2.5", + "react-dom": "^19.2.5" + } +} diff --git a/templates/ribbons/template/nextjs/src/app/page.tsx b/templates/ribbons/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..c2bd7467fe0 --- /dev/null +++ b/templates/ribbons/template/nextjs/src/app/page.tsx @@ -0,0 +1,14 @@ +"use client"; + +import { ribbons } from "@tsparticles/ribbons"; + +export default function Home() { + return ( +
+

Ribbons

+
+ +
+
+ ); +} diff --git a/templates/ribbons/template/nuxt2/package.json b/templates/ribbons/template/nuxt2/package.json new file mode 100644 index 00000000000..f47f11dfddb --- /dev/null +++ b/templates/ribbons/template/nuxt2/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "start": "nuxt start", + "preview": "nuxt start", + "generate": "nuxt generate" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/nuxt2": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "nuxt": "^2.18.0" + } +} diff --git a/templates/ribbons/template/nuxt2/pages/index.vue b/templates/ribbons/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..6e272b06dd3 --- /dev/null +++ b/templates/ribbons/template/nuxt2/pages/index.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/templates/ribbons/template/nuxt3/app.vue b/templates/ribbons/template/nuxt3/app.vue new file mode 100644 index 00000000000..740442d6f1e --- /dev/null +++ b/templates/ribbons/template/nuxt3/app.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/templates/ribbons/template/nuxt3/package.json b/templates/ribbons/template/nuxt3/package.json new file mode 100644 index 00000000000..1934f4b9ed6 --- /dev/null +++ b/templates/ribbons/template/nuxt3/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "start": "nuxt start", + "preview": "nuxt start" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/nuxt3": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "nuxt": "^3.15.0" + } +} diff --git a/templates/ribbons/template/nuxt4/app.vue b/templates/ribbons/template/nuxt4/app.vue new file mode 100644 index 00000000000..740442d6f1e --- /dev/null +++ b/templates/ribbons/template/nuxt4/app.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/templates/ribbons/template/nuxt4/package.json b/templates/ribbons/template/nuxt4/package.json new file mode 100644 index 00000000000..56a6bdba45d --- /dev/null +++ b/templates/ribbons/template/nuxt4/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "start": "nuxt start", + "preview": "nuxt start" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/nuxt4": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "nuxt": "^4.0.0" + }, + "devDependencies": { + "typescript": "~5.8.2" + } +} diff --git a/templates/ribbons/template/preact/package.json b/templates/ribbons/template/preact/package.json new file mode 100644 index 00000000000..1a70cd78391 --- /dev/null +++ b/templates/ribbons/template/preact/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/preact": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1", + "preact": "^10.25.0" + }, + "devDependencies": { + "@preact/preset-vite": "^2.10.1" + } +} diff --git a/templates/ribbons/template/preact/src/App.css b/templates/ribbons/template/preact/src/App.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/preact/src/App.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/preact/src/App.tsx b/templates/ribbons/template/preact/src/App.tsx new file mode 100644 index 00000000000..5bc0036311b --- /dev/null +++ b/templates/ribbons/template/preact/src/App.tsx @@ -0,0 +1,13 @@ +import { ribbons } from "@tsparticles/ribbons"; +import "./App.css"; + +export default function App() { + return ( +
+

Ribbons

+
+ +
+
+ ); +} diff --git a/templates/ribbons/template/qwik/package.json b/templates/ribbons/template/qwik/package.json new file mode 100644 index 00000000000..40d2d9c3589 --- /dev/null +++ b/templates/ribbons/template/qwik/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/qwik": "^4.1.3", + "@tsparticles/ribbons": "^3.8.1" + }, + "devDependencies": { + "typescript": "~5.8.2" + } +} diff --git a/templates/ribbons/template/qwik/src/App.tsx b/templates/ribbons/template/qwik/src/App.tsx new file mode 100644 index 00000000000..3550860ac82 --- /dev/null +++ b/templates/ribbons/template/qwik/src/App.tsx @@ -0,0 +1,13 @@ +import { component$ } from "@builder.io/qwik"; +import { ribbons } from "@tsparticles/ribbons"; + +export default component$(() => { + return ( +
+

Ribbons

+
+ +
+
+ ); +}); diff --git a/templates/ribbons/template/react/package.json b/templates/ribbons/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/ribbons/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/ribbons/template/react/src/App.css b/templates/ribbons/template/react/src/App.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/react/src/App.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/react/src/App.tsx b/templates/ribbons/template/react/src/App.tsx new file mode 100644 index 00000000000..9bfd5c7b960 --- /dev/null +++ b/templates/ribbons/template/react/src/App.tsx @@ -0,0 +1,23 @@ +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { ribbons } from "@tsparticles/ribbons"; +import type { Engine } from "@tsparticles/engine"; +import "./App.css"; + +async function init(engine: Engine): Promise {} + +export default function App() { + function fireRibbons() { + ribbons(); + } + + return ( + +
+

Ribbons

+
+ +
+
+
+ ); +} diff --git a/templates/ribbons/template/riot/package.json b/templates/ribbons/template/riot/package.json new file mode 100644 index 00000000000..1194973b2fb --- /dev/null +++ b/templates/ribbons/template/riot/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "@tsparticles/riot": "^4.1.3", + "riot": "^9.0.0" + }, + "devDependencies": { + "@riotjs/compiler": "^9.0.0", + "vite-plugin-riot": "^1.9.0" + } +} diff --git a/templates/ribbons/template/riot/src/app.riot b/templates/ribbons/template/riot/src/app.riot new file mode 100644 index 00000000000..add9b3626df --- /dev/null +++ b/templates/ribbons/template/riot/src/app.riot @@ -0,0 +1,61 @@ + +
+

Ribbons

+
+ +
+
+ + + + +
diff --git a/templates/ribbons/template/solid/package.json b/templates/ribbons/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/ribbons/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/ribbons/template/solid/src/App.tsx b/templates/ribbons/template/solid/src/App.tsx new file mode 100644 index 00000000000..1b9d3fc35f1 --- /dev/null +++ b/templates/ribbons/template/solid/src/App.tsx @@ -0,0 +1,12 @@ +import { ribbons } from "@tsparticles/ribbons"; + +export default function App() { + return ( +
+

Ribbons

+
+ +
+
+ ); +} diff --git a/templates/ribbons/template/solid/src/index.css b/templates/ribbons/template/solid/src/index.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/solid/src/index.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/solid/src/main.tsx b/templates/ribbons/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/ribbons/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/ribbons/template/stencil/package.json b/templates/ribbons/template/stencil/package.json new file mode 100644 index 00000000000..f4bc0750962 --- /dev/null +++ b/templates/ribbons/template/stencil/package.json @@ -0,0 +1,17 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "stencil build", + "start": "stencil build --dev --watch --serve", + "preview": "stencil build --dev --watch --serve", + "dev": "stencil build --dev --watch --serve" + }, + "dependencies": { + "@stencil/core": "^4.20.0", + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "@tsparticles/stencil": "^4.1.3" + } +} diff --git a/templates/ribbons/template/stencil/src/components/app-home/app-home.tsx b/templates/ribbons/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..9380378222f --- /dev/null +++ b/templates/ribbons/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,22 @@ +import { Component, h } from "@stencil/core"; +import { ribbons } from "@tsparticles/ribbons"; + +@Component({ + tag: "app-home", +}) +export class AppHome { + private fireRibbons(): void { + ribbons(); + } + + render() { + return ( +
+

Ribbons

+
+ +
+
+ ); + } +} diff --git a/templates/ribbons/template/svelte/package.json b/templates/ribbons/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/ribbons/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/ribbons/template/svelte/src/App.svelte b/templates/ribbons/template/svelte/src/App.svelte new file mode 100644 index 00000000000..b8d33912f46 --- /dev/null +++ b/templates/ribbons/template/svelte/src/App.svelte @@ -0,0 +1,55 @@ + + +

tsParticles Ribbons

+
+ +
+ + diff --git a/templates/ribbons/template/svelte/src/main.ts b/templates/ribbons/template/svelte/src/main.ts new file mode 100644 index 00000000000..5409f56b109 --- /dev/null +++ b/templates/ribbons/template/svelte/src/main.ts @@ -0,0 +1,6 @@ +import { mount } from "svelte"; +import App from "./App.svelte"; + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/ribbons/template/vanilla/LICENSE b/templates/ribbons/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/ribbons/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/ribbons/template/vanilla/README.md b/templates/ribbons/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/ribbons/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/ribbons/template/vanilla/gitignore b/templates/ribbons/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/ribbons/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/ribbons/template/vanilla/index.html b/templates/ribbons/template/vanilla/index.html new file mode 100644 index 00000000000..0578fcbf05e --- /dev/null +++ b/templates/ribbons/template/vanilla/index.html @@ -0,0 +1,17 @@ + + + + + + {{projectName}} + + +
+

Ribbons

+
+ +
+
+ + + diff --git a/templates/ribbons/template/vanilla/package.json b/templates/ribbons/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/ribbons/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/ribbons/template/vanilla/src/main.ts b/templates/ribbons/template/vanilla/src/main.ts new file mode 100644 index 00000000000..a001a98a4c2 --- /dev/null +++ b/templates/ribbons/template/vanilla/src/main.ts @@ -0,0 +1,8 @@ +import "./style.css"; +import { ribbons } from "@tsparticles/ribbons"; + +const fireBtn = document.getElementById("fireBtn") as HTMLButtonElement; + +fireBtn.addEventListener("click", () => { + ribbons(); +}); diff --git a/templates/ribbons/template/vanilla/src/style.css b/templates/ribbons/template/vanilla/src/style.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/vanilla/src/style.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/ribbons/template/vanilla/tsconfig.json b/templates/ribbons/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/ribbons/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/ribbons/template/vanilla/vite.config.ts b/templates/ribbons/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/ribbons/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/ribbons/template/vue2/package.json b/templates/ribbons/template/vue2/package.json new file mode 100644 index 00000000000..7d822d0f44e --- /dev/null +++ b/templates/ribbons/template/vue2/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1", + "@tsparticles/vue2": "^4.1.3", + "vue": "^2.7.16" + }, + "devDependencies": { + "vite-plugin-vue2": "^2.0.3" + } +} diff --git a/templates/ribbons/template/vue2/src/App.vue b/templates/ribbons/template/vue2/src/App.vue new file mode 100644 index 00000000000..02dda6e258d --- /dev/null +++ b/templates/ribbons/template/vue2/src/App.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/templates/ribbons/template/vue3/package.json b/templates/ribbons/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/ribbons/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/ribbons/template/vue3/src/App.vue b/templates/ribbons/template/vue3/src/App.vue new file mode 100644 index 00000000000..740442d6f1e --- /dev/null +++ b/templates/ribbons/template/vue3/src/App.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/templates/ribbons/template/vue3/src/main.ts b/templates/ribbons/template/vue3/src/main.ts new file mode 100644 index 00000000000..a67b4ecdcb6 --- /dev/null +++ b/templates/ribbons/template/vue3/src/main.ts @@ -0,0 +1,9 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, {}); + +app.mount("#app"); diff --git a/templates/ribbons/template/webcomponents/package.json b/templates/ribbons/template/webcomponents/package.json new file mode 100644 index 00000000000..c34d20b79d9 --- /dev/null +++ b/templates/ribbons/template/webcomponents/package.json @@ -0,0 +1,15 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/engine": "^3.8.1", + "@tsparticles/ribbons": "^3.8.1" + } +} diff --git a/templates/ribbons/template/webcomponents/src/main.ts b/templates/ribbons/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..5448ce32585 --- /dev/null +++ b/templates/ribbons/template/webcomponents/src/main.ts @@ -0,0 +1,18 @@ +import "./style.css"; +import { ribbons } from "@tsparticles/ribbons"; + +const app = document.getElementById("app")!; + +const btn = document.createElement("button"); +btn.textContent = "Fire Ribbons"; +btn.addEventListener("click", () => ribbons()); + +const controls = document.createElement("div"); +controls.className = "controls"; +controls.appendChild(btn); + +const title = document.createElement("h1"); +title.textContent = "Ribbons"; + +app.appendChild(title); +app.appendChild(controls); diff --git a/templates/ribbons/template/webcomponents/src/style.css b/templates/ribbons/template/webcomponents/src/style.css new file mode 100644 index 00000000000..5bd18849bca --- /dev/null +++ b/templates/ribbons/template/webcomponents/src/style.css @@ -0,0 +1,40 @@ +body { + margin: 0; + overflow: hidden; + background: #0a0a23; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; +} + +h1 { + font-size: 3.2em; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +.controls { + margin-top: 2rem; +} + +button { + padding: 0.8em 2em; + font-size: 1.1em; + border: none; + border-radius: 8px; + background: #6c5ce7; + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +button:hover { + background: #a29bfe; +} diff --git a/templates/scaffold/CHANGELOG.md b/templates/scaffold/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/scaffold/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/scaffold/LICENSE b/templates/scaffold/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/README.md b/templates/scaffold/README.md new file mode 100644 index 00000000000..c387f733691 --- /dev/null +++ b/templates/scaffold/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-scaffold + +tsParticles scaffold template. Use with `create-tsparticles-app` to scaffold a new tsParticles project. diff --git a/templates/scaffold/package.json b/templates/scaffold/package.json new file mode 100644 index 00000000000..376f372eb3f --- /dev/null +++ b/templates/scaffold/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-scaffold", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/scaffold/scripts/prebuild.js b/templates/scaffold/scripts/prebuild.js new file mode 100644 index 00000000000..bfd3e6dbe76 --- /dev/null +++ b/templates/scaffold/scripts/prebuild.js @@ -0,0 +1,65 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, + "@tsparticles/configs": require("../../../utils/configs/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/scaffold/template.json b/templates/scaffold/template.json new file mode 100644 index 00000000000..c70f3f52a8e --- /dev/null +++ b/templates/scaffold/template.json @@ -0,0 +1,13 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/configs": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/scaffold/template/angular-confetti/.browserslistrc b/templates/scaffold/template/angular-confetti/.browserslistrc new file mode 100644 index 00000000000..05995dadcbc --- /dev/null +++ b/templates/scaffold/template/angular-confetti/.browserslistrc @@ -0,0 +1,6 @@ +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR diff --git a/templates/scaffold/template/angular-confetti/.editorconfig b/templates/scaffold/template/angular-confetti/.editorconfig new file mode 100644 index 00000000000..c6c8b362193 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/templates/scaffold/template/angular-confetti/LICENSE b/templates/scaffold/template/angular-confetti/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/angular-confetti/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/angular-confetti/README.md b/templates/scaffold/template/angular-confetti/README.md new file mode 100644 index 00000000000..2c96bd56fda --- /dev/null +++ b/templates/scaffold/template/angular-confetti/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Angular Confetti project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/angular-confetti/angular.json b/templates/scaffold/template/angular-confetti/angular.json new file mode 100644 index 00000000000..d69f1654a10 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/angular.json @@ -0,0 +1,53 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "{{projectName}}": { + "projectType": "application", + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "assets": ["src/favicon.ico"], + "styles": ["src/styles.css"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "configurations": { + "production": { "buildTarget": "{{projectName}}:build:production" }, + "development": { "buildTarget": "{{projectName}}:build:development" } + }, + "defaultConfiguration": "development" + } + } + } + } +} diff --git a/templates/scaffold/template/angular-confetti/gitignore b/templates/scaffold/template/angular-confetti/gitignore new file mode 100644 index 00000000000..a7f64e133d0 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/gitignore @@ -0,0 +1,17 @@ +# dependencies +/node_modules + +# production +/dist + +# Angular CLI cache +.angular/cache + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/angular-confetti/package.json b/templates/scaffold/template/angular-confetti/package.json new file mode 100644 index 00000000000..6ad9b3e12af --- /dev/null +++ b/templates/scaffold/template/angular-confetti/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-confetti": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/scaffold/template/angular-confetti/src/app/app.component.css b/templates/scaffold/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..fb67ab9aafc --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,15 @@ +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/angular-confetti/src/app/app.component.html b/templates/scaffold/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..2e0c16c2bf6 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

Hello, tsParticles!

+
+ diff --git a/templates/scaffold/template/angular-confetti/src/app/app.component.ts b/templates/scaffold/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..3740f073999 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,27 @@ +import { Component } from "@angular/core"; +import type { ConfettiOptions } from "@tsparticles/confetti"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + options: ConfettiOptions = { + angle: 90, + count: 50, + spread: 45, + startVelocity: 45, + decay: 0.9, + gravity: 1, + drift: 0, + ticks: 200, + position: { x: 50, y: 50 }, + colors: ["#26ccff", "#a25afd", "#ff5e7e", "#88ff5a", "#fcff42", "#ffa62d", "#ff36ff"], + shapes: ["square", "circle"], + scalar: 1, + zIndex: 100, + disableForReducedMotion: true, + flat: false, + }; +} diff --git a/templates/scaffold/template/angular-confetti/src/app/app.module.ts b/templates/scaffold/template/angular-confetti/src/app/app.module.ts new file mode 100644 index 00000000000..25b00521de5 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/app/app.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { NgxConfettiModule } from "angular-confetti"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, NgxConfettiModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/scaffold/template/angular-confetti/src/index.html b/templates/scaffold/template/angular-confetti/src/index.html new file mode 100644 index 00000000000..f6790e32f26 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/index.html @@ -0,0 +1,12 @@ + + + + + {{projectName}} + + + + + + + diff --git a/templates/scaffold/template/angular-confetti/src/main.ts b/templates/scaffold/template/angular-confetti/src/main.ts new file mode 100644 index 00000000000..c8de31031ef --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/main.ts @@ -0,0 +1,6 @@ +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; + +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); diff --git a/templates/scaffold/template/angular-confetti/src/polyfills.ts b/templates/scaffold/template/angular-confetti/src/polyfills.ts new file mode 100644 index 00000000000..a201b2c3d32 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/polyfills.ts @@ -0,0 +1 @@ +import "zone.js"; diff --git a/templates/scaffold/template/angular-confetti/src/styles.css b/templates/scaffold/template/angular-confetti/src/styles.css new file mode 100644 index 00000000000..e84c8d8f613 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/src/styles.css @@ -0,0 +1,5 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} diff --git a/templates/scaffold/template/angular-confetti/tsconfig.app.json b/templates/scaffold/template/angular-confetti/tsconfig.app.json new file mode 100644 index 00000000000..5b9d3c5ecb0 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/angular-confetti/tsconfig.json b/templates/scaffold/template/angular-confetti/tsconfig.json new file mode 100644 index 00000000000..808336d5c5d --- /dev/null +++ b/templates/scaffold/template/angular-confetti/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "ignoreDeprecations": "6.0", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/templates/scaffold/template/angular-confetti/tsconfig.spec.json b/templates/scaffold/template/angular-confetti/tsconfig.spec.json new file mode 100644 index 00000000000..5d13f8ac1b9 --- /dev/null +++ b/templates/scaffold/template/angular-confetti/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/angular-fireworks/.browserslistrc b/templates/scaffold/template/angular-fireworks/.browserslistrc new file mode 100644 index 00000000000..05995dadcbc --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/.browserslistrc @@ -0,0 +1,6 @@ +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR diff --git a/templates/scaffold/template/angular-fireworks/.editorconfig b/templates/scaffold/template/angular-fireworks/.editorconfig new file mode 100644 index 00000000000..c6c8b362193 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/templates/scaffold/template/angular-fireworks/LICENSE b/templates/scaffold/template/angular-fireworks/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/angular-fireworks/README.md b/templates/scaffold/template/angular-fireworks/README.md new file mode 100644 index 00000000000..86256374891 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Angular Fireworks project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/angular-fireworks/angular.json b/templates/scaffold/template/angular-fireworks/angular.json new file mode 100644 index 00000000000..d69f1654a10 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/angular.json @@ -0,0 +1,53 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "{{projectName}}": { + "projectType": "application", + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "assets": ["src/favicon.ico"], + "styles": ["src/styles.css"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "configurations": { + "production": { "buildTarget": "{{projectName}}:build:production" }, + "development": { "buildTarget": "{{projectName}}:build:development" } + }, + "defaultConfiguration": "development" + } + } + } + } +} diff --git a/templates/scaffold/template/angular-fireworks/gitignore b/templates/scaffold/template/angular-fireworks/gitignore new file mode 100644 index 00000000000..a7f64e133d0 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/gitignore @@ -0,0 +1,17 @@ +# dependencies +/node_modules + +# production +/dist + +# Angular CLI cache +.angular/cache + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/angular-fireworks/package.json b/templates/scaffold/template/angular-fireworks/package.json new file mode 100644 index 00000000000..d552551cebe --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "angular-fireworks": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/scaffold/template/angular-fireworks/src/app/app.component.css b/templates/scaffold/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..fb67ab9aafc --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,15 @@ +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/angular-fireworks/src/app/app.component.html b/templates/scaffold/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..7b75b17108b --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

Hello, tsParticles!

+
+ diff --git a/templates/scaffold/template/angular-fireworks/src/app/app.component.ts b/templates/scaffold/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..9c1fcfaa2cd --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,29 @@ +import { Component } from "@angular/core"; +import type { FireworkOptions } from "@tsparticles/fireworks"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + options: FireworkOptions = { + background: "none", + brightness: { min: -30, max: 30 }, + colors: [ + "#FF0000", "#FF2A00", "#FF5500", "#FF8000", "#FFAA00", "#FFD400", + "#FFFF00", "#D4FF00", "#AAFF00", "#80FF00", "#55FF00", "#2AFF00", + "#00FF00", "#00FF2A", "#00FF55", "#00FF80", "#00FFAA", "#00FFD4", + "#00FFFF", "#00D4FF", "#00AAFF", "#0080FF", "#0055FF", "#002AFF", + "#0000FF", "#2A00FF", "#5500FF", "#8000FF", "#AA00FF", "#D400FF", + "#FF00FF", "#FF00D4", "#FF00AA", "#FF0080", "#FF0055", "#FF002A", + ], + gravity: 30, + minHeight: { min: 10, max: 30 }, + rate: 10, + saturation: { min: -30, max: 30 }, + sounds: true, + speed: { min: 20, max: 40 }, + splitCount: 100, + }; +} diff --git a/templates/scaffold/template/angular-fireworks/src/app/app.module.ts b/templates/scaffold/template/angular-fireworks/src/app/app.module.ts new file mode 100644 index 00000000000..ebbf295c827 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/app/app.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { NgxFireworksModule } from "angular-fireworks"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, NgxFireworksModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/scaffold/template/angular-fireworks/src/index.html b/templates/scaffold/template/angular-fireworks/src/index.html new file mode 100644 index 00000000000..f6790e32f26 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/index.html @@ -0,0 +1,12 @@ + + + + + {{projectName}} + + + + + + + diff --git a/templates/scaffold/template/angular-fireworks/src/main.ts b/templates/scaffold/template/angular-fireworks/src/main.ts new file mode 100644 index 00000000000..c8de31031ef --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/main.ts @@ -0,0 +1,6 @@ +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; + +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); diff --git a/templates/scaffold/template/angular-fireworks/src/polyfills.ts b/templates/scaffold/template/angular-fireworks/src/polyfills.ts new file mode 100644 index 00000000000..a201b2c3d32 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/polyfills.ts @@ -0,0 +1 @@ +import "zone.js"; diff --git a/templates/scaffold/template/angular-fireworks/src/styles.css b/templates/scaffold/template/angular-fireworks/src/styles.css new file mode 100644 index 00000000000..e84c8d8f613 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/src/styles.css @@ -0,0 +1,5 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} diff --git a/templates/scaffold/template/angular-fireworks/tsconfig.app.json b/templates/scaffold/template/angular-fireworks/tsconfig.app.json new file mode 100644 index 00000000000..5b9d3c5ecb0 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/angular-fireworks/tsconfig.json b/templates/scaffold/template/angular-fireworks/tsconfig.json new file mode 100644 index 00000000000..808336d5c5d --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "ignoreDeprecations": "6.0", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/templates/scaffold/template/angular-fireworks/tsconfig.spec.json b/templates/scaffold/template/angular-fireworks/tsconfig.spec.json new file mode 100644 index 00000000000..5d13f8ac1b9 --- /dev/null +++ b/templates/scaffold/template/angular-fireworks/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/angular/.browserslistrc b/templates/scaffold/template/angular/.browserslistrc new file mode 100644 index 00000000000..066f5d098a3 --- /dev/null +++ b/templates/scaffold/template/angular/.browserslistrc @@ -0,0 +1,5 @@ +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions diff --git a/templates/scaffold/template/angular/.editorconfig b/templates/scaffold/template/angular/.editorconfig new file mode 100644 index 00000000000..ae2ebfee965 --- /dev/null +++ b/templates/scaffold/template/angular/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/templates/scaffold/template/angular/LICENSE b/templates/scaffold/template/angular/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/angular/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/angular/README.md b/templates/scaffold/template/angular/README.md new file mode 100644 index 00000000000..0b995e01467 --- /dev/null +++ b/templates/scaffold/template/angular/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Angular project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/angular/angular.json b/templates/scaffold/template/angular/angular.json new file mode 100644 index 00000000000..d69f1654a10 --- /dev/null +++ b/templates/scaffold/template/angular/angular.json @@ -0,0 +1,53 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "{{projectName}}": { + "projectType": "application", + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "assets": ["src/favicon.ico"], + "styles": ["src/styles.css"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "configurations": { + "production": { "buildTarget": "{{projectName}}:build:production" }, + "development": { "buildTarget": "{{projectName}}:build:development" } + }, + "defaultConfiguration": "development" + } + } + } + } +} diff --git a/templates/scaffold/template/angular/gitignore b/templates/scaffold/template/angular/gitignore new file mode 100644 index 00000000000..a7f64e133d0 --- /dev/null +++ b/templates/scaffold/template/angular/gitignore @@ -0,0 +1,17 @@ +# dependencies +/node_modules + +# production +/dist + +# Angular CLI cache +.angular/cache + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/angular/package.json b/templates/scaffold/template/angular/package.json new file mode 100644 index 00000000000..6546078ad05 --- /dev/null +++ b/templates/scaffold/template/angular/package.json @@ -0,0 +1,33 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/scaffold/template/angular/src/app/app.component.css b/templates/scaffold/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..fb67ab9aafc --- /dev/null +++ b/templates/scaffold/template/angular/src/app/app.component.css @@ -0,0 +1,15 @@ +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/angular/src/app/app.component.html b/templates/scaffold/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..e389ddd9a69 --- /dev/null +++ b/templates/scaffold/template/angular/src/app/app.component.html @@ -0,0 +1,4 @@ +
+

Hello, tsParticles!

+
+ diff --git a/templates/scaffold/template/angular/src/app/app.component.ts b/templates/scaffold/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..602be08edb5 --- /dev/null +++ b/templates/scaffold/template/angular/src/app/app.component.ts @@ -0,0 +1,41 @@ +import { Component, OnInit } from "@angular/core"; +import { NgParticlesService } from "@tsparticles/angular"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent implements OnInit { + options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + constructor(private readonly ngParticlesService: NgParticlesService) {} + + ngOnInit(): void { + void this.ngParticlesService.init(async (engine) => { + await loadSlim(engine); + }); + } +} diff --git a/templates/scaffold/template/angular/src/app/app.module.ts b/templates/scaffold/template/angular/src/app/app.module.ts new file mode 100644 index 00000000000..aa8cbdd70ea --- /dev/null +++ b/templates/scaffold/template/angular/src/app/app.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; +import { NgxParticlesModule } from "@tsparticles/angular"; +import { AppComponent } from "./app.component"; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, NgxParticlesModule], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/templates/scaffold/template/angular/src/index.html b/templates/scaffold/template/angular/src/index.html new file mode 100644 index 00000000000..f6790e32f26 --- /dev/null +++ b/templates/scaffold/template/angular/src/index.html @@ -0,0 +1,12 @@ + + + + + {{projectName}} + + + + + + + diff --git a/templates/scaffold/template/angular/src/main.ts b/templates/scaffold/template/angular/src/main.ts new file mode 100644 index 00000000000..c8de31031ef --- /dev/null +++ b/templates/scaffold/template/angular/src/main.ts @@ -0,0 +1,6 @@ +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; + +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); diff --git a/templates/scaffold/template/angular/src/polyfills.ts b/templates/scaffold/template/angular/src/polyfills.ts new file mode 100644 index 00000000000..a201b2c3d32 --- /dev/null +++ b/templates/scaffold/template/angular/src/polyfills.ts @@ -0,0 +1 @@ +import "zone.js"; diff --git a/templates/scaffold/template/angular/src/styles.css b/templates/scaffold/template/angular/src/styles.css new file mode 100644 index 00000000000..e84c8d8f613 --- /dev/null +++ b/templates/scaffold/template/angular/src/styles.css @@ -0,0 +1,5 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} diff --git a/templates/scaffold/template/angular/tsconfig.app.json b/templates/scaffold/template/angular/tsconfig.app.json new file mode 100644 index 00000000000..5b9d3c5ecb0 --- /dev/null +++ b/templates/scaffold/template/angular/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/angular/tsconfig.json b/templates/scaffold/template/angular/tsconfig.json new file mode 100644 index 00000000000..808336d5c5d --- /dev/null +++ b/templates/scaffold/template/angular/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "ignoreDeprecations": "6.0", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/templates/scaffold/template/angular/tsconfig.spec.json b/templates/scaffold/template/angular/tsconfig.spec.json new file mode 100644 index 00000000000..5d13f8ac1b9 --- /dev/null +++ b/templates/scaffold/template/angular/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/templates/scaffold/template/astro/LICENSE b/templates/scaffold/template/astro/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/astro/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/astro/README.md b/templates/scaffold/template/astro/README.md new file mode 100644 index 00000000000..a8481195498 --- /dev/null +++ b/templates/scaffold/template/astro/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Astro project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/astro/gitignore b/templates/scaffold/template/astro/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/astro/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/astro/package.json b/templates/scaffold/template/astro/package.json new file mode 100644 index 00000000000..a5979939e77 --- /dev/null +++ b/templates/scaffold/template/astro/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "@astrojs/check": "^0.9.4", + "astro": "^5.7.10", + "@tsparticles/astro": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/scaffold/template/astro/src/pages/index.astro b/templates/scaffold/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..ccaf3d6f93d --- /dev/null +++ b/templates/scaffold/template/astro/src/pages/index.astro @@ -0,0 +1,35 @@ +--- +import { initParticlesEngine } from "@tsparticles/astro"; +import { loadSlim } from "@tsparticles/slim"; + +const id = "tsparticles"; + +// On the server, just defer to the client component. +// The init script below runs client-side. +--- + + + + + {{projectName}} + + + +
+

Hello, tsParticles!

+
+ + + + diff --git a/templates/scaffold/template/ember/LICENSE b/templates/scaffold/template/ember/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/ember/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/ember/README.md b/templates/scaffold/template/ember/README.md new file mode 100644 index 00000000000..678a79f27bc --- /dev/null +++ b/templates/scaffold/template/ember/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Ember project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/ember/app/controllers/application.js b/templates/scaffold/template/ember/app/controllers/application.js new file mode 100644 index 00000000000..958753217ad --- /dev/null +++ b/templates/scaffold/template/ember/app/controllers/application.js @@ -0,0 +1,35 @@ +import Controller from "@ember/controller"; +import { action } from "@ember/object"; +import { initParticlesEngine } from "@tsparticles/ember"; +import { loadSlim } from "@tsparticles/slim"; + +export default class ApplicationController extends Controller { + options = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + @action + async initParticles() { + await initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + } +} diff --git a/templates/scaffold/template/ember/app/templates/application.hbs b/templates/scaffold/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..050aa5d0317 --- /dev/null +++ b/templates/scaffold/template/ember/app/templates/application.hbs @@ -0,0 +1,14 @@ +
+
+ +
+

Hello, tsParticles!

+
+ +{{outlet}} + + diff --git a/templates/scaffold/template/ember/gitignore b/templates/scaffold/template/ember/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/ember/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/ember/package.json b/templates/scaffold/template/ember/package.json new file mode 100644 index 00000000000..eab0782ecf1 --- /dev/null +++ b/templates/scaffold/template/ember/package.json @@ -0,0 +1,41 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve" + }, + "devDependencies": { + "@ember/optional-features": "^3.0.0", + "@glimmer/component": "^2.1.1", + "@glimmer/tracking": "^1.1.2", + "broccoli-asset-rev": "^3.0.0", + "ember-auto-import": "^2.13.1", + "ember-cli": "~6.12.0", + "ember-cli-babel": "^8.3.1", + "ember-cli-htmlbars": "^7.0.1", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-cli-sri": "^2.1.1", + "ember-cli-terser": "^4.0.2", + "ember-load-initializers": "^3.0.1", + "ember-modifier": "^4.3.0", + "ember-resolver": "^13.2.0", + "ember-source": "~6.12.0", + "loader.js": "^4.7.0", + "typescript": "^6.0.3", + "webpack": "^5.106.1" + }, + "dependencies": { + "@tsparticles/ember": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/templates/scaffold/template/inferno/LICENSE b/templates/scaffold/template/inferno/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/inferno/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/inferno/README.md b/templates/scaffold/template/inferno/README.md new file mode 100644 index 00000000000..77f5e84c3c2 --- /dev/null +++ b/templates/scaffold/template/inferno/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Inferno project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/inferno/gitignore b/templates/scaffold/template/inferno/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/inferno/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/inferno/index.html b/templates/scaffold/template/inferno/index.html new file mode 100644 index 00000000000..c3037aaae64 --- /dev/null +++ b/templates/scaffold/template/inferno/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/inferno/package.json b/templates/scaffold/template/inferno/package.json new file mode 100644 index 00000000000..239a233cd31 --- /dev/null +++ b/templates/scaffold/template/inferno/package.json @@ -0,0 +1,23 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^9.1.0", + "@tsparticles/inferno": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14", + "babel-plugin-inferno": "^6.8.5", + "vite-plugin-inferno": "^2.0.1" + } +} diff --git a/templates/scaffold/template/inferno/src/App.tsx b/templates/scaffold/template/inferno/src/App.tsx new file mode 100644 index 00000000000..a72a0eacb37 --- /dev/null +++ b/templates/scaffold/template/inferno/src/App.tsx @@ -0,0 +1,37 @@ +import Particles, { ParticlesProvider } from "@tsparticles/inferno"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +export default function App() { + return ( + => { await loadSlim(engine); }}> +
+

Hello, tsParticles!

+
+ +
+ ); +} diff --git a/templates/scaffold/template/inferno/src/main.tsx b/templates/scaffold/template/inferno/src/main.tsx new file mode 100644 index 00000000000..cb957289f1d --- /dev/null +++ b/templates/scaffold/template/inferno/src/main.tsx @@ -0,0 +1,4 @@ +import { render } from "inferno"; +import App from "./App"; + +render(, document.getElementById("root")); diff --git a/templates/scaffold/template/inferno/tsconfig.json b/templates/scaffold/template/inferno/tsconfig.json new file mode 100644 index 00000000000..a50cbdfa1ce --- /dev/null +++ b/templates/scaffold/template/inferno/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "bundler", + "jsx": "preserve", + "jsxFactory": "createElement", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/inferno/vite.config.ts b/templates/scaffold/template/inferno/vite.config.ts new file mode 100644 index 00000000000..a4034f43d1e --- /dev/null +++ b/templates/scaffold/template/inferno/vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from "vite"; +import inferno from "vite-plugin-inferno"; + +export default defineConfig({ + plugins: [inferno()], + base: "./", + esbuild: { + jsxFactory: "createElement", + jsxFragment: "Fragment", + }, +}); diff --git a/templates/scaffold/template/jquery/LICENSE b/templates/scaffold/template/jquery/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/jquery/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/jquery/README.md b/templates/scaffold/template/jquery/README.md new file mode 100644 index 00000000000..82b33d8f6f4 --- /dev/null +++ b/templates/scaffold/template/jquery/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles jQuery project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/jquery/gitignore b/templates/scaffold/template/jquery/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/jquery/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/jquery/index.html b/templates/scaffold/template/jquery/index.html new file mode 100644 index 00000000000..36ed63c60e6 --- /dev/null +++ b/templates/scaffold/template/jquery/index.html @@ -0,0 +1,15 @@ + + + + + + {{projectName}} + + +
+

Hello, tsParticles!

+
+
+ + + diff --git a/templates/scaffold/template/jquery/package.json b/templates/scaffold/template/jquery/package.json new file mode 100644 index 00000000000..a8b61f9fb2e --- /dev/null +++ b/templates/scaffold/template/jquery/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/jquery": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/jquery/src/main.ts b/templates/scaffold/template/jquery/src/main.ts new file mode 100644 index 00000000000..039c05a65a5 --- /dev/null +++ b/templates/scaffold/template/jquery/src/main.ts @@ -0,0 +1,31 @@ +import $ from "jquery"; +import "@tsparticles/jquery"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import "./style.css"; + +(async () => { + await loadSlim(tsParticles); + + $("#tsparticles").particles().load({ + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }); +})(); diff --git a/templates/scaffold/template/jquery/src/style.css b/templates/scaffold/template/jquery/src/style.css new file mode 100644 index 00000000000..7cc7cc34e9d --- /dev/null +++ b/templates/scaffold/template/jquery/src/style.css @@ -0,0 +1,22 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/jquery/tsconfig.json b/templates/scaffold/template/jquery/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/scaffold/template/jquery/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/jquery/vite.config.ts b/templates/scaffold/template/jquery/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/scaffold/template/jquery/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/scaffold/template/lit/LICENSE b/templates/scaffold/template/lit/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/lit/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/lit/README.md b/templates/scaffold/template/lit/README.md new file mode 100644 index 00000000000..82b1bf1c28f --- /dev/null +++ b/templates/scaffold/template/lit/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Lit project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/lit/gitignore b/templates/scaffold/template/lit/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/lit/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/lit/index.html b/templates/scaffold/template/lit/index.html new file mode 100644 index 00000000000..eb4f51b450b --- /dev/null +++ b/templates/scaffold/template/lit/index.html @@ -0,0 +1,15 @@ + + + + + + {{projectName}} + + +
+

Hello, tsParticles!

+
+ + + + diff --git a/templates/scaffold/template/lit/package.json b/templates/scaffold/template/lit/package.json new file mode 100644 index 00000000000..2072a28a407 --- /dev/null +++ b/templates/scaffold/template/lit/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.5.0", + "@tsparticles/lit": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/lit/src/main.ts b/templates/scaffold/template/lit/src/main.ts new file mode 100644 index 00000000000..56f904f3b19 --- /dev/null +++ b/templates/scaffold/template/lit/src/main.ts @@ -0,0 +1,8 @@ +import { initParticlesEngine } from "@tsparticles/lit"; +import { loadSlim } from "@tsparticles/slim"; +import "./my-app"; +import "./style.css"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); diff --git a/templates/scaffold/template/lit/src/my-app.ts b/templates/scaffold/template/lit/src/my-app.ts new file mode 100644 index 00000000000..ac48294ebe8 --- /dev/null +++ b/templates/scaffold/template/lit/src/my-app.ts @@ -0,0 +1,34 @@ +import { LitElement, html } from "lit"; +import { customElement } from "lit/decorators.js"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, +}; + +@customElement("my-app") +export class MyApp extends LitElement { + render() { + return html` + + `; + } +} diff --git a/templates/scaffold/template/lit/src/style.css b/templates/scaffold/template/lit/src/style.css new file mode 100644 index 00000000000..73348789e82 --- /dev/null +++ b/templates/scaffold/template/lit/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/lit/tsconfig.json b/templates/scaffold/template/lit/tsconfig.json new file mode 100644 index 00000000000..51d250fb98e --- /dev/null +++ b/templates/scaffold/template/lit/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "experimentalDecorators": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/lit/vite.config.ts b/templates/scaffold/template/lit/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/scaffold/template/lit/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/scaffold/template/nextjs/LICENSE b/templates/scaffold/template/nextjs/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/nextjs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/nextjs/README.md b/templates/scaffold/template/nextjs/README.md new file mode 100644 index 00000000000..506631aadba --- /dev/null +++ b/templates/scaffold/template/nextjs/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Next.js project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/nextjs/gitignore b/templates/scaffold/template/nextjs/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/nextjs/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/nextjs/package.json b/templates/scaffold/template/nextjs/package.json new file mode 100644 index 00000000000..5de3fba3de7 --- /dev/null +++ b/templates/scaffold/template/nextjs/package.json @@ -0,0 +1,24 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "preview": "next start" + }, + "dependencies": { + "next": "^15.3.2", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/nextjs": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "@types/node": "^22.15.3", + "@types/react": "^19.1.4", + "@types/react-dom": "^19.1.3" + } +} diff --git a/templates/scaffold/template/nextjs/src/app/layout.tsx b/templates/scaffold/template/nextjs/src/app/layout.tsx new file mode 100644 index 00000000000..90db06ee0f3 --- /dev/null +++ b/templates/scaffold/template/nextjs/src/app/layout.tsx @@ -0,0 +1,16 @@ +import type { Metadata } from "next"; +import Providers from "./providers"; + +export const metadata: Metadata = { + title: "{{projectName}}", +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + {children} + + + ); +} diff --git a/templates/scaffold/template/nextjs/src/app/page.tsx b/templates/scaffold/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..aeed8d504a5 --- /dev/null +++ b/templates/scaffold/template/nextjs/src/app/page.tsx @@ -0,0 +1,30 @@ +"use client"; + +import { NextParticles } from "@tsparticles/nextjs"; +import type { ISourceOptions } from "@tsparticles/engine"; + +const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, +}; + +export default function Home() { + return ; +} diff --git a/templates/scaffold/template/nextjs/src/app/providers.tsx b/templates/scaffold/template/nextjs/src/app/providers.tsx new file mode 100644 index 00000000000..8aeb84e04cf --- /dev/null +++ b/templates/scaffold/template/nextjs/src/app/providers.tsx @@ -0,0 +1,13 @@ +"use client"; + +import { NextParticlesProvider } from "@tsparticles/nextjs"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +export default function Providers({ children }: { children: React.ReactNode }) { + return ( + => { await loadSlim(engine); }}> + {children} + + ); +} diff --git a/templates/scaffold/template/nuxt2/LICENSE b/templates/scaffold/template/nuxt2/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/nuxt2/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/nuxt2/README.md b/templates/scaffold/template/nuxt2/README.md new file mode 100644 index 00000000000..d6932192beb --- /dev/null +++ b/templates/scaffold/template/nuxt2/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Nuxt 2 project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/nuxt2/gitignore b/templates/scaffold/template/nuxt2/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/nuxt2/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/nuxt2/nuxt.config.js b/templates/scaffold/template/nuxt2/nuxt.config.js new file mode 100644 index 00000000000..c309a4518a2 --- /dev/null +++ b/templates/scaffold/template/nuxt2/nuxt.config.js @@ -0,0 +1,3 @@ +export default { + buildModules: ["@tsparticles/nuxt2"], +}; diff --git a/templates/scaffold/template/nuxt2/package.json b/templates/scaffold/template/nuxt2/package.json new file mode 100644 index 00000000000..9ea86c7cb72 --- /dev/null +++ b/templates/scaffold/template/nuxt2/package.json @@ -0,0 +1,16 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "preview": "nuxt start" + }, + "dependencies": { + "nuxt": "^2.18.1", + "@tsparticles/nuxt2": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + } +} diff --git a/templates/scaffold/template/nuxt2/pages/index.vue b/templates/scaffold/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..bc991910913 --- /dev/null +++ b/templates/scaffold/template/nuxt2/pages/index.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/templates/scaffold/template/nuxt3/LICENSE b/templates/scaffold/template/nuxt3/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/nuxt3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/nuxt3/README.md b/templates/scaffold/template/nuxt3/README.md new file mode 100644 index 00000000000..dc11aa72ca4 --- /dev/null +++ b/templates/scaffold/template/nuxt3/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Nuxt 3 project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/nuxt3/app.vue b/templates/scaffold/template/nuxt3/app.vue new file mode 100644 index 00000000000..99c74782896 --- /dev/null +++ b/templates/scaffold/template/nuxt3/app.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/templates/scaffold/template/nuxt3/gitignore b/templates/scaffold/template/nuxt3/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/nuxt3/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/nuxt3/nuxt.config.ts b/templates/scaffold/template/nuxt3/nuxt.config.ts new file mode 100644 index 00000000000..e07b0b3fd77 --- /dev/null +++ b/templates/scaffold/template/nuxt3/nuxt.config.ts @@ -0,0 +1,3 @@ +export default defineNuxtConfig({ + modules: ["@tsparticles/nuxt3"], +}); diff --git a/templates/scaffold/template/nuxt3/package.json b/templates/scaffold/template/nuxt3/package.json new file mode 100644 index 00000000000..ea414d14689 --- /dev/null +++ b/templates/scaffold/template/nuxt3/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.17.3", + "@tsparticles/nuxt3": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/scaffold/template/nuxt4/LICENSE b/templates/scaffold/template/nuxt4/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/nuxt4/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/nuxt4/README.md b/templates/scaffold/template/nuxt4/README.md new file mode 100644 index 00000000000..f4a6bedd096 --- /dev/null +++ b/templates/scaffold/template/nuxt4/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Nuxt 4 project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/nuxt4/app.vue b/templates/scaffold/template/nuxt4/app.vue new file mode 100644 index 00000000000..99c74782896 --- /dev/null +++ b/templates/scaffold/template/nuxt4/app.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/templates/scaffold/template/nuxt4/gitignore b/templates/scaffold/template/nuxt4/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/nuxt4/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/nuxt4/nuxt.config.ts b/templates/scaffold/template/nuxt4/nuxt.config.ts new file mode 100644 index 00000000000..580b25a62ba --- /dev/null +++ b/templates/scaffold/template/nuxt4/nuxt.config.ts @@ -0,0 +1,3 @@ +export default defineNuxtConfig({ + modules: ["@tsparticles/nuxt4"], +}); diff --git a/templates/scaffold/template/nuxt4/package.json b/templates/scaffold/template/nuxt4/package.json new file mode 100644 index 00000000000..204bb1340cd --- /dev/null +++ b/templates/scaffold/template/nuxt4/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.4.2", + "@tsparticles/nuxt4": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/scaffold/template/preact/LICENSE b/templates/scaffold/template/preact/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/preact/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/preact/README.md b/templates/scaffold/template/preact/README.md new file mode 100644 index 00000000000..1f2413f613f --- /dev/null +++ b/templates/scaffold/template/preact/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Preact project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/preact/gitignore b/templates/scaffold/template/preact/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/preact/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/preact/index.html b/templates/scaffold/template/preact/index.html new file mode 100644 index 00000000000..c3037aaae64 --- /dev/null +++ b/templates/scaffold/template/preact/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/preact/package.json b/templates/scaffold/template/preact/package.json new file mode 100644 index 00000000000..fa69b5605d7 --- /dev/null +++ b/templates/scaffold/template/preact/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.19.3", + "@tsparticles/preact": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.8.1", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/preact/src/App.tsx b/templates/scaffold/template/preact/src/App.tsx new file mode 100644 index 00000000000..c667a74d83c --- /dev/null +++ b/templates/scaffold/template/preact/src/App.tsx @@ -0,0 +1,43 @@ +import { useEffect } from "preact/hooks"; +import Particles, { initParticlesEngine } from "@tsparticles/preact"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + useEffect(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }, []); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + return ( +
+
+

Hello, tsParticles!

+
+ +
+ ); +} diff --git a/templates/scaffold/template/preact/src/main.tsx b/templates/scaffold/template/preact/src/main.tsx new file mode 100644 index 00000000000..ec13dec5b30 --- /dev/null +++ b/templates/scaffold/template/preact/src/main.tsx @@ -0,0 +1,5 @@ +import { render } from "preact"; +import App from "./App"; +import "./style.css"; + +render(, document.getElementById("root")!); diff --git a/templates/scaffold/template/preact/src/style.css b/templates/scaffold/template/preact/src/style.css new file mode 100644 index 00000000000..53f112bd2bd --- /dev/null +++ b/templates/scaffold/template/preact/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/preact/tsconfig.json b/templates/scaffold/template/preact/tsconfig.json new file mode 100644 index 00000000000..dfe742acca0 --- /dev/null +++ b/templates/scaffold/template/preact/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "jsxImportSource": "preact", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/preact/vite.config.ts b/templates/scaffold/template/preact/vite.config.ts new file mode 100644 index 00000000000..f4fde7ecb22 --- /dev/null +++ b/templates/scaffold/template/preact/vite.config.ts @@ -0,0 +1,7 @@ +import preact from "@preact/preset-vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [preact()], + base: "./", +}); diff --git a/templates/scaffold/template/qwik/LICENSE b/templates/scaffold/template/qwik/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/qwik/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/qwik/README.md b/templates/scaffold/template/qwik/README.md new file mode 100644 index 00000000000..3c8c106f851 --- /dev/null +++ b/templates/scaffold/template/qwik/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Qwik project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/qwik/gitignore b/templates/scaffold/template/qwik/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/qwik/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/qwik/index.html b/templates/scaffold/template/qwik/index.html new file mode 100644 index 00000000000..c3037aaae64 --- /dev/null +++ b/templates/scaffold/template/qwik/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/qwik/package.json b/templates/scaffold/template/qwik/package.json new file mode 100644 index 00000000000..7405a2ac32a --- /dev/null +++ b/templates/scaffold/template/qwik/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/qwik": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/qwik/src/App.tsx b/templates/scaffold/template/qwik/src/App.tsx new file mode 100644 index 00000000000..4d57cd1459f --- /dev/null +++ b/templates/scaffold/template/qwik/src/App.tsx @@ -0,0 +1,43 @@ +import { component$, useVisibleTask$ } from "@builder.io/qwik"; +import { Particles, initParticlesEngine } from "@tsparticles/qwik"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default component$(() => { + useVisibleTask$(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + return ( +
+
+

Hello, tsParticles!

+
+ +
+ ); +}); diff --git a/templates/scaffold/template/qwik/src/main.tsx b/templates/scaffold/template/qwik/src/main.tsx new file mode 100644 index 00000000000..0cb1207566b --- /dev/null +++ b/templates/scaffold/template/qwik/src/main.tsx @@ -0,0 +1,4 @@ +import { render } from "@builder.io/qwik"; +import App from "./App"; + +render(document.getElementById("root") as HTMLElement, ); diff --git a/templates/scaffold/template/qwik/src/style.css b/templates/scaffold/template/qwik/src/style.css new file mode 100644 index 00000000000..53f112bd2bd --- /dev/null +++ b/templates/scaffold/template/qwik/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/qwik/tsconfig.json b/templates/scaffold/template/qwik/tsconfig.json new file mode 100644 index 00000000000..273c6de3ba1 --- /dev/null +++ b/templates/scaffold/template/qwik/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "jsxImportSource": "@builder.io/qwik", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/qwik/vite.config.ts b/templates/scaffold/template/qwik/vite.config.ts new file mode 100644 index 00000000000..4f482f803e6 --- /dev/null +++ b/templates/scaffold/template/qwik/vite.config.ts @@ -0,0 +1,7 @@ +import { qwikVite } from "@builder.io/qwik/plugin.vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [qwikVite()], + base: "./", +}); diff --git a/templates/scaffold/template/react/LICENSE b/templates/scaffold/template/react/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/react/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/react/README.md b/templates/scaffold/template/react/README.md new file mode 100644 index 00000000000..573c92dfb66 --- /dev/null +++ b/templates/scaffold/template/react/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles React project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/react/gitignore b/templates/scaffold/template/react/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/react/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/react/index.html b/templates/scaffold/template/react/index.html new file mode 100644 index 00000000000..c3037aaae64 --- /dev/null +++ b/templates/scaffold/template/react/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/react/package.json b/templates/scaffold/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/scaffold/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/scaffold/template/react/src/App.css b/templates/scaffold/template/react/src/App.css new file mode 100644 index 00000000000..73348789e82 --- /dev/null +++ b/templates/scaffold/template/react/src/App.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/react/src/App.tsx b/templates/scaffold/template/react/src/App.tsx new file mode 100644 index 00000000000..b8b08c96e1d --- /dev/null +++ b/templates/scaffold/template/react/src/App.tsx @@ -0,0 +1,41 @@ +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +export default function App() { + return ( + +
+

Hello, tsParticles!

+
+ +
+ ); +} diff --git a/templates/scaffold/template/react/src/main.tsx b/templates/scaffold/template/react/src/main.tsx new file mode 100644 index 00000000000..9f31bd2e52a --- /dev/null +++ b/templates/scaffold/template/react/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import App from "./App"; +import "./App.css"; + +createRoot(document.getElementById("root")!).render( + + + , +); diff --git a/templates/scaffold/template/react/src/vite-env.d.ts b/templates/scaffold/template/react/src/vite-env.d.ts new file mode 100644 index 00000000000..11f02fe2a00 --- /dev/null +++ b/templates/scaffold/template/react/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/templates/scaffold/template/react/tsconfig.json b/templates/scaffold/template/react/tsconfig.json new file mode 100644 index 00000000000..01847a89a27 --- /dev/null +++ b/templates/scaffold/template/react/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/react/vite.config.ts b/templates/scaffold/template/react/vite.config.ts new file mode 100644 index 00000000000..75120e6222a --- /dev/null +++ b/templates/scaffold/template/react/vite.config.ts @@ -0,0 +1,7 @@ +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()], + base: "./", +}); diff --git a/templates/scaffold/template/riot/LICENSE b/templates/scaffold/template/riot/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/riot/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/riot/README.md b/templates/scaffold/template/riot/README.md new file mode 100644 index 00000000000..5fc7a2ab0b3 --- /dev/null +++ b/templates/scaffold/template/riot/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Riot project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/riot/gitignore b/templates/scaffold/template/riot/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/riot/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/riot/index.html b/templates/scaffold/template/riot/index.html new file mode 100644 index 00000000000..6a3021b9094 --- /dev/null +++ b/templates/scaffold/template/riot/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/riot/package.json b/templates/scaffold/template/riot/package.json new file mode 100644 index 00000000000..1226bf0d8ad --- /dev/null +++ b/templates/scaffold/template/riot/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^10.0.0", + "@tsparticles/riot": "^4.1.3" + }, + "devDependencies": { + "@riotjs/compiler": "^10.0.0", + "rollup-plugin-riot": "^10.0.0", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/riot/src/app.riot b/templates/scaffold/template/riot/src/app.riot new file mode 100644 index 00000000000..03750da1334 --- /dev/null +++ b/templates/scaffold/template/riot/src/app.riot @@ -0,0 +1,66 @@ + +
+

Hello, tsParticles!

+
+ + + + + +
diff --git a/templates/scaffold/template/riot/src/main.ts b/templates/scaffold/template/riot/src/main.ts new file mode 100644 index 00000000000..8b4327582ac --- /dev/null +++ b/templates/scaffold/template/riot/src/main.ts @@ -0,0 +1,5 @@ +import { mount } from "riot"; +import App from "./app.riot"; +import "./style.css"; + +mount(App, "#app"); diff --git a/templates/scaffold/template/riot/src/style.css b/templates/scaffold/template/riot/src/style.css new file mode 100644 index 00000000000..53f112bd2bd --- /dev/null +++ b/templates/scaffold/template/riot/src/style.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/riot/tsconfig.json b/templates/scaffold/template/riot/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/scaffold/template/riot/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/riot/vite.config.ts b/templates/scaffold/template/riot/vite.config.ts new file mode 100644 index 00000000000..6a1dfa886a8 --- /dev/null +++ b/templates/scaffold/template/riot/vite.config.ts @@ -0,0 +1,7 @@ +import riot from "rollup-plugin-riot"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [riot()], + base: "./", +}); diff --git a/templates/scaffold/template/solid/LICENSE b/templates/scaffold/template/solid/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/solid/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/solid/README.md b/templates/scaffold/template/solid/README.md new file mode 100644 index 00000000000..3e80e490386 --- /dev/null +++ b/templates/scaffold/template/solid/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Solid project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/solid/gitignore b/templates/scaffold/template/solid/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/solid/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/solid/index.html b/templates/scaffold/template/solid/index.html new file mode 100644 index 00000000000..c3037aaae64 --- /dev/null +++ b/templates/scaffold/template/solid/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/solid/package.json b/templates/scaffold/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/scaffold/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/scaffold/template/solid/src/App.tsx b/templates/scaffold/template/solid/src/App.tsx new file mode 100644 index 00000000000..4fdde9745b1 --- /dev/null +++ b/templates/scaffold/template/solid/src/App.tsx @@ -0,0 +1,43 @@ +import { onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadSlim } from "@tsparticles/slim"; +import type { ISourceOptions } from "@tsparticles/engine"; + +export default function App() { + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#1a1a2e" } }, + fpsLimit: 60, + particles: { + number: { value: 80, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] }, + shape: { type: "circle" }, + opacity: { value: 0.5, random: true }, + size: { value: { min: 1, max: 4 }, random: true }, + move: { + enable: true, + speed: 2, + direction: "none", + random: false, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + return ( + <> +
+

Hello, tsParticles!

+
+ + + ); +} diff --git a/templates/scaffold/template/solid/src/index.css b/templates/scaffold/template/solid/src/index.css new file mode 100644 index 00000000000..53f112bd2bd --- /dev/null +++ b/templates/scaffold/template/solid/src/index.css @@ -0,0 +1,21 @@ +body { + margin: 0; + overflow: hidden; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; +} + +#app-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/solid/src/main.tsx b/templates/scaffold/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/scaffold/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/scaffold/template/solid/tsconfig.json b/templates/scaffold/template/solid/tsconfig.json new file mode 100644 index 00000000000..6e9a108e0ae --- /dev/null +++ b/templates/scaffold/template/solid/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/solid/vite.config.ts b/templates/scaffold/template/solid/vite.config.ts new file mode 100644 index 00000000000..78d58774d06 --- /dev/null +++ b/templates/scaffold/template/solid/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import solid from "vite-plugin-solid"; + +export default defineConfig({ + plugins: [solid()], + base: "./", +}); diff --git a/templates/scaffold/template/stencil/LICENSE b/templates/scaffold/template/stencil/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/stencil/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/stencil/README.md b/templates/scaffold/template/stencil/README.md new file mode 100644 index 00000000000..e4d97da823e --- /dev/null +++ b/templates/scaffold/template/stencil/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Stencil project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/stencil/gitignore b/templates/scaffold/template/stencil/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/stencil/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/stencil/package.json b/templates/scaffold/template/stencil/package.json new file mode 100644 index 00000000000..d454a87bc1b --- /dev/null +++ b/templates/scaffold/template/stencil/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "stencil build --dev --watch --serve", + "build": "stencil build", + "preview": "stencil build --serve" + }, + "dependencies": { + "@stencil/core": "^4.43.5", + "@tsparticles/stencil": "^4.1.3", + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/templates/scaffold/template/stencil/src/components/app-home/app-home.tsx b/templates/scaffold/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..0234c47898f --- /dev/null +++ b/templates/scaffold/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,47 @@ +import { Component, h, type JSX } from "@stencil/core"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + shadow: true, +}) +export class AppHome { + private async particlesInit(engine: Engine): Promise { + await loadSlim(engine); + } + + render(): JSX.Element { + return ( +
+

Hello, tsParticles!

+ +
+ ); + } +} diff --git a/templates/scaffold/template/svelte/LICENSE b/templates/scaffold/template/svelte/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/svelte/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/svelte/README.md b/templates/scaffold/template/svelte/README.md new file mode 100644 index 00000000000..2df55891b59 --- /dev/null +++ b/templates/scaffold/template/svelte/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Svelte project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/svelte/gitignore b/templates/scaffold/template/svelte/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/svelte/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/svelte/index.html b/templates/scaffold/template/svelte/index.html new file mode 100644 index 00000000000..6a3021b9094 --- /dev/null +++ b/templates/scaffold/template/svelte/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/svelte/package.json b/templates/scaffold/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/scaffold/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/scaffold/template/svelte/src/App.svelte b/templates/scaffold/template/svelte/src/App.svelte new file mode 100644 index 00000000000..a9b21ad45a1 --- /dev/null +++ b/templates/scaffold/template/svelte/src/App.svelte @@ -0,0 +1,55 @@ + + +
+

Hello, tsParticles!

+
+ + + diff --git a/templates/scaffold/template/svelte/src/main.ts b/templates/scaffold/template/svelte/src/main.ts new file mode 100644 index 00000000000..919025c542a --- /dev/null +++ b/templates/scaffold/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/scaffold/template/svelte/tsconfig.json b/templates/scaffold/template/svelte/tsconfig.json new file mode 100644 index 00000000000..b09714d4b7a --- /dev/null +++ b/templates/scaffold/template/svelte/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.svelte"] +} diff --git a/templates/scaffold/template/svelte/vite.config.ts b/templates/scaffold/template/svelte/vite.config.ts new file mode 100644 index 00000000000..b2de0dc9393 --- /dev/null +++ b/templates/scaffold/template/svelte/vite.config.ts @@ -0,0 +1,7 @@ +import { svelte } from "@sveltejs/vite-plugin-svelte"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [svelte()], + base: "./", +}); diff --git a/templates/scaffold/template/vanilla/LICENSE b/templates/scaffold/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/vanilla/README.md b/templates/scaffold/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/scaffold/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/vanilla/gitignore b/templates/scaffold/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/vanilla/index.html b/templates/scaffold/template/vanilla/index.html new file mode 100644 index 00000000000..bb00758cdef --- /dev/null +++ b/templates/scaffold/template/vanilla/index.html @@ -0,0 +1,14 @@ + + + + + + {{projectName}} + + +
+

Hello, tsParticles!

+
+ + + diff --git a/templates/scaffold/template/vanilla/package.json b/templates/scaffold/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/scaffold/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/scaffold/template/vanilla/src/main.ts b/templates/scaffold/template/vanilla/src/main.ts new file mode 100644 index 00000000000..c06ab67683d --- /dev/null +++ b/templates/scaffold/template/vanilla/src/main.ts @@ -0,0 +1,14 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import configs from "@tsparticles/configs"; + +(async () => { + await loadSlim(tsParticles); + + const keys = Object.keys(configs); + const randomKey = keys[Math.floor(Math.random() * keys.length)] as keyof typeof configs; + const options = configs[randomKey]; + + await tsParticles.load({ id: "tsparticles", options }); +})(); diff --git a/templates/scaffold/template/vanilla/src/style.css b/templates/scaffold/template/vanilla/src/style.css new file mode 100644 index 00000000000..7cc7cc34e9d --- /dev/null +++ b/templates/scaffold/template/vanilla/src/style.css @@ -0,0 +1,22 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/vanilla/tsconfig.json b/templates/scaffold/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/scaffold/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/vanilla/vite.config.ts b/templates/scaffold/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/scaffold/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/scaffold/template/vue2/LICENSE b/templates/scaffold/template/vue2/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/vue2/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/vue2/README.md b/templates/scaffold/template/vue2/README.md new file mode 100644 index 00000000000..e2e20aa1213 --- /dev/null +++ b/templates/scaffold/template/vue2/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Vue 2 project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/vue2/gitignore b/templates/scaffold/template/vue2/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/vue2/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/vue2/index.html b/templates/scaffold/template/vue2/index.html new file mode 100644 index 00000000000..6a3021b9094 --- /dev/null +++ b/templates/scaffold/template/vue2/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/vue2/package.json b/templates/scaffold/template/vue2/package.json new file mode 100644 index 00000000000..728d3cb0e8d --- /dev/null +++ b/templates/scaffold/template/vue2/package.json @@ -0,0 +1,21 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/vue2": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.0.1", + "vue-template-compiler": "^2.7.16", + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/vue2/src/App.vue b/templates/scaffold/template/vue2/src/App.vue new file mode 100644 index 00000000000..db78ddad5e0 --- /dev/null +++ b/templates/scaffold/template/vue2/src/App.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/templates/scaffold/template/vue2/src/main.ts b/templates/scaffold/template/vue2/src/main.ts new file mode 100644 index 00000000000..74f8d2894c1 --- /dev/null +++ b/templates/scaffold/template/vue2/src/main.ts @@ -0,0 +1,14 @@ +import Vue from "vue"; +import VueParticles from "@tsparticles/vue2"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +Vue.use(VueParticles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +new Vue({ + render: (h) => h(App), +}).$mount("#app"); diff --git a/templates/scaffold/template/vue2/tsconfig.json b/templates/scaffold/template/vue2/tsconfig.json new file mode 100644 index 00000000000..15ff6ee8da2 --- /dev/null +++ b/templates/scaffold/template/vue2/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.vue"] +} diff --git a/templates/scaffold/template/vue2/vite.config.ts b/templates/scaffold/template/vue2/vite.config.ts new file mode 100644 index 00000000000..e4bd0582077 --- /dev/null +++ b/templates/scaffold/template/vue2/vite.config.ts @@ -0,0 +1,7 @@ +import vue from "@vitejs/plugin-vue2"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [vue()], + base: "./", +}); diff --git a/templates/scaffold/template/vue3/LICENSE b/templates/scaffold/template/vue3/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/vue3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/vue3/README.md b/templates/scaffold/template/vue3/README.md new file mode 100644 index 00000000000..e25a5677478 --- /dev/null +++ b/templates/scaffold/template/vue3/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Vue 3 project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/vue3/gitignore b/templates/scaffold/template/vue3/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/vue3/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/vue3/index.html b/templates/scaffold/template/vue3/index.html new file mode 100644 index 00000000000..6a3021b9094 --- /dev/null +++ b/templates/scaffold/template/vue3/index.html @@ -0,0 +1,12 @@ + + + + + + {{projectName}} + + +
+ + + diff --git a/templates/scaffold/template/vue3/package.json b/templates/scaffold/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/scaffold/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/scaffold/template/vue3/src/App.vue b/templates/scaffold/template/vue3/src/App.vue new file mode 100644 index 00000000000..b6929fd5491 --- /dev/null +++ b/templates/scaffold/template/vue3/src/App.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/templates/scaffold/template/vue3/src/env.d.ts b/templates/scaffold/template/vue3/src/env.d.ts new file mode 100644 index 00000000000..cd390877e49 --- /dev/null +++ b/templates/scaffold/template/vue3/src/env.d.ts @@ -0,0 +1,7 @@ +/// + +declare module "*.vue" { + import type { DefineComponent } from "vue"; + const component: DefineComponent; + export default component; +} diff --git a/templates/scaffold/template/vue3/src/main.ts b/templates/scaffold/template/vue3/src/main.ts new file mode 100644 index 00000000000..5dcbea5f227 --- /dev/null +++ b/templates/scaffold/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/scaffold/template/vue3/tsconfig.json b/templates/scaffold/template/vue3/tsconfig.json new file mode 100644 index 00000000000..11a1cb4e8e2 --- /dev/null +++ b/templates/scaffold/template/vue3/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.vue"] +} diff --git a/templates/scaffold/template/vue3/vite.config.ts b/templates/scaffold/template/vue3/vite.config.ts new file mode 100644 index 00000000000..837d6fa4a8f --- /dev/null +++ b/templates/scaffold/template/vue3/vite.config.ts @@ -0,0 +1,7 @@ +import vue from "@vitejs/plugin-vue"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [vue()], + base: "./", +}); diff --git a/templates/scaffold/template/webcomponents/LICENSE b/templates/scaffold/template/webcomponents/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/scaffold/template/webcomponents/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/scaffold/template/webcomponents/README.md b/templates/scaffold/template/webcomponents/README.md new file mode 100644 index 00000000000..92e1f325c45 --- /dev/null +++ b/templates/scaffold/template/webcomponents/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles Web Components project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/scaffold/template/webcomponents/gitignore b/templates/scaffold/template/webcomponents/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/scaffold/template/webcomponents/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/scaffold/template/webcomponents/index.html b/templates/scaffold/template/webcomponents/index.html new file mode 100644 index 00000000000..67c480a2aa5 --- /dev/null +++ b/templates/scaffold/template/webcomponents/index.html @@ -0,0 +1,15 @@ + + + + + + {{projectName}} + + +
+

Hello, tsParticles!

+
+ + + + diff --git a/templates/scaffold/template/webcomponents/package.json b/templates/scaffold/template/webcomponents/package.json new file mode 100644 index 00000000000..190262134d1 --- /dev/null +++ b/templates/scaffold/template/webcomponents/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/webcomponents": "^4.1.3" + }, + "devDependencies": { + "typescript": "^5.7.2", + "vite": "^6.0.0" + } +} diff --git a/templates/scaffold/template/webcomponents/src/main.ts b/templates/scaffold/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..d0e3818feb2 --- /dev/null +++ b/templates/scaffold/template/webcomponents/src/main.ts @@ -0,0 +1,9 @@ +import { defineParticlesElement, initParticlesEngine } from "@tsparticles/webcomponents"; +import { loadSlim } from "@tsparticles/slim"; +import "./style.css"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +defineParticlesElement(); diff --git a/templates/scaffold/template/webcomponents/src/style.css b/templates/scaffold/template/webcomponents/src/style.css new file mode 100644 index 00000000000..7cc7cc34e9d --- /dev/null +++ b/templates/scaffold/template/webcomponents/src/style.css @@ -0,0 +1,22 @@ +body { + margin: 0; + overflow: hidden; +} + +#app { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + text-align: center; + color: #fff; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + pointer-events: none; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} diff --git a/templates/scaffold/template/webcomponents/tsconfig.json b/templates/scaffold/template/webcomponents/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/scaffold/template/webcomponents/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/scaffold/template/webcomponents/vite.config.ts b/templates/scaffold/template/webcomponents/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/scaffold/template/webcomponents/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/tictactoe/CHANGELOG.md b/templates/tictactoe/CHANGELOG.md new file mode 100644 index 00000000000..1ce6cfb20d2 --- /dev/null +++ b/templates/tictactoe/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7)) diff --git a/templates/tictactoe/LICENSE b/templates/tictactoe/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/tictactoe/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/tictactoe/README.md b/templates/tictactoe/README.md new file mode 100644 index 00000000000..9d4c94d0aff --- /dev/null +++ b/templates/tictactoe/README.md @@ -0,0 +1,3 @@ +# @tsparticles/template-tictactoe + +tsParticles tic-tac-toe game template. Use with `create-tsparticles-app` to scaffold a new tic-tac-toe game project with animated particles. diff --git a/templates/tictactoe/package.json b/templates/tictactoe/package.json new file mode 100644 index 00000000000..4b9ee17fdba --- /dev/null +++ b/templates/tictactoe/package.json @@ -0,0 +1,14 @@ +{ + "name": "@tsparticles/template-tictactoe", + "version": "4.2.0", + "private": false, + "publishConfig": { + "access": "public" + }, + "scripts": { + "prebuild": "node scripts/prebuild.js", + "build": "pnpm run prebuild", + "build:ci": "pnpm run prebuild", + "version": "pnpm run build && git add template.json" + } +} diff --git a/templates/tictactoe/scripts/prebuild.js b/templates/tictactoe/scripts/prebuild.js new file mode 100644 index 00000000000..25592bfc926 --- /dev/null +++ b/templates/tictactoe/scripts/prebuild.js @@ -0,0 +1,65 @@ +const fs = require("fs-extra"); + +const libPackage = "./template.json"; + +const workspaceVersions = { + "@tsparticles/engine": require("../../../engine/package.json").version, + "@tsparticles/slim": require("../../../bundles/slim/package.json").version, + "@tsparticles/confetti": require("../../../bundles/confetti/package.json").version, +}; + +function resolveWorkspaceDependency(name) { + const libObj = JSON.parse(fs.readFileSync(libPackage, "utf-8")); + + const allDeps = { + ...libObj.package.dependencies, + ...libObj.package.devDependencies, + }; + + const spec = allDeps[name]; + + if (!spec?.startsWith("workspace:")) { + return spec; + } + + const workspaceRange = spec.replace("workspace:", ""); + + if (workspaceRange.length > 0 && workspaceRange !== "*" && workspaceRange !== "^" && workspaceRange !== "~") { + return workspaceRange; + } + + const version = workspaceVersions[name]; + + if (!version) { + throw new Error(`Cannot resolve workspace dependency version for ${name}`); + } + + return workspaceRange === "^" || workspaceRange === "~" ? `${workspaceRange}${version}` : `^${version}`; +} + +fs.readFile(libPackage, function (error, data) { + if (error) { + throw error; + } + + const text = data.toString(); + const libObj = JSON.parse(text); + + for (const dep of Object.keys(libObj.package.dependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.dependencies[dep] = resolved; + } + } + + for (const dep of Object.keys(libObj.package.devDependencies)) { + const resolved = resolveWorkspaceDependency(dep); + if (resolved) { + libObj.package.devDependencies[dep] = resolved; + } + } + + fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () { + console.log("template.json dependencies updated successfully"); + }); +}); diff --git a/templates/tictactoe/template.json b/templates/tictactoe/template.json new file mode 100644 index 00000000000..8f7e145d233 --- /dev/null +++ b/templates/tictactoe/template.json @@ -0,0 +1,13 @@ +{ + "package": { + "dependencies": { + "@tsparticles/engine": "^4.1.3", + "@tsparticles/slim": "^4.1.3", + "@tsparticles/confetti": "^4.1.3" + }, + "devDependencies": { + "typescript": "^6.0.3", + "vite": "^8.0.14" + } + } +} \ No newline at end of file diff --git a/templates/tictactoe/template/angular-confetti/package.json b/templates/tictactoe/template/angular-confetti/package.json new file mode 100644 index 00000000000..a2819666f2e --- /dev/null +++ b/templates/tictactoe/template/angular-confetti/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/confetti": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/tictactoe/template/angular-confetti/src/app/app.component.css b/templates/tictactoe/template/angular-confetti/src/app/app.component.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/angular-confetti/src/app/app.component.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/angular-confetti/src/app/app.component.html b/templates/tictactoe/template/angular-confetti/src/app/app.component.html new file mode 100644 index 00000000000..ff0d3fcac18 --- /dev/null +++ b/templates/tictactoe/template/angular-confetti/src/app/app.component.html @@ -0,0 +1,21 @@ + + +
+

Tic-Tac-Toe

+
+ X: {{ scores.X }} + Draws: {{ scores.draw }} + O: {{ scores.O }} +
+
{{ status }}
+
+
+ {{ cell }} +
+
+ +
diff --git a/templates/tictactoe/template/angular-confetti/src/app/app.component.ts b/templates/tictactoe/template/angular-confetti/src/app/app.component.ts new file mode 100644 index 00000000000..a3ae9e603bb --- /dev/null +++ b/templates/tictactoe/template/angular-confetti/src/app/app.component.ts @@ -0,0 +1,94 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + board: (Player | null)[] = Array(9).fill(null); + currentPlayer: Player = "X"; + winner: Player | "draw" | null = null; + winLine: number[] | null = null; + scores = { X: 0, O: 0, draw: 0 }; + + particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }; + + get status(): string { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + private checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; + } + + private fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); + } + + handleMove(index: number): void { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = this.checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores.draw++; + else this.scores[result.winner]++; + if (result.winner !== "draw") setTimeout(() => this.fireConfettiEffect(), 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + handleReset(): void { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } +} diff --git a/templates/tictactoe/template/angular-fireworks/package.json b/templates/tictactoe/template/angular-fireworks/package.json new file mode 100644 index 00000000000..a2819666f2e --- /dev/null +++ b/templates/tictactoe/template/angular-fireworks/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/confetti": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/tictactoe/template/angular-fireworks/src/app/app.component.css b/templates/tictactoe/template/angular-fireworks/src/app/app.component.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/angular-fireworks/src/app/app.component.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/angular-fireworks/src/app/app.component.html b/templates/tictactoe/template/angular-fireworks/src/app/app.component.html new file mode 100644 index 00000000000..ff0d3fcac18 --- /dev/null +++ b/templates/tictactoe/template/angular-fireworks/src/app/app.component.html @@ -0,0 +1,21 @@ + + +
+

Tic-Tac-Toe

+
+ X: {{ scores.X }} + Draws: {{ scores.draw }} + O: {{ scores.O }} +
+
{{ status }}
+
+
+ {{ cell }} +
+
+ +
diff --git a/templates/tictactoe/template/angular-fireworks/src/app/app.component.ts b/templates/tictactoe/template/angular-fireworks/src/app/app.component.ts new file mode 100644 index 00000000000..a3ae9e603bb --- /dev/null +++ b/templates/tictactoe/template/angular-fireworks/src/app/app.component.ts @@ -0,0 +1,94 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + board: (Player | null)[] = Array(9).fill(null); + currentPlayer: Player = "X"; + winner: Player | "draw" | null = null; + winLine: number[] | null = null; + scores = { X: 0, O: 0, draw: 0 }; + + particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }; + + get status(): string { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + private checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; + } + + private fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); + } + + handleMove(index: number): void { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = this.checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores.draw++; + else this.scores[result.winner]++; + if (result.winner !== "draw") setTimeout(() => this.fireConfettiEffect(), 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + handleReset(): void { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } +} diff --git a/templates/tictactoe/template/angular/package.json b/templates/tictactoe/template/angular/package.json new file mode 100644 index 00000000000..a2819666f2e --- /dev/null +++ b/templates/tictactoe/template/angular/package.json @@ -0,0 +1,34 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "dev": "ng serve", + "build": "ng build", + "preview": "ng serve", + "watch": "ng build --watch --configuration development" + }, + "dependencies": { + "@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", + "@tsparticles/angular": "^4.1.3", + "@tsparticles/confetti": "^3.8.1", + "rxjs": "~7.8.2", + "tslib": "^2.8.1", + "zone.js": "~0.16.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~22.0.0", + "@angular/cli": "~22.0.0", + "@angular/compiler-cli": "~22.0.0", + "typescript": "~6.0.3" + } +} diff --git a/templates/tictactoe/template/angular/src/app/app.component.css b/templates/tictactoe/template/angular/src/app/app.component.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/angular/src/app/app.component.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/angular/src/app/app.component.html b/templates/tictactoe/template/angular/src/app/app.component.html new file mode 100644 index 00000000000..ff0d3fcac18 --- /dev/null +++ b/templates/tictactoe/template/angular/src/app/app.component.html @@ -0,0 +1,21 @@ + + +
+

Tic-Tac-Toe

+
+ X: {{ scores.X }} + Draws: {{ scores.draw }} + O: {{ scores.O }} +
+
{{ status }}
+
+
+ {{ cell }} +
+
+ +
diff --git a/templates/tictactoe/template/angular/src/app/app.component.ts b/templates/tictactoe/template/angular/src/app/app.component.ts new file mode 100644 index 00000000000..a3ae9e603bb --- /dev/null +++ b/templates/tictactoe/template/angular/src/app/app.component.ts @@ -0,0 +1,94 @@ +import { Component } from "@angular/core"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], +}) +export class AppComponent { + board: (Player | null)[] = Array(9).fill(null); + currentPlayer: Player = "X"; + winner: Player | "draw" | null = null; + winLine: number[] | null = null; + scores = { X: 0, O: 0, draw: 0 }; + + particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }; + + get status(): string { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + private checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; + } + + private fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); + } + + handleMove(index: number): void { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = this.checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores.draw++; + else this.scores[result.winner]++; + if (result.winner !== "draw") setTimeout(() => this.fireConfettiEffect(), 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + handleReset(): void { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } +} diff --git a/templates/tictactoe/template/astro/package.json b/templates/tictactoe/template/astro/package.json new file mode 100644 index 00000000000..50d451fc735 --- /dev/null +++ b/templates/tictactoe/template/astro/package.json @@ -0,0 +1,15 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^5.0.0", + "@tsparticles/astro": "^4.1.3" + } +} diff --git a/templates/tictactoe/template/astro/src/pages/index.astro b/templates/tictactoe/template/astro/src/pages/index.astro new file mode 100644 index 00000000000..f44af4e80ef --- /dev/null +++ b/templates/tictactoe/template/astro/src/pages/index.astro @@ -0,0 +1,158 @@ +--- +import Particles from "@tsparticles/astro"; +--- + + + + + + + Tic-Tac-Toe + + + + + +
+

Tic-Tac-Toe

+
+ X: 0 + Draws: 0 + O: 0 +
+
X's turn
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + diff --git a/templates/tictactoe/template/ember/app/controllers/application.js b/templates/tictactoe/template/ember/app/controllers/application.js new file mode 100644 index 00000000000..020deef7d93 --- /dev/null +++ b/templates/tictactoe/template/ember/app/controllers/application.js @@ -0,0 +1,94 @@ +import Controller from "@ember/controller"; +import { action } from "@ember/object"; +import { tracked } from "@glimmer/tracking"; +import { confetti } from "@tsparticles/confetti"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +export default class ApplicationController extends Controller { + @tracked board = Array(9).fill(null); + @tracked currentPlayer = "X"; + @tracked winner = null; + @tracked winLine = null; + @tracked scores = { X: 0, O: 0, draw: 0 }; + + particlesOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }; + + get status() { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + isWinLine(index) { + return this.winLine?.includes(index) ?? false; + } + + checkWin(board) { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a], winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw", winLine: [] }; + return null; + } + + fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio, opts) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); + } + + @action + handleMove(index) { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = this.checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores = { ...this.scores, draw: this.scores.draw + 1 }; + else this.scores = { ...this.scores, [result.winner]: this.scores[result.winner] + 1 }; + if (result.winner !== "draw") setTimeout(() => this.fireConfettiEffect(), 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + @action + handleReset() { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } +} diff --git a/templates/tictactoe/template/ember/app/templates/application.hbs b/templates/tictactoe/template/ember/app/templates/application.hbs new file mode 100644 index 00000000000..e7059899156 --- /dev/null +++ b/templates/tictactoe/template/ember/app/templates/application.hbs @@ -0,0 +1,39 @@ + + +
+

Tic-Tac-Toe

+
+ X: {{this.scores.X}} + Draws: {{this.scores.draw}} + O: {{this.scores.O}} +
+
{{this.status}}
+
+ {{#each this.board as |cell i|}} +
+ {{cell}} +
+ {{/each}} +
+ +
+ + diff --git a/templates/tictactoe/template/ember/package.json b/templates/tictactoe/template/ember/package.json new file mode 100644 index 00000000000..6fdc94a716c --- /dev/null +++ b/templates/tictactoe/template/ember/package.json @@ -0,0 +1,17 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "ember serve", + "build": "ember build", + "preview": "ember serve" + }, + "dependencies": { + "ember-source": "^6.0.0", + "@tsparticles/ember": "^4.1.3" + }, + "devDependencies": { + "ember-cli": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/inferno/package.json b/templates/tictactoe/template/inferno/package.json new file mode 100644 index 00000000000..eb3a8bfd292 --- /dev/null +++ b/templates/tictactoe/template/inferno/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "inferno": "^9.0.0", + "inferno-hydrate": "^9.0.0", + "@tsparticles/inferno": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/inferno/src/App.css b/templates/tictactoe/template/inferno/src/App.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/inferno/src/App.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/inferno/src/App.tsx b/templates/tictactoe/template/inferno/src/App.tsx new file mode 100644 index 00000000000..15390a6b535 --- /dev/null +++ b/templates/tictactoe/template/inferno/src/App.tsx @@ -0,0 +1,149 @@ +import { Component } from "inferno"; +import Particles from "@tsparticles/inferno"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +type Player = "X" | "O"; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function createInitialState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) { + return { winner: "draw" as const, winLine: [] }; + } + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +export default class App extends Component { + constructor(props: any) { + super(props); + this.state = createInitialState(); + this.handleMove = this.handleMove.bind(this); + this.handleReset = this.handleReset.bind(this); + } + + handleMove(index: number) { + this.setState((prev) => { + if (prev.board[index] || prev.winner) return prev; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") { + setTimeout(fireConfettiEffect, 100); + } + return { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } + return { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + }); + } + + handleReset() { + this.setState((prev) => ({ + ...prev, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + })); + } + + render() { + const state = this.state; + const status = state.winner + ? state.winner === "draw" ? "It's a draw!" : `${state.winner} wins!` + : `${state.currentPlayer}'s turn`; + + return ( +
+ +
+

Tic-Tac-Toe

+
+ X: {state.scores.X} + Draws: {state.scores.draw} + O: {state.scores.O} +
+
{status}
+
+ {state.board.map((cell, i) => ( +
this.handleMove(i)} + > + {cell} +
+ ))} +
+ +
+
+ ); + } +} diff --git a/templates/tictactoe/template/jquery/package.json b/templates/tictactoe/template/jquery/package.json new file mode 100644 index 00000000000..cea7105ef40 --- /dev/null +++ b/templates/tictactoe/template/jquery/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "jquery": "^3.7.1", + "@tsparticles/jquery": "^4.1.3" + }, + "devDependencies": { + "@types/jquery": "^3.5.30", + "typescript": "~5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/jquery/src/main.ts b/templates/tictactoe/template/jquery/src/main.ts new file mode 100644 index 00000000000..ba090e1d2a2 --- /dev/null +++ b/templates/tictactoe/template/jquery/src/main.ts @@ -0,0 +1,126 @@ +import "./style.css"; +import $ from "jquery"; +import "@tsparticles/jquery"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +let state: GameState = { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, +}; + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; +} + +function fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +function render(): void { + const $cells = $(".cell"); + $cells.each((i, el) => { + const $el = $(el); + $el.text(state.board[i] ?? ""); + $el.toggleClass("taken", state.board[i] !== null); + $el.toggleClass("win", state.winLine?.includes(i) ?? false); + }); + + const $turn = $("#turn"); + if (!state.winner) $turn.text(`${state.currentPlayer}'s turn`); + else if (state.winner === "draw") $turn.text("It's a draw!"); + else $turn.text(`${state.winner} wins!`); + + $("#scoreX").text(String(state.scores.X)); + $("#scoreO").text(String(state.scores.O)); + $("#scoreDraw").text(String(state.scores.draw)); +} + +function handleMove(index: number): void { + if (state.board[index] || state.winner) return; + const board = [...state.board]; + board[index] = state.currentPlayer; + const result = checkWin(board); + if (result) { + state = { ...state, board, winner: result.winner, winLine: result.winLine }; + if (result.winner === "draw") state.scores.draw++; + else state.scores[result.winner]++; + if (result.winner !== "draw") setTimeout(fireConfettiEffect, 100); + } else { + state = { ...state, board, currentPlayer: state.currentPlayer === "X" ? "O" : "X" }; + } + render(); +} + +function handleReset(): void { + state = { + ...state, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + }; + render(); +} + +$(document).ready(async () => { + $("#board").on("click", ".cell", function () { + const index = parseInt($(this).data("index") as string, 10); + if (!isNaN(index)) handleMove(index); + }); + + $("#resetBtn").on("click", handleReset); + + render(); + + await loadSlim($("#tsparticles").particles() as any); + $("#tsparticles").particles({ + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }); +}); diff --git a/templates/tictactoe/template/jquery/src/style.css b/templates/tictactoe/template/jquery/src/style.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/jquery/src/style.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/lit/package.json b/templates/tictactoe/template/lit/package.json new file mode 100644 index 00000000000..f77ccae69e4 --- /dev/null +++ b/templates/tictactoe/template/lit/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "lit": "^3.2.0", + "@tsparticles/lit": "^4.1.3" + }, + "devDependencies": { + "vite": "^6.0.0", + "typescript": "~5.7.0" + } +} diff --git a/templates/tictactoe/template/lit/src/my-app.ts b/templates/tictactoe/template/lit/src/my-app.ts new file mode 100644 index 00000000000..8bec0e0496b --- /dev/null +++ b/templates/tictactoe/template/lit/src/my-app.ts @@ -0,0 +1,133 @@ +import { LitElement, html, css } from "lit"; +import { state } from "lit/decorators.js"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; +} + +function fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +export class MyApp extends LitElement { + @state() private board: (Player | null)[] = Array(9).fill(null); + @state() private currentPlayer: Player = "X"; + @state() private winner: Player | "draw" | null = null; + @state() private winLine: number[] | null = null; + @state() private scores = { X: 0, O: 0, draw: 0 }; + + get status(): string { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + handleMove(index: number): void { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores = { ...this.scores, draw: this.scores.draw + 1 }; + else this.scores = { ...this.scores, [result.winner]: this.scores[result.winner] + 1 }; + if (result.winner !== "draw") setTimeout(fireConfettiEffect, 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + handleReset(): void { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } + + render() { + return html` + +
+

Tic-Tac-Toe

+
+ X: ${this.scores.X} + Draws: ${this.scores.draw} + O: ${this.scores.O} +
+
${this.status}
+
+ ${this.board.map((cell, i) => html` +
this.handleMove(i)} + > + ${cell ?? ""} +
+ `)} +
+ +
+ `; + } + + static styles = css` + :host { display: block; } + #app { text-align: center; z-index: 10; padding: 1rem; } + h1 { font-size: 2.5em; margin-bottom: 1rem; background: linear-gradient(135deg, #6c5ce7, #fd79a8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } + .scoreboard { display: flex; justify-content: center; gap: 2rem; margin-bottom: 1rem; font-size: 1.1em; opacity: 0.8; } + .turn { font-size: 1.2em; margin-bottom: 1rem; opacity: 0.7; } + .board { display: grid; grid-template-columns: repeat(3, 100px); grid-template-rows: repeat(3, 100px); gap: 4px; background: rgba(255,255,255,0.1); border-radius: 12px; overflow: hidden; margin: 0 auto; width: fit-content; } + .cell { display: flex; align-items: center; justify-content: center; font-size: 2.5em; font-weight: 700; background: #12122a; cursor: pointer; transition: background 0.2s; user-select: none; } + .cell:hover { background: #1a1a3a; } + .cell.taken { cursor: default; } + .cell.win { background: rgba(108,92,231,0.3); } + .reset-btn { margin-top: 1.5rem; padding: 0.7em 2em; font-size: 1em; font-weight: 600; border: none; border-radius: 8px; background: linear-gradient(135deg, #6c5ce7, #a29bfe); color: #fff; cursor: pointer; transition: transform 0.2s; } + .reset-btn:hover { transform: scale(1.05); } + `; +} + +customElements.define("my-app", MyApp); diff --git a/templates/tictactoe/template/nextjs/package.json b/templates/tictactoe/template/nextjs/package.json new file mode 100644 index 00000000000..64e3f893228 --- /dev/null +++ b/templates/tictactoe/template/nextjs/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "next dev", + "build": "next build", + "preview": "next start" + }, + "dependencies": { + "next": "^15.0.0", + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.7.0" + } +} diff --git a/templates/tictactoe/template/nextjs/src/app/page.tsx b/templates/tictactoe/template/nextjs/src/app/page.tsx new file mode 100644 index 00000000000..fd5e4c7dd11 --- /dev/null +++ b/templates/tictactoe/template/nextjs/src/app/page.tsx @@ -0,0 +1,173 @@ +"use client"; + +import { useState, useCallback } from "react"; +import Particles from "@tsparticles/react"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; +import Providers from "./providers"; + +type Player = "X" | "O"; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function createInitialState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) { + return { winner: "draw" as const, winLine: [] }; + } + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +export default function Home() { + const [state, setState] = useState(createInitialState); + + const handleMove = useCallback((index: number) => { + setState((prev) => { + if (prev.board[index] || prev.winner) return prev; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") { + setTimeout(fireConfettiEffect, 100); + } + return { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } + return { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + }); + }, []); + + function handleReset() { + setState((prev) => ({ + ...prev, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + })); + } + + const status = state.winner + ? state.winner === "draw" ? "It's a draw!" : `${state.winner} wins!` + : `${state.currentPlayer}'s turn`; + + return ( + + +
+

+ Tic-Tac-Toe +

+
+ X: {state.scores.X} + Draws: {state.scores.draw} + O: {state.scores.O} +
+
+ {status} +
+
+ {state.board.map((cell, i) => ( +
handleMove(i)} + > + {cell} +
+ ))} +
+ +
+
+ ); +} diff --git a/templates/tictactoe/template/nextjs/src/app/providers.tsx b/templates/tictactoe/template/nextjs/src/app/providers.tsx new file mode 100644 index 00000000000..0bec1692aec --- /dev/null +++ b/templates/tictactoe/template/nextjs/src/app/providers.tsx @@ -0,0 +1,13 @@ +"use client"; + +import { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import type { Engine } from "@tsparticles/engine"; + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +export default function Providers({ children }: { children: React.ReactNode }) { + return {children}; +} diff --git a/templates/tictactoe/template/nuxt2/package.json b/templates/tictactoe/template/nuxt2/package.json new file mode 100644 index 00000000000..a041010e0a7 --- /dev/null +++ b/templates/tictactoe/template/nuxt2/package.json @@ -0,0 +1,14 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "preview": "nuxt start" + }, + "dependencies": { + "nuxt": "^2.19.0", + "@tsparticles/vue2": "^4.1.3" + } +} diff --git a/templates/tictactoe/template/nuxt2/pages/index.vue b/templates/tictactoe/template/nuxt2/pages/index.vue new file mode 100644 index 00000000000..42433580bb0 --- /dev/null +++ b/templates/tictactoe/template/nuxt2/pages/index.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/templates/tictactoe/template/nuxt3/app.vue b/templates/tictactoe/template/nuxt3/app.vue new file mode 100644 index 00000000000..d59d0621f18 --- /dev/null +++ b/templates/tictactoe/template/nuxt3/app.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/templates/tictactoe/template/nuxt3/package.json b/templates/tictactoe/template/nuxt3/package.json new file mode 100644 index 00000000000..8716f87fef1 --- /dev/null +++ b/templates/tictactoe/template/nuxt3/package.json @@ -0,0 +1,16 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^3.16.0", + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + } +} diff --git a/templates/tictactoe/template/nuxt4/app.vue b/templates/tictactoe/template/nuxt4/app.vue new file mode 100644 index 00000000000..5de1f510416 --- /dev/null +++ b/templates/tictactoe/template/nuxt4/app.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/templates/tictactoe/template/nuxt4/package.json b/templates/tictactoe/template/nuxt4/package.json new file mode 100644 index 00000000000..a782887d72d --- /dev/null +++ b/templates/tictactoe/template/nuxt4/package.json @@ -0,0 +1,16 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "nuxt dev", + "build": "nuxt build", + "preview": "nuxt preview" + }, + "dependencies": { + "nuxt": "^4.0.0", + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + } +} diff --git a/templates/tictactoe/template/preact/package.json b/templates/tictactoe/template/preact/package.json new file mode 100644 index 00000000000..3b794f6fcab --- /dev/null +++ b/templates/tictactoe/template/preact/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "preact": "^10.26.0", + "@tsparticles/preact": "^4.1.3" + }, + "devDependencies": { + "@preact/preset-vite": "^2.10.0", + "typescript": "~5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/preact/src/App.css b/templates/tictactoe/template/preact/src/App.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/preact/src/App.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/preact/src/App.tsx b/templates/tictactoe/template/preact/src/App.tsx new file mode 100644 index 00000000000..e545860c419 --- /dev/null +++ b/templates/tictactoe/template/preact/src/App.tsx @@ -0,0 +1,141 @@ +import { useState, useCallback } from "preact/hooks"; +import Particles, { ParticlesProvider } from "@tsparticles/preact"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +type Player = "X" | "O"; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function createInitialState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) { + return { winner: "draw" as const, winLine: [] }; + } + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +export default function App() { + const [state, setState] = useState(createInitialState); + + const handleMove = useCallback((index: number) => { + setState((prev) => { + if (prev.board[index] || prev.winner) return prev; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") { + setTimeout(fireConfettiEffect, 100); + } + return { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } + return { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + }); + }, []); + + function handleReset() { + setState((prev) => ({ + ...prev, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + })); + } + + const status = state.winner + ? state.winner === "draw" ? "It's a draw!" : `${state.winner} wins!` + : `${state.currentPlayer}'s turn`; + + return ( + + +
+

Tic-Tac-Toe

+
+ X: {state.scores.X} + Draws: {state.scores.draw} + O: {state.scores.O} +
+
{status}
+
+ {state.board.map((cell, i) => ( +
handleMove(i)} + > + {cell} +
+ ))} +
+ +
+
+ ); +} diff --git a/templates/tictactoe/template/qwik/package.json b/templates/tictactoe/template/qwik/package.json new file mode 100644 index 00000000000..aba5d6d5e2f --- /dev/null +++ b/templates/tictactoe/template/qwik/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@builder.io/qwik": "^1.12.0", + "@tsparticles/qwik": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/qwik/src/App.tsx b/templates/tictactoe/template/qwik/src/App.tsx new file mode 100644 index 00000000000..0ee402225ee --- /dev/null +++ b/templates/tictactoe/template/qwik/src/App.tsx @@ -0,0 +1,132 @@ +import { component$, useSignal, $ } from "@builder.io/qwik"; +import Particles from "@tsparticles/qwik"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +export default component$(() => { + const state = useSignal({ + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }); + + const handleMove = $((index: number) => { + const prev = state.value; + if (prev.board[index] || prev.winner) return; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") setTimeout(fireConfettiEffect, 100); + state.value = { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } else { + state.value = { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + } + }); + + const handleReset = $(() => { + state.value = { + ...state.value, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + }; + }); + + const status = state.value.winner + ? state.value.winner === "draw" ? "It's a draw!" : `${state.value.winner} wins!` + : `${state.value.currentPlayer}'s turn`; + + return ( + <> + +
+

Tic-Tac-Toe

+
+ X: {state.value.scores.X} + Draws: {state.value.scores.draw} + O: {state.value.scores.O} +
+
{status}
+
+ {state.value.board.map((cell, i) => ( +
handleMove(i)} + > + {cell} +
+ ))} +
+ +
+ + ); +}); diff --git a/templates/tictactoe/template/react/package.json b/templates/tictactoe/template/react/package.json new file mode 100644 index 00000000000..798fb264af9 --- /dev/null +++ b/templates/tictactoe/template/react/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5", + "@tsparticles/react": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.0.1" + } +} diff --git a/templates/tictactoe/template/react/src/App.css b/templates/tictactoe/template/react/src/App.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/react/src/App.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/react/src/App.tsx b/templates/tictactoe/template/react/src/App.tsx new file mode 100644 index 00000000000..f664854d6bb --- /dev/null +++ b/templates/tictactoe/template/react/src/App.tsx @@ -0,0 +1,141 @@ +import { useState, useCallback } from "react"; +import Particles, { ParticlesProvider } from "@tsparticles/react"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; +import type { Engine, ISourceOptions } from "@tsparticles/engine"; +import "./App.css"; + +type Player = "X" | "O"; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function createInitialState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) { + return { winner: "draw" as const, winLine: [] }; + } + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +async function init(engine: Engine): Promise { + await loadSlim(engine); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +export default function App() { + const [state, setState] = useState(createInitialState); + + const handleMove = useCallback((index: number) => { + setState((prev) => { + if (prev.board[index] || prev.winner) return prev; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") { + setTimeout(fireConfettiEffect, 100); + } + return { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } + return { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + }); + }, []); + + function handleReset() { + setState((prev) => ({ + ...prev, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + })); + } + + const status = state.winner + ? state.winner === "draw" ? "It's a draw!" : `${state.winner} wins!` + : `${state.currentPlayer}'s turn`; + + return ( + + +
+

Tic-Tac-Toe

+
+ X: {state.scores.X} + Draws: {state.scores.draw} + O: {state.scores.O} +
+
{status}
+
+ {state.board.map((cell, i) => ( +
handleMove(i)} + > + {cell} +
+ ))} +
+ +
+
+ ); +} diff --git a/templates/tictactoe/template/riot/package.json b/templates/tictactoe/template/riot/package.json new file mode 100644 index 00000000000..706c1f08088 --- /dev/null +++ b/templates/tictactoe/template/riot/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "riot": "^10.0.0", + "@tsparticles/riot": "^4.1.3" + }, + "devDependencies": { + "@riotjs/vite": "^1.0.0", + "vite": "^6.0.0", + "typescript": "~5.7.0" + } +} diff --git a/templates/tictactoe/template/riot/src/app.riot b/templates/tictactoe/template/riot/src/app.riot new file mode 100644 index 00000000000..636fd312994 --- /dev/null +++ b/templates/tictactoe/template/riot/src/app.riot @@ -0,0 +1,139 @@ + + +
+

Tic-Tac-Toe

+
+ X: { state.scores.X } + Draws: { state.scores.draw } + O: { state.scores.O } +
+
{ statusText }
+
+
+ { cell } +
+
+ +
+ + + + +
diff --git a/templates/tictactoe/template/solid/package.json b/templates/tictactoe/template/solid/package.json new file mode 100644 index 00000000000..0cbd66c138f --- /dev/null +++ b/templates/tictactoe/template/solid/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "solid-js": "^1.8.11", + "@tsparticles/solid": "^4.1.3" + }, + "devDependencies": { + "vite-plugin-solid": "^2.8.2" + } +} diff --git a/templates/tictactoe/template/solid/src/App.tsx b/templates/tictactoe/template/solid/src/App.tsx new file mode 100644 index 00000000000..4c1adca6a13 --- /dev/null +++ b/templates/tictactoe/template/solid/src/App.tsx @@ -0,0 +1,151 @@ +import { createSignal, onMount } from "solid-js"; +import Particles, { initParticlesEngine } from "@tsparticles/solid"; +import { loadSlim } from "@tsparticles/slim"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function createInitialState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) { + return { winner: "draw" as const, winLine: [] }; + } + return null; +} + +function fireConfettiEffect() { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +export default function App() { + const [state, setState] = createSignal(createInitialState()); + + onMount(() => { + void initParticlesEngine(async (engine) => { + await loadSlim(engine); + }); + }); + + const options: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { + enable: true, + speed: 0.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }; + + function handleMove(index: number) { + setState((prev) => { + if (prev.board[index] || prev.winner) return prev; + const board = [...prev.board]; + board[index] = prev.currentPlayer; + const result = checkWin(board); + if (result) { + const scores = { ...prev.scores }; + if (result.winner === "draw") scores.draw++; + else scores[result.winner]++; + if (result.winner !== "draw") { + setTimeout(fireConfettiEffect, 100); + } + return { ...prev, board, winner: result.winner, winLine: result.winLine, scores }; + } + return { ...prev, board, currentPlayer: prev.currentPlayer === "X" ? "O" : "X" }; + }); + } + + function handleReset() { + setState((prev) => ({ + ...prev, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + })); + } + + const status = (() => { + const s = state(); + if (!s.winner) return `${s.currentPlayer}'s turn`; + if (s.winner === "draw") return "It's a draw!"; + return `${s.winner} wins!`; + })(); + + return ( + <> +
+

Tic-Tac-Toe

+
+ X: {state().scores.X} + Draws: {state().scores.draw} + O: {state().scores.O} +
+
{status}
+
+ {state().board.map((cell, i) => ( +
handleMove(i)} + > + {cell} +
+ ))} +
+ +
+ + + ); +} diff --git a/templates/tictactoe/template/solid/src/index.css b/templates/tictactoe/template/solid/src/index.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/solid/src/index.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/solid/src/main.tsx b/templates/tictactoe/template/solid/src/main.tsx new file mode 100644 index 00000000000..a868e973851 --- /dev/null +++ b/templates/tictactoe/template/solid/src/main.tsx @@ -0,0 +1,9 @@ +import "./index.css"; +import { render } from "solid-js/web"; +import App from "./App"; + +const root = document.getElementById("root"); + +if (root) { + render(() => , root); +} diff --git a/templates/tictactoe/template/stencil/package.json b/templates/tictactoe/template/stencil/package.json new file mode 100644 index 00000000000..e22c588cd96 --- /dev/null +++ b/templates/tictactoe/template/stencil/package.json @@ -0,0 +1,14 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "stencil build --dev --watch", + "build": "stencil build", + "preview": "stencil build --dev" + }, + "dependencies": { + "@stencil/core": "^4.20.0", + "@tsparticles/stencil": "^4.1.3" + } +} diff --git a/templates/tictactoe/template/stencil/src/components/app-home/app-home.css b/templates/tictactoe/template/stencil/src/components/app-home/app-home.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/stencil/src/components/app-home/app-home.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/stencil/src/components/app-home/app-home.tsx b/templates/tictactoe/template/stencil/src/components/app-home/app-home.tsx new file mode 100644 index 00000000000..c5669a920ad --- /dev/null +++ b/templates/tictactoe/template/stencil/src/components/app-home/app-home.tsx @@ -0,0 +1,122 @@ +import { Component, State, h } from "@stencil/core"; +import { confetti } from "@tsparticles/confetti"; +import type { ISourceOptions } from "@tsparticles/engine"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; +} + +function fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +const particlesOptions: ISourceOptions = { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, +}; + +@Component({ + tag: "app-home", + styleUrl: "app-home.css", + scoped: true, +}) +export class AppHome { + @State() board: (Player | null)[] = Array(9).fill(null); + @State() currentPlayer: Player = "X"; + @State() winner: Player | "draw" | null = null; + @State() winLine: number[] | null = null; + @State() scores = { X: 0, O: 0, draw: 0 }; + + get status(): string { + if (!this.winner) return `${this.currentPlayer}'s turn`; + if (this.winner === "draw") return "It's a draw!"; + return `${this.winner} wins!`; + } + + handleMove(index: number): void { + if (this.board[index] || this.winner) return; + const board = [...this.board]; + board[index] = this.currentPlayer; + const result = checkWin(board); + if (result) { + this.board = board; + this.winner = result.winner; + this.winLine = result.winLine; + if (result.winner === "draw") this.scores = { ...this.scores, draw: this.scores.draw + 1 }; + else this.scores = { ...this.scores, [result.winner]: this.scores[result.winner] + 1 }; + if (result.winner !== "draw") setTimeout(fireConfettiEffect, 100); + } else { + this.board = board; + this.currentPlayer = this.currentPlayer === "X" ? "O" : "X"; + } + } + + handleReset(): void { + this.board = Array(9).fill(null); + this.currentPlayer = "X"; + this.winner = null; + this.winLine = null; + } + + render() { + return ( +
+ +
+

Tic-Tac-Toe

+
+ X: {this.scores.X} + Draws: {this.scores.draw} + O: {this.scores.O} +
+
{this.status}
+
+ {this.board.map((cell, i) => ( +
this.handleMove(i)} + > + {cell} +
+ ))} +
+ +
+
+ ); + } +} diff --git a/templates/tictactoe/template/svelte/package.json b/templates/tictactoe/template/svelte/package.json new file mode 100644 index 00000000000..45cacbbdf8b --- /dev/null +++ b/templates/tictactoe/template/svelte/package.json @@ -0,0 +1,20 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/svelte": "^4.1.3" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte": "^5.55.7", + "svelte-check": "^3.7.1", + "tslib": "^2.8.1" + } +} diff --git a/templates/tictactoe/template/svelte/src/App.svelte b/templates/tictactoe/template/svelte/src/App.svelte new file mode 100644 index 00000000000..b47bddab254 --- /dev/null +++ b/templates/tictactoe/template/svelte/src/App.svelte @@ -0,0 +1,256 @@ + + +

Tic-Tac-Toe

+ +
+ X: {scores.X} + O: {scores.O} + Draw: {scores.draw} +
+ +
+ {#if !winner} + {currentPlayer}'s turn + {:else if winner === "draw"} + It's a draw! + {:else} + {winner} wins! + {/if} +
+ +
+ {#each board as cell, i} + + {/each} +
+ + + + + + diff --git a/templates/tictactoe/template/svelte/src/main.ts b/templates/tictactoe/template/svelte/src/main.ts new file mode 100644 index 00000000000..919025c542a --- /dev/null +++ b/templates/tictactoe/template/svelte/src/main.ts @@ -0,0 +1,12 @@ +import { mount } from "svelte"; +import { initParticlesEngine } from "@tsparticles/svelte"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.svelte"; + +void initParticlesEngine(async (engine) => { + await loadSlim(engine); +}); + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/templates/tictactoe/template/vanilla/LICENSE b/templates/tictactoe/template/vanilla/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/templates/tictactoe/template/vanilla/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/templates/tictactoe/template/vanilla/README.md b/templates/tictactoe/template/vanilla/README.md new file mode 100644 index 00000000000..7ae6e6c69ba --- /dev/null +++ b/templates/tictactoe/template/vanilla/README.md @@ -0,0 +1,10 @@ +# {{projectName}} + +A tsParticles project scaffolded with [tsparticles-create](https://github.com/tsparticles/tsparticles). + +## Getting started + +```bash +npm install +npm run dev +``` diff --git a/templates/tictactoe/template/vanilla/gitignore b/templates/tictactoe/template/vanilla/gitignore new file mode 100644 index 00000000000..15184c6ed03 --- /dev/null +++ b/templates/tictactoe/template/vanilla/gitignore @@ -0,0 +1,14 @@ +# dependencies +/node_modules + +# production +/dist + +# misc +.DS_Store +*.local + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/templates/tictactoe/template/vanilla/index.html b/templates/tictactoe/template/vanilla/index.html new file mode 100644 index 00000000000..afd78f6c160 --- /dev/null +++ b/templates/tictactoe/template/vanilla/index.html @@ -0,0 +1,32 @@ + + + + + + {{projectName}} + + +
+

Tic-Tac-Toe

+
+ X: 0 + Draws: 0 + O: 0 +
+
X's turn
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + diff --git a/templates/tictactoe/template/vanilla/package.json b/templates/tictactoe/template/vanilla/package.json new file mode 100644 index 00000000000..00b6817b8c2 --- /dev/null +++ b/templates/tictactoe/template/vanilla/package.json @@ -0,0 +1,11 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + } +} diff --git a/templates/tictactoe/template/vanilla/src/game/board.ts b/templates/tictactoe/template/vanilla/src/game/board.ts new file mode 100644 index 00000000000..2f23c44eefc --- /dev/null +++ b/templates/tictactoe/template/vanilla/src/game/board.ts @@ -0,0 +1,49 @@ +import { type GameState, makeMove } from "./game-state"; +import { fireConfetti } from "./confetti-effect"; + +const boardEl = document.getElementById("board") as HTMLDivElement; +const turnEl = document.getElementById("turnIndicator") as HTMLDivElement; +const scoreX = document.getElementById("scoreX") as HTMLSpanElement; +const scoreO = document.getElementById("scoreO") as HTMLSpanElement; +const scoreDraw = document.getElementById("scoreDraw") as HTMLSpanElement; + +export function renderBoard(state: GameState): void { + const cells = boardEl.querySelectorAll(".cell"); + + cells.forEach((cell, i) => { + cell.textContent = state.board[i] ?? ""; + cell.classList.toggle("taken", state.board[i] !== null); + cell.classList.toggle("win", state.winLine?.includes(i) ?? false); + }); + + if (!state.winner) { + turnEl.textContent = `${state.currentPlayer}'s turn`; + } else if (state.winner === "draw") { + turnEl.textContent = "It's a draw!"; + } else { + turnEl.textContent = `${state.winner} wins!`; + fireConfetti(); + } + + scoreX.textContent = String(state.scores.X); + scoreO.textContent = String(state.scores.O); + scoreDraw.textContent = String(state.scores.draw); +} + +export function setupBoard(onMove: (index: number) => void): void { + boardEl.addEventListener("click", (e) => { + const cell = (e.target as HTMLElement).closest(".cell") as HTMLElement | null; + + if (!cell) { + return; + } + + const index = parseInt(cell.dataset.index ?? "", 10); + + if (isNaN(index)) { + return; + } + + onMove(index); + }); +} diff --git a/templates/tictactoe/template/vanilla/src/game/confetti-effect.ts b/templates/tictactoe/template/vanilla/src/game/confetti-effect.ts new file mode 100644 index 00000000000..2cae3b1f46c --- /dev/null +++ b/templates/tictactoe/template/vanilla/src/game/confetti-effect.ts @@ -0,0 +1,20 @@ +import { confetti } from "@tsparticles/confetti"; + +export function fireConfetti(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + + function fire(particleRatio: number, opts: Record): void { + confetti({ + ...defaults, + ...opts, + particleCount: Math.floor(count * particleRatio), + }); + } + + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} diff --git a/templates/tictactoe/template/vanilla/src/game/game-state.ts b/templates/tictactoe/template/vanilla/src/game/game-state.ts new file mode 100644 index 00000000000..fa9483b0381 --- /dev/null +++ b/templates/tictactoe/template/vanilla/src/game/game-state.ts @@ -0,0 +1,91 @@ +const WIN_PATTERNS = [ + [0, 1, 2], + [3, 4, 5], + [6, 7, 8], + [0, 3, 6], + [1, 4, 7], + [2, 5, 8], + [0, 4, 8], + [2, 4, 6], +]; + +export type Player = "X" | "O"; + +export interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +export function createGameState(): GameState { + return { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, + }; +} + +export function makeMove(state: GameState, index: number): GameState { + if (state.board[index] || state.winner) { + return state; + } + + const board = [...state.board]; + board[index] = state.currentPlayer; + + const result = checkWin(board); + + if (result) { + const scores = { ...state.scores }; + + if (result.winner === "draw") { + scores.draw++; + } else { + scores[result.winner]++; + } + + return { + ...state, + board, + winner: result.winner, + winLine: result.winLine, + scores, + }; + } + + return { + ...state, + board, + currentPlayer: state.currentPlayer === "X" ? "O" : "X", + }; +} + +export function resetBoard(state: GameState): GameState { + return { + ...state, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + }; +} + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + + if (board.every((cell) => cell !== null)) { + return { winner: "draw", winLine: [] }; + } + + return null; +} diff --git a/templates/tictactoe/template/vanilla/src/main.ts b/templates/tictactoe/template/vanilla/src/main.ts new file mode 100644 index 00000000000..7f4a7ff797d --- /dev/null +++ b/templates/tictactoe/template/vanilla/src/main.ts @@ -0,0 +1,57 @@ +import "./style.css"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; +import { createGameState, makeMove, resetBoard, type GameState } from "./game/game-state"; +import { renderBoard, setupBoard } from "./game/board"; + +let state: GameState = createGameState(); + +const resetBtn = document.getElementById("resetBtn") as HTMLButtonElement; + +function handleMove(index: number): void { + const newState = makeMove(state, index); + + if (newState !== state) { + state = newState; + renderBoard(state); + } +} + +function handleReset(): void { + state = resetBoard(state); + renderBoard(state); +} + +setupBoard(handleMove); +resetBtn.addEventListener("click", handleReset); + +renderBoard(state); + +(async () => { + await loadSlim(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { + enable: true, + speed: 0.5, + direction: "none", + random: true, + straight: false, + outModes: { default: "out" }, + }, + }, + detectRetina: true, + }, + }); +})(); diff --git a/templates/tictactoe/template/vanilla/src/style.css b/templates/tictactoe/template/vanilla/src/style.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/vanilla/src/style.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/templates/tictactoe/template/vanilla/tsconfig.json b/templates/tictactoe/template/vanilla/tsconfig.json new file mode 100644 index 00000000000..1b0362ce9bf --- /dev/null +++ b/templates/tictactoe/template/vanilla/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/templates/tictactoe/template/vanilla/vite.config.ts b/templates/tictactoe/template/vanilla/vite.config.ts new file mode 100644 index 00000000000..ed0488e3cf9 --- /dev/null +++ b/templates/tictactoe/template/vanilla/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "./", +}); diff --git a/templates/tictactoe/template/vue2/package.json b/templates/tictactoe/template/vue2/package.json new file mode 100644 index 00000000000..2d349e3b520 --- /dev/null +++ b/templates/tictactoe/template/vue2/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^2.7.16", + "@tsparticles/vue2": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue2": "^2.3.1", + "vite": "^6.0.0", + "vue-template-compiler": "^2.7.16" + } +} diff --git a/templates/tictactoe/template/vue2/src/App.vue b/templates/tictactoe/template/vue2/src/App.vue new file mode 100644 index 00000000000..5e01313785d --- /dev/null +++ b/templates/tictactoe/template/vue2/src/App.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/templates/tictactoe/template/vue3/package.json b/templates/tictactoe/template/vue3/package.json new file mode 100644 index 00000000000..949d19b50e7 --- /dev/null +++ b/templates/tictactoe/template/vue3/package.json @@ -0,0 +1,19 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.5.32", + "@tsparticles/vue3": "^4.1.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.5", + "vue-tsc": "^3.2.6" + } +} diff --git a/templates/tictactoe/template/vue3/src/App.vue b/templates/tictactoe/template/vue3/src/App.vue new file mode 100644 index 00000000000..d2b524d82f2 --- /dev/null +++ b/templates/tictactoe/template/vue3/src/App.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/templates/tictactoe/template/vue3/src/main.ts b/templates/tictactoe/template/vue3/src/main.ts new file mode 100644 index 00000000000..5dcbea5f227 --- /dev/null +++ b/templates/tictactoe/template/vue3/src/main.ts @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import Particles from "@tsparticles/vue3"; +import { loadSlim } from "@tsparticles/slim"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(Particles, { + init: async (engine) => { + await loadSlim(engine); + }, +}); + +app.mount("#app"); diff --git a/templates/tictactoe/template/webcomponents/package.json b/templates/tictactoe/template/webcomponents/package.json new file mode 100644 index 00000000000..7961c1e2f08 --- /dev/null +++ b/templates/tictactoe/template/webcomponents/package.json @@ -0,0 +1,18 @@ +{ + "name": "{{projectName}}", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tsparticles/web-particles": "^4.1.3" + }, + "devDependencies": { + "typescript": "~5.7.0", + "vite": "^6.0.0" + } +} diff --git a/templates/tictactoe/template/webcomponents/src/main.ts b/templates/tictactoe/template/webcomponents/src/main.ts new file mode 100644 index 00000000000..40390f288b5 --- /dev/null +++ b/templates/tictactoe/template/webcomponents/src/main.ts @@ -0,0 +1,134 @@ +import "./style.css"; +import { confetti } from "@tsparticles/confetti"; +import { tsParticles } from "@tsparticles/engine"; +import { loadSlim } from "@tsparticles/slim"; + +type Player = "X" | "O"; + +const WIN_PATTERNS = [ + [0, 1, 2], [3, 4, 5], [6, 7, 8], + [0, 3, 6], [1, 4, 7], [2, 5, 8], + [0, 4, 8], [2, 4, 6], +]; + +interface GameState { + board: (Player | null)[]; + currentPlayer: Player; + winner: Player | "draw" | null; + winLine: number[] | null; + scores: { X: number; O: number; draw: number }; +} + +let state: GameState = { + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + scores: { X: 0, O: 0, draw: 0 }, +}; + +function checkWin(board: (Player | null)[]): { winner: Player | "draw"; winLine: number[] } | null { + for (const pattern of WIN_PATTERNS) { + const [a, b, c] = pattern; + if (board[a] && board[a] === board[b] && board[a] === board[c]) { + return { winner: board[a] as Player, winLine: pattern }; + } + } + if (board.every((cell) => cell !== null)) return { winner: "draw" as const, winLine: [] }; + return null; +} + +function fireConfettiEffect(): void { + const count = 200; + const defaults = { origin: { y: 0.7 } }; + const fire = (particleRatio: number, opts: Record) => { + confetti({ ...defaults, ...opts, particleCount: Math.floor(count * particleRatio) }); + }; + fire(0.25, { spread: 26, startVelocity: 55 }); + fire(0.2, { spread: 60 }); + fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 }); + fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 }); + fire(0.1, { spread: 120, startVelocity: 45 }); +} + +function render(): void { + const boardEl = document.getElementById("board") as HTMLDivElement; + const turnEl = document.getElementById("turn") as HTMLDivElement; + const scoreX = document.getElementById("scoreX") as HTMLSpanElement; + const scoreO = document.getElementById("scoreO") as HTMLSpanElement; + const scoreDraw = document.getElementById("scoreDraw") as HTMLSpanElement; + + const cells = boardEl.querySelectorAll(".cell"); + cells.forEach((cell, i) => { + cell.textContent = state.board[i] ?? ""; + cell.classList.toggle("taken", state.board[i] !== null); + cell.classList.toggle("win", state.winLine?.includes(i) ?? false); + }); + + if (!state.winner) turnEl.textContent = `${state.currentPlayer}'s turn`; + else if (state.winner === "draw") turnEl.textContent = "It's a draw!"; + else turnEl.textContent = `${state.winner} wins!`; + + scoreX.textContent = String(state.scores.X); + scoreO.textContent = String(state.scores.O); + scoreDraw.textContent = String(state.scores.draw); +} + +function handleMove(index: number): void { + if (state.board[index] || state.winner) return; + const board = [...state.board]; + board[index] = state.currentPlayer; + const result = checkWin(board); + if (result) { + state = { ...state, board, winner: result.winner, winLine: result.winLine }; + if (result.winner === "draw") state.scores.draw++; + else state.scores[result.winner]++; + if (result.winner !== "draw") setTimeout(fireConfettiEffect, 100); + } else { + state = { ...state, board, currentPlayer: state.currentPlayer === "X" ? "O" : "X" }; + } + render(); +} + +function handleReset(): void { + state = { + ...state, + board: Array(9).fill(null), + currentPlayer: "X", + winner: null, + winLine: null, + }; + render(); +} + +document.getElementById("board")?.addEventListener("click", (e) => { + const cell = (e.target as HTMLElement).closest(".cell") as HTMLElement | null; + if (!cell) return; + const index = parseInt(cell.dataset.index ?? "", 10); + if (!isNaN(index)) handleMove(index); +}); + +document.getElementById("resetBtn")?.addEventListener("click", handleReset); + +render(); + +(async () => { + await loadSlim(tsParticles); + await tsParticles.load({ + id: "tsparticles", + options: { + fullScreen: { enable: true, zIndex: -1 }, + background: { color: { value: "#0a0a1a" } }, + fpsLimit: 60, + particles: { + number: { value: 30, density: { enable: true } }, + color: { value: ["#6c5ce7", "#a29bfe"] }, + shape: { type: "circle" }, + opacity: { value: 0.2, random: true }, + size: { value: { min: 1, max: 2 } }, + move: { enable: true, speed: 0.5, direction: "none", random: true, straight: false, outModes: { default: "out" } }, + }, + detectRetina: true, + }, + }); +})(); diff --git a/templates/tictactoe/template/webcomponents/src/style.css b/templates/tictactoe/template/webcomponents/src/style.css new file mode 100644 index 00000000000..b8e7c85926f --- /dev/null +++ b/templates/tictactoe/template/webcomponents/src/style.css @@ -0,0 +1,97 @@ +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #0a0a1a; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + color: #fff; +} + +#app { + text-align: center; + z-index: 10; + padding: 1rem; +} + +h1 { + font-size: 2.5em; + margin-bottom: 1rem; + background: linear-gradient(135deg, #6c5ce7, #fd79a8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.scoreboard { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; + font-size: 1.1em; + opacity: 0.8; +} + +.turn { + font-size: 1.2em; + margin-bottom: 1rem; + opacity: 0.7; +} + +.board { + display: grid; + grid-template-columns: repeat(3, 100px); + grid-template-rows: repeat(3, 100px); + gap: 4px; + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + overflow: hidden; + margin: 0 auto; + width: fit-content; +} + +.cell { + display: flex; + align-items: center; + justify-content: center; + font-size: 2.5em; + font-weight: 700; + background: #12122a; + cursor: pointer; + transition: background 0.2s; + user-select: none; +} + +.cell:hover { + background: #1a1a3a; +} + +.cell.taken { + cursor: default; +} + +.cell.win { + background: rgba(108, 92, 231, 0.3); +} + +.reset-btn { + margin-top: 1.5rem; + padding: 0.7em 2em; + font-size: 1em; + font-weight: 600; + border: none; + border-radius: 8px; + background: linear-gradient(135deg, #6c5ce7, #a29bfe); + color: #fff; + cursor: pointer; + transition: transform 0.2s; +} + +.reset-btn:hover { + transform: scale(1.05); +} diff --git a/updaters/destroy/CHANGELOG.md b/updaters/destroy/CHANGELOG.md index fe29d4aa313..13249cfa1e2 100644 --- a/updaters/destroy/CHANGELOG.md +++ b/updaters/destroy/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-destroy diff --git a/updaters/destroy/package.dist.json b/updaters/destroy/package.dist.json index 4dbb5f76a17..42bf8b60c5a 100644 --- a/updaters/destroy/package.dist.json +++ b/updaters/destroy/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-destroy", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles destroy updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/destroy/package.json b/updaters/destroy/package.json index eb6e3a8efab..5a332cec2b1 100644 --- a/updaters/destroy/package.json +++ b/updaters/destroy/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-destroy", - "version": "4.1.3", - "description": "tsParticles particles destroy updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle destruction and disintegration when they split, shatter, or are removed", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-destroy" ], "author": "Matteo Bruni ", "license": "MIT", @@ -103,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/destroy/src/DestroyUpdater.ts b/updaters/destroy/src/DestroyUpdater.ts index 1383202f284..0aa694a5dae 100644 --- a/updaters/destroy/src/DestroyUpdater.ts +++ b/updaters/destroy/src/DestroyUpdater.ts @@ -6,6 +6,7 @@ import { type PluginManager, type RecursivePartial, getRangeValue, + loadOptionProperty, percentDenominator, } from "@tsparticles/engine"; import type { DestroyParticle, DestroyParticlesOptions, IDestroyParticlesOptions } from "./Types.js"; @@ -27,8 +28,8 @@ export class DestroyUpdater implements IParticleUpdater { /** * DestroyUpdater constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#container = container; @@ -37,7 +38,7 @@ export class DestroyUpdater implements IParticleUpdater { /** * Initializes destroy-related particle properties - * @param particle + * @param particle - The particle to process */ init(particle: DestroyParticle): void { const container = this.#container, @@ -79,7 +80,8 @@ export class DestroyUpdater implements IParticleUpdater { /** * Checks if the particle needs destroy handling - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: Particle): boolean { const destroyParticle = particle as DestroyParticle; @@ -89,24 +91,20 @@ export class DestroyUpdater implements IParticleUpdater { /** * Loads the destroy options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: DestroyParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.destroy ??= new Destroy(); - - for (const source of sources) { - options.destroy.load(source?.destroy); - } + loadOptionProperty(options, "destroy", Destroy, ...sources); } /** * Handles particle destruction (split or explode) - * @param particle - * @param override + * @param particle - The particle to process + * @param override - The override */ particleDestroyed(particle: DestroyParticle, override?: boolean): void { if (override) { @@ -154,8 +152,8 @@ export class DestroyUpdater implements IParticleUpdater { /** * Updates particle destruction state - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: DestroyParticle, delta: IDelta): void { if (particle.exploding) { diff --git a/updaters/destroy/src/Options/Classes/Destroy.ts b/updaters/destroy/src/Options/Classes/Destroy.ts index d793d5364a3..2388f808d0b 100644 --- a/updaters/destroy/src/Options/Classes/Destroy.ts +++ b/updaters/destroy/src/Options/Classes/Destroy.ts @@ -8,25 +8,18 @@ import { Split } from "./Split.js"; /** Destroy options class */ export class Destroy implements IDestroy, IOptionLoader { /** The destroy bounds */ - bounds: DestroyBounds; + readonly bounds: DestroyBounds = new DestroyBounds(); /** The explode options */ - explode: Explode; + readonly explode: Explode = new Explode(); /** The destroy mode */ - mode: DestroyMode | keyof typeof DestroyMode; + mode: DestroyMode | keyof typeof DestroyMode = DestroyMode.none; /** The split options */ - split: Split; - + readonly split: Split = new Split(); /** Destroy constructor */ - constructor() { - this.bounds = new DestroyBounds(); - this.explode = new Explode(); - this.mode = DestroyMode.none; - this.split = new Split(); - } /** * Loads the destroy options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/updaters/destroy/src/Options/Classes/DestroyBounds.ts b/updaters/destroy/src/Options/Classes/DestroyBounds.ts index 33feb7fff8f..18313abfb9e 100644 --- a/updaters/destroy/src/Options/Classes/DestroyBounds.ts +++ b/updaters/destroy/src/Options/Classes/DestroyBounds.ts @@ -1,4 +1,10 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IDestroyBounds } from "../Interfaces/IDestroyBounds.js"; /** Destroy bounds options class */ @@ -14,27 +20,16 @@ export class DestroyBounds implements IDestroyBounds, IOptionLoader): void { if (isNull(data)) { return; } - if (data.bottom !== undefined) { - this.bottom = setRangeValue(data.bottom); - } - - if (data.left !== undefined) { - this.left = setRangeValue(data.left); - } - - if (data.right !== undefined) { - this.right = setRangeValue(data.right); - } - - if (data.top !== undefined) { - this.top = setRangeValue(data.top); - } + loadRangeProperty(this, "bottom", data.bottom); + loadRangeProperty(this, "left", data.left); + loadRangeProperty(this, "right", data.right); + loadRangeProperty(this, "top", data.top); } } diff --git a/updaters/destroy/src/Options/Classes/Explode.ts b/updaters/destroy/src/Options/Classes/Explode.ts index 93bd3e62d2e..dd0d4042351 100644 --- a/updaters/destroy/src/Options/Classes/Explode.ts +++ b/updaters/destroy/src/Options/Classes/Explode.ts @@ -1,34 +1,24 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { IExplode } from "../Interfaces/IExplode.js"; /** Explode options class */ export class Explode implements IExplode, IOptionLoader { /** Maximum size factor for the explosion */ - maxSizeFactor: number; + maxSizeFactor = 3; /** Speed of the explosion */ - speed: number; - + speed = 2; /** Explode constructor */ - constructor() { - this.maxSizeFactor = 3; - this.speed = 2; - } /** * Loads the explode options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.maxSizeFactor !== undefined) { - this.maxSizeFactor = data.maxSizeFactor; - } - - if (data.speed !== undefined) { - this.speed = data.speed; - } + loadProperty(this, "maxSizeFactor", data.maxSizeFactor); + loadProperty(this, "speed", data.speed); } } diff --git a/updaters/destroy/src/Options/Classes/Split.ts b/updaters/destroy/src/Options/Classes/Split.ts index bd667efe27d..e66b4b00e93 100644 --- a/updaters/destroy/src/Options/Classes/Split.ts +++ b/updaters/destroy/src/Options/Classes/Split.ts @@ -8,6 +8,7 @@ import { deepExtend, executeOnSingleOrMultiple, isNull, + loadProperty, } from "@tsparticles/engine"; import type { ISplit } from "../Interfaces/ISplit.js"; import { SplitFactor } from "./SplitFactor.js"; @@ -16,9 +17,9 @@ import { SplitRate } from "./SplitRate.js"; /** Split options class */ export class Split implements ISplit, IOptionLoader { /** The split count */ - count: number; + count = 1; /** The split factor */ - factor: SplitFactor; + readonly factor: SplitFactor = new SplitFactor(); /** The split fill color */ fillColor?: OptionsColor; /** The split fill color offset */ @@ -26,25 +27,19 @@ export class Split implements ISplit, IOptionLoader { /** The split particles options */ particles?: SingleOrMultiple>; /** The split rate */ - rate: SplitRate; + readonly rate: SplitRate = new SplitRate(); /** The split size offset */ - sizeOffset: boolean; + sizeOffset = true; /** The split stroke color */ strokeColor?: OptionsColor; /** The split stroke color offset */ strokeColorOffset?: Partial; /** Split constructor */ - constructor() { - this.count = 1; - this.factor = new SplitFactor(); - this.rate = new SplitRate(); - this.sizeOffset = true; - } /** * Loads the split options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { @@ -59,9 +54,7 @@ export class Split implements ISplit, IOptionLoader { this.strokeColor = OptionsColor.create(this.strokeColor, data.strokeColor); } - if (data.count !== undefined) { - this.count = data.count; - } + loadProperty(this, "count", data.count); this.factor.load(data.factor); this.rate.load(data.rate); @@ -70,9 +63,7 @@ export class Split implements ISplit, IOptionLoader { return deepExtend({}, particles) as RecursivePartial; }); - if (data.sizeOffset !== undefined) { - this.sizeOffset = data.sizeOffset; - } + loadProperty(this, "sizeOffset", data.sizeOffset); if (data.fillColorOffset) { this.fillColorOffset = this.fillColorOffset ?? {}; diff --git a/updaters/destroy/src/Options/Classes/SplitFactor.ts b/updaters/destroy/src/Options/Classes/SplitFactor.ts index 6c97ebe19c8..2d36a0f2c05 100644 --- a/updaters/destroy/src/Options/Classes/SplitFactor.ts +++ b/updaters/destroy/src/Options/Classes/SplitFactor.ts @@ -2,10 +2,5 @@ import { ValueWithRandom } from "@tsparticles/engine"; /** Split factor options class */ export class SplitFactor extends ValueWithRandom { - /** SplitFactor constructor */ - constructor() { - super(); - - this.value = 3; - } + override value = 3; } diff --git a/updaters/destroy/src/Options/Classes/SplitRate.ts b/updaters/destroy/src/Options/Classes/SplitRate.ts index b771bb311ec..6664f3ed4c6 100644 --- a/updaters/destroy/src/Options/Classes/SplitRate.ts +++ b/updaters/destroy/src/Options/Classes/SplitRate.ts @@ -2,10 +2,5 @@ import { ValueWithRandom } from "@tsparticles/engine"; /** Split rate options class */ export class SplitRate extends ValueWithRandom { - /** SplitRate constructor */ - constructor() { - super(); - - this.value = { min: 4, max: 9 }; - } + override value = { min: 4, max: 9 }; } diff --git a/updaters/destroy/src/Utils.ts b/updaters/destroy/src/Utils.ts index c5230adfc2f..34e25503055 100644 --- a/updaters/destroy/src/Utils.ts +++ b/updaters/destroy/src/Utils.ts @@ -36,7 +36,7 @@ const defaultOffset = 0, type SplitColorData = string | RecursivePartial; /** - * @param parentColor - + * @param parentColor - The parentColor * @returns the parent color as AnimatableColor */ function createParentColor(parentColor: IHsl): AnimatableColor { @@ -48,8 +48,8 @@ function createParentColor(parentColor: IHsl): AnimatableColor { } /** - * @param parentColor - - * @param offset - + * @param parentColor - The parentColor + * @param offset - The offset * @returns the offset color as AnimatableColor */ function createOffsetColor(parentColor: IHsl, offset: Partial): AnimatableColor { @@ -72,10 +72,10 @@ function createOffsetColor(parentColor: IHsl, offset: Partial): Anima } /** - * @param offset - - * @param splitColor - - * @param splitParticlesColor - - * @param parentColor - + * @param offset - The offset + * @param splitColor - The splitColor + * @param splitParticlesColor - The splitParticlesColor + * @param parentColor - The parentColor * @returns the split color resolved using precedence rules */ function resolveSplitColor( @@ -100,10 +100,10 @@ function resolveSplitColor( } /** - * @param pluginManager - - * @param container - - * @param parent - - * @param splitParticlesOptions - + * @param pluginManager - The plugin manager + * @param container - The container to handle + * @param parent - The parent + * @param splitParticlesOptions - The splitParticlesOptions * @returns the added particle if any */ function addSplitParticle( @@ -197,9 +197,9 @@ function addSplitParticle( /** * - * @param pluginManager - - * @param container - - * @param particle - + * @param pluginManager - The plugin manager + * @param container - The container to handle + * @param particle - The particle to process */ export function split(pluginManager: PluginManager, container: Container, particle: DestroyParticle): void { const destroyOptions = particle.options.destroy; diff --git a/updaters/destroy/src/index.lazy.ts b/updaters/destroy/src/index.lazy.ts index eeac5fc9535..31e9955beb2 100644 --- a/updaters/destroy/src/index.lazy.ts +++ b/updaters/destroy/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDestroyUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/destroy/src/index.ts b/updaters/destroy/src/index.ts index cc13ee05741..018153fe32d 100644 --- a/updaters/destroy/src/index.ts +++ b/updaters/destroy/src/index.ts @@ -4,7 +4,7 @@ import { type Engine } from "@tsparticles/engine"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadDestroyUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/gradient/CHANGELOG.md b/updaters/gradient/CHANGELOG.md index b5950cf6842..6abe6ce5e49 100644 --- a/updaters/gradient/CHANGELOG.md +++ b/updaters/gradient/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-gradient diff --git a/updaters/gradient/package.dist.json b/updaters/gradient/package.dist.json index c4ec00c348b..717019b638d 100644 --- a/updaters/gradient/package.dist.json +++ b/updaters/gradient/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-gradient", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles gradient updater", "homepage": "https://particles.js.org", "repository": { @@ -106,8 +106,11 @@ }, "./package.json": "./package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "4.2.0" + }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/gradient/package.json b/updaters/gradient/package.json index 796009b8e35..825458379c5 100644 --- a/updaters/gradient/package.json +++ b/updaters/gradient/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-gradient", - "version": "4.1.3", - "description": "tsParticles particles gradient updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle color gradients over time with smooth multi-color transitions", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-gradient" ], "author": "Matteo Bruni ", "license": "MIT", @@ -113,11 +78,15 @@ }, "./package.json": "./dist/package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "workspace:*" + }, "peerDependencies": { "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/gradient/src/GradientUpdater.ts b/updaters/gradient/src/GradientUpdater.ts index f959abe4e9c..baa041ef99d 100644 --- a/updaters/gradient/src/GradientUpdater.ts +++ b/updaters/gradient/src/GradientUpdater.ts @@ -38,8 +38,8 @@ export class GradientUpdater implements IParticleUpdater { /** * GradientUpdater constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#pluginManager = pluginManager; @@ -48,10 +48,11 @@ export class GradientUpdater implements IParticleUpdater { /** * Gets the color styles for the gradient - * @param particle - * @param context - * @param radius - * @param opacity + * @param particle - The particle to process + * @param context - The rendering context + * @param radius - The radius + * @param opacity - The opacity value + * @returns The color styles for the gradient */ getColorStyles( particle: GradientParticle, @@ -94,7 +95,7 @@ export class GradientUpdater implements IParticleUpdater { /** * Initializes the particle gradient - * @param particle + * @param particle - The particle to process */ init(particle: GradientParticle): void { const gradient = itemFromSingleOrMultiple(particle.options.gradient); @@ -208,7 +209,8 @@ export class GradientUpdater implements IParticleUpdater { /** * Checks if gradient animation is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: GradientParticle): boolean { return ( @@ -221,8 +223,8 @@ export class GradientUpdater implements IParticleUpdater { /** * Loads the gradient options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: GradientParticlesOptions, @@ -247,8 +249,8 @@ export class GradientUpdater implements IParticleUpdater { /** * Updates particle gradient animation - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: GradientParticle, delta: IDelta): void { updateGradient(particle, delta); diff --git a/updaters/gradient/src/Options/Classes/AnimatableGradient.ts b/updaters/gradient/src/Options/Classes/AnimatableGradient.ts index 2d9fc256712..815b805fd74 100644 --- a/updaters/gradient/src/Options/Classes/AnimatableGradient.ts +++ b/updaters/gradient/src/Options/Classes/AnimatableGradient.ts @@ -1,4 +1,4 @@ -import { GradientType, type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { GradientType, type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import { AnimatableGradientColor } from "./AnimatableGradientColor.js"; import { GradientAngle } from "./GradientAngle.js"; import type { IAnimatableGradient } from "../Interfaces/IAnimatableGradient.js"; @@ -9,22 +9,16 @@ import type { IAnimatableGradient } from "../Interfaces/IAnimatableGradient.js"; */ export class AnimatableGradient implements IAnimatableGradient, IOptionLoader { /** Gradient angle */ - angle: GradientAngle; + readonly angle: GradientAngle = new GradientAngle(); /** Gradient colors */ - colors: AnimatableGradientColor[]; + colors: AnimatableGradientColor[] = []; /** Gradient type */ - type: GradientType; - + type: GradientType = GradientType.random; /** AnimatableGradient constructor */ - constructor() { - this.angle = new GradientAngle(); - this.colors = []; - this.type = GradientType.random; - } /** * Loads the animatable gradient from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { @@ -43,8 +37,6 @@ export class AnimatableGradient implements IAnimatableGradient, IOptionLoader): void { if (isNull(data)) { return; } - if (data.stop !== undefined) { - this.stop = data.stop; - } + loadProperty(this, "stop", data.stop); this.value = AnimatableColor.create(this.value, data.value); diff --git a/updaters/gradient/src/Options/Classes/GradientAngle.ts b/updaters/gradient/src/Options/Classes/GradientAngle.ts index a93e209d425..9b886c1375c 100644 --- a/updaters/gradient/src/Options/Classes/GradientAngle.ts +++ b/updaters/gradient/src/Options/Classes/GradientAngle.ts @@ -7,7 +7,8 @@ import { RotateDirection, type RotateDirectionAlt, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import { GradientAngleAnimation } from "./GradientAngleAnimation.js"; import type { IGradientAngle } from "../Interfaces/Gradients.js"; @@ -17,22 +18,16 @@ export class GradientAngle implements IGradientAngle, IAnimatable, IOptionLoader> { /** Angle animation */ - animation; + readonly animation = new GradientAngleAnimation(); /** Angle direction */ - direction: RotateDirection | keyof typeof RotateDirection | RotateDirectionAlt; + direction: RotateDirection | keyof typeof RotateDirection | RotateDirectionAlt = RotateDirection.clockwise; /** Angle value */ - value: RangeValue; - + value: RangeValue = 0; /** GradientAngle constructor */ - constructor() { - this.value = 0; - this.animation = new GradientAngleAnimation(); - this.direction = RotateDirection.clockwise; - } /** * Loads the gradient angle from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial>): void { if (isNull(data)) { @@ -41,12 +36,7 @@ export class GradientAngle this.animation.load(data.animation); - if (data.value !== undefined) { - this.value = setRangeValue(data.value); - } - - if (data.direction !== undefined) { - this.direction = data.direction; - } + loadRangeProperty(this, "value", data.value); + loadProperty(this, "direction", data.direction); } } diff --git a/updaters/gradient/src/Options/Classes/GradientAngleAnimation.ts b/updaters/gradient/src/Options/Classes/GradientAngleAnimation.ts index 85016e82161..2c8bff9461d 100644 --- a/updaters/gradient/src/Options/Classes/GradientAngleAnimation.ts +++ b/updaters/gradient/src/Options/Classes/GradientAngleAnimation.ts @@ -4,65 +4,40 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; /** Gradient angle animation options class */ export class GradientAngleAnimation implements IAnimation, IOptionLoader { /** Animation repeat count */ - count: RangeValue; + count: RangeValue = 0; /** Animation decay */ - decay: RangeValue; + decay: RangeValue = 0; /** Animation delay */ - delay: RangeValue; + delay: RangeValue = 0; /** Enables the animation */ - enable; + enable = false; /** Animation speed */ - speed: RangeValue; + speed: RangeValue = 0; /** Enables animation sync */ - sync; - + sync = false; /** GradientAngleAnimation constructor */ - constructor() { - this.count = 0; - this.enable = false; - this.speed = 0; - this.decay = 0; - this.delay = 0; - this.sync = false; - } /** * Loads the gradient angle animation from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.count !== undefined) { - this.count = setRangeValue(data.count); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } - - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } - - if (data.sync !== undefined) { - this.sync = data.sync; - } + loadRangeProperty(this, "count", data.count); + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "speed", data.speed); + loadRangeProperty(this, "decay", data.decay); + loadRangeProperty(this, "delay", data.delay); + loadProperty(this, "sync", data.sync); } } diff --git a/updaters/gradient/src/Options/Classes/GradientColorOpacity.ts b/updaters/gradient/src/Options/Classes/GradientColorOpacity.ts index da81479d0f4..22dd41bcd70 100644 --- a/updaters/gradient/src/Options/Classes/GradientColorOpacity.ts +++ b/updaters/gradient/src/Options/Classes/GradientColorOpacity.ts @@ -5,7 +5,7 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadRangeProperty, } from "@tsparticles/engine"; import { GradientColorOpacityAnimation } from "./GradientColorOpacityAnimation.js"; import type { IGradientColorOpacity } from "../Interfaces/Gradients.js"; @@ -19,19 +19,14 @@ export class GradientColorOpacity IOptionLoader> { /** Color opacity animation */ - animation; + readonly animation = new GradientColorOpacityAnimation(); /** Color opacity value */ - value: RangeValue; - + value: RangeValue = 0; /** GradientColorOpacity constructor */ - constructor() { - this.value = 0; - this.animation = new GradientColorOpacityAnimation(); - } /** * Loads the gradient color opacity from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial>): void { if (isNull(data)) { @@ -40,8 +35,6 @@ export class GradientColorOpacity this.animation.load(data.animation); - if (data.value !== undefined) { - this.value = setRangeValue(data.value); - } + loadRangeProperty(this, "value", data.value); } } diff --git a/updaters/gradient/src/Options/Classes/GradientColorOpacityAnimation.ts b/updaters/gradient/src/Options/Classes/GradientColorOpacityAnimation.ts index d503b94365e..3caaf283e96 100644 --- a/updaters/gradient/src/Options/Classes/GradientColorOpacityAnimation.ts +++ b/updaters/gradient/src/Options/Classes/GradientColorOpacityAnimation.ts @@ -4,7 +4,8 @@ import { type RecursivePartial, StartValueType, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IGradientColorOpacityAnimation } from "../Interfaces/IOptionsGradient.js"; @@ -13,66 +14,36 @@ export class GradientColorOpacityAnimation implements IGradientColorOpacityAnimation, IOptionLoader { /** Animation repeat count */ - count: RangeValue; + count: RangeValue = 0; /** Animation decay */ - decay: RangeValue; + decay: RangeValue = 0; /** Animation delay */ - delay: RangeValue; + delay: RangeValue = 0; /** Enables the animation */ - enable; + enable = false; /** Animation speed */ - speed: RangeValue; + speed: RangeValue = 0; /** Animation start value */ - startValue: StartValueType | keyof typeof StartValueType; + startValue: StartValueType | keyof typeof StartValueType = StartValueType.random; /** Enables animation sync */ - sync; - + sync = false; /** GradientColorOpacityAnimation constructor */ - constructor() { - this.count = 0; - this.enable = false; - this.speed = 0; - this.decay = 0; - this.delay = 0; - this.sync = false; - this.startValue = StartValueType.random; - } /** * Loads the gradient color opacity animation from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.count !== undefined) { - this.count = setRangeValue(data.count); - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } - - if (data.sync !== undefined) { - this.sync = data.sync; - } - - if (data.startValue !== undefined) { - this.startValue = data.startValue; - } - - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.delay !== undefined) { - this.delay = setRangeValue(data.delay); - } + loadRangeProperty(this, "count", data.count); + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "speed", data.speed); + loadProperty(this, "sync", data.sync); + loadProperty(this, "startValue", data.startValue); + loadRangeProperty(this, "decay", data.decay); + loadRangeProperty(this, "delay", data.delay); } } diff --git a/updaters/gradient/src/Utils.ts b/updaters/gradient/src/Utils.ts index 43e4f5dd1c9..3a08247f986 100644 --- a/updaters/gradient/src/Utils.ts +++ b/updaters/gradient/src/Utils.ts @@ -1,9 +1,10 @@ -import { DestroyType, type IDelta, updateAnimation, updateColor } from "@tsparticles/engine"; +import { DestroyType, type IDelta, updateColor } from "@tsparticles/engine"; import type { GradientParticle } from "./Types.js"; +import { updateAnimation } from "@tsparticles/animation-utils"; /** - * @param particle - - * @param delta - + * @param particle - The particle to process + * @param delta - The delta time */ export function updateGradient(particle: GradientParticle, delta: IDelta): void { const { gradient } = particle; diff --git a/updaters/gradient/src/index.lazy.ts b/updaters/gradient/src/index.lazy.ts index 6fc686f7414..685a2c021b3 100644 --- a/updaters/gradient/src/index.lazy.ts +++ b/updaters/gradient/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGradientUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/gradient/src/index.ts b/updaters/gradient/src/index.ts index d20c2a6e510..b512c8dd40d 100644 --- a/updaters/gradient/src/index.ts +++ b/updaters/gradient/src/index.ts @@ -4,7 +4,7 @@ import { GradientUpdater } from "./GradientUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadGradientUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/life/CHANGELOG.md b/updaters/life/CHANGELOG.md index 02365c0c176..eb37f46b1b9 100644 --- a/updaters/life/CHANGELOG.md +++ b/updaters/life/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-life diff --git a/updaters/life/package.dist.json b/updaters/life/package.dist.json index 18ab06580d9..eb36af2fec3 100644 --- a/updaters/life/package.dist.json +++ b/updaters/life/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-life", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles life updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/life/package.json b/updaters/life/package.json index a71f2949c1b..ee60ed514fd 100644 --- a/updaters/life/package.json +++ b/updaters/life/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-life", - "version": "4.1.3", - "description": "tsParticles particles life updater", + "version": "4.2.0", + "description": "tsParticles updater for controlling particle lifetime, duration, and count limits with customizable birth/death animations", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-life" ], "author": "Matteo Bruni ", "license": "MIT", @@ -103,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/life/src/LifeUpdater.ts b/updaters/life/src/LifeUpdater.ts index b2b5f646d3c..3d3735cf5e4 100644 --- a/updaters/life/src/LifeUpdater.ts +++ b/updaters/life/src/LifeUpdater.ts @@ -6,6 +6,7 @@ import { type RecursivePartial, getRandom, getRangeValue, + loadOptionProperty, millisecondsToSeconds, } from "@tsparticles/engine"; import type { ILifeParticlesOptions, LifeParticle, LifeParticlesOptions } from "./Types.js"; @@ -23,7 +24,7 @@ export class LifeUpdater implements IParticleUpdater { /** * LifeUpdater constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -31,7 +32,7 @@ export class LifeUpdater implements IParticleUpdater { /** * Initializes particle life values - * @param particle + * @param particle - The particle to process */ init(particle: LifeParticle): void { const container = this.#container, @@ -72,7 +73,8 @@ export class LifeUpdater implements IParticleUpdater { /** * Checks if life updater is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: Particle): boolean { return !particle.destroyed; @@ -80,24 +82,20 @@ export class LifeUpdater implements IParticleUpdater { /** * Loads the life options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: LifeParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.life ??= new Life(); - - for (const source of sources) { - options.life.load(source?.life); - } + loadOptionProperty(options, "life", Life, ...sources); } /** * Updates the particle life state - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: LifeParticle, delta: IDelta): void { if (!this.isEnabled(particle) || !particle.life) { diff --git a/updaters/life/src/Options/Classes/Life.ts b/updaters/life/src/Options/Classes/Life.ts index 0371a51fe77..69bb96e542a 100644 --- a/updaters/life/src/Options/Classes/Life.ts +++ b/updaters/life/src/Options/Classes/Life.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from "@tsparticles/engine"; import type { ILife } from "../Interfaces/ILife.js"; import { LifeDelay } from "./LifeDelay.js"; import { LifeDuration } from "./LifeDuration.js"; @@ -9,31 +9,23 @@ import { LifeDuration } from "./LifeDuration.js"; */ export class Life implements ILife, IOptionLoader { /** Life count */ - count; + count = 0; /** Life delay */ - delay; + readonly delay = new LifeDelay(); /** Life duration */ - duration; - + readonly duration = new LifeDuration(); /** Life constructor */ - constructor() { - this.count = 0; - this.delay = new LifeDelay(); - this.duration = new LifeDuration(); - } /** * Loads the life options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.count !== undefined) { - this.count = data.count; - } + loadProperty(this, "count", data.count); this.delay.load(data.delay); this.duration.load(data.duration); diff --git a/updaters/life/src/Options/Classes/LifeDelay.ts b/updaters/life/src/Options/Classes/LifeDelay.ts index 171abc84081..db6b23b9570 100644 --- a/updaters/life/src/Options/Classes/LifeDelay.ts +++ b/updaters/life/src/Options/Classes/LifeDelay.ts @@ -1,20 +1,13 @@ -import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull, loadProperty } from "@tsparticles/engine"; import type { ILifeDelay } from "../Interfaces/ILifeDelay.js"; /** Life delay options class */ export class LifeDelay extends ValueWithRandom implements ILifeDelay, IOptionLoader { /** Enables the life delay sync */ - sync; - - /** LifeDelay constructor */ - constructor() { - super(); - this.sync = false; - } - + sync = false; /** * Loads the life delay from data - * @param data + * @param data - The data to handle */ override load(data?: RecursivePartial): void { if (isNull(data)) { @@ -23,8 +16,6 @@ export class LifeDelay extends ValueWithRandom implements ILifeDelay, IOptionLoa super.load(data); - if (data.sync !== undefined) { - this.sync = data.sync; - } + loadProperty(this, "sync", data.sync); } } diff --git a/updaters/life/src/Options/Classes/LifeDuration.ts b/updaters/life/src/Options/Classes/LifeDuration.ts index 32b6eb0ff2b..508e8149cc3 100644 --- a/updaters/life/src/Options/Classes/LifeDuration.ts +++ b/updaters/life/src/Options/Classes/LifeDuration.ts @@ -1,20 +1,13 @@ -import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull, loadProperty } from "@tsparticles/engine"; import type { ILifeDuration } from "../Interfaces/ILifeDuration.js"; /** Life duration options class */ export class LifeDuration extends ValueWithRandom implements ILifeDuration, IOptionLoader { /** Enables the life duration sync */ - sync; - - /** LifeDuration constructor */ - constructor() { - super(); - this.sync = false; - } - + sync = false; /** * Loads the life duration from data - * @param data + * @param data - The data to handle */ override load(data?: RecursivePartial): void { if (isNull(data)) { @@ -23,8 +16,6 @@ export class LifeDuration extends ValueWithRandom implements ILifeDuration, IOpt super.load(data); - if (data.sync !== undefined) { - this.sync = data.sync; - } + loadProperty(this, "sync", data.sync); } } diff --git a/updaters/life/src/Utils.ts b/updaters/life/src/Utils.ts index 508fc8ada7f..0ed75294676 100644 --- a/updaters/life/src/Utils.ts +++ b/updaters/life/src/Utils.ts @@ -14,9 +14,9 @@ const noTime = 0, minCanvasSize = 0; /** - * @param particle - - * @param delta - - * @param canvasSize - + * @param particle - The particle to process + * @param delta - The delta time + * @param canvasSize - The canvasSize */ export function updateLife(particle: LifeParticle, delta: IDelta, canvasSize: IDimension): void { if (!particle.life) { diff --git a/updaters/life/src/index.lazy.ts b/updaters/life/src/index.lazy.ts index e33eb144fde..77ae40d890f 100644 --- a/updaters/life/src/index.lazy.ts +++ b/updaters/life/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLifeUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/life/src/index.ts b/updaters/life/src/index.ts index 4f36ac6e1d8..91d914f45f3 100644 --- a/updaters/life/src/index.ts +++ b/updaters/life/src/index.ts @@ -4,7 +4,7 @@ import { LifeUpdater } from "./LifeUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadLifeUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/opacity/CHANGELOG.md b/updaters/opacity/CHANGELOG.md index a8866353cc9..90eb3e0f833 100644 --- a/updaters/opacity/CHANGELOG.md +++ b/updaters/opacity/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-opacity diff --git a/updaters/opacity/package.dist.json b/updaters/opacity/package.dist.json index 8a00e6a0a4c..902d54e299d 100644 --- a/updaters/opacity/package.dist.json +++ b/updaters/opacity/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-opacity", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles opacity updater", "homepage": "https://particles.js.org", "repository": { @@ -92,8 +92,11 @@ }, "./package.json": "./package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "4.2.0" + }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/opacity/package.json b/updaters/opacity/package.json index bb656a4ef05..e993d914a7c 100644 --- a/updaters/opacity/package.json +++ b/updaters/opacity/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-opacity", - "version": "4.1.3", - "description": "tsParticles particles opacity updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle opacity/transparency over time with customizable fade-in, fade-out, and pulsing effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-opacity" ], "author": "Matteo Bruni ", "license": "MIT", @@ -96,11 +61,15 @@ }, "./package.json": "./dist/package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "workspace:*" + }, "peerDependencies": { "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/opacity/src/OpacityUpdater.ts b/updaters/opacity/src/OpacityUpdater.ts index fb5bf0e6648..55ea1cf841e 100644 --- a/updaters/opacity/src/OpacityUpdater.ts +++ b/updaters/opacity/src/OpacityUpdater.ts @@ -5,11 +5,11 @@ import { type RecursivePartial, getRandom, getRangeValue, - initParticleNumericAnimationValue, + loadOptionProperty, percentDenominator, - updateAnimation, } from "@tsparticles/engine"; import { type IOpacityParticlesOptions, type OpacityParticle, type OpacityParticlesOptions } from "./Types.js"; +import { initParticleNumericAnimationValue, updateAnimation } from "@tsparticles/animation-utils"; import { Opacity } from "./Options/Classes/Opacity.js"; /** @@ -28,7 +28,7 @@ export class OpacityUpdater implements IParticleUpdater { /** * Init a single particle opacity - * @param particle - + * @param particle - The particle to process */ init(particle: OpacityParticle): void { /* opacity */ @@ -55,7 +55,7 @@ export class OpacityUpdater implements IParticleUpdater { /** * Checks if opacity updater is enabled - * @param particle - + * @param particle - The particle to process * @returns true if opacity updater is enabled, false otherwise */ isEnabled(particle: OpacityParticle): boolean { @@ -74,23 +74,19 @@ export class OpacityUpdater implements IParticleUpdater { /** * Loads the opacity options - * @param options - - * @param sources - + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: OpacityParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.opacity ??= new Opacity(); - - for (const source of sources) { - options.opacity.load(source?.opacity); - } + loadOptionProperty(options, "opacity", Opacity, ...sources); } /** * Resets the opacity of a particle - * @param particle - + * @param particle - The particle to process */ reset(particle: OpacityParticle): void { if (!particle.opacity) { @@ -103,8 +99,8 @@ export class OpacityUpdater implements IParticleUpdater { /** * Update function of the opacity updater - * @param particle - - * @param delta - + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: OpacityParticle, delta: IDelta): void { if (!this.isEnabled(particle) || !particle.opacity || !particle.options.opacity) { diff --git a/updaters/opacity/src/Options/Classes/Opacity.ts b/updaters/opacity/src/Options/Classes/Opacity.ts index ff32605c421..4da3c7d8256 100644 --- a/updaters/opacity/src/Options/Classes/Opacity.ts +++ b/updaters/opacity/src/Options/Classes/Opacity.ts @@ -6,13 +6,9 @@ import { OpacityAnimation } from "./OpacityAnimation.js"; * [[include:Options/Particles/Opacity.md]] */ export class Opacity extends RangedAnimationValueWithRandom implements IOpacity, IOptionLoader { - override readonly animation; + override readonly animation = new OpacityAnimation(); - constructor() { - super(); - this.animation = new OpacityAnimation(); - this.value = 1; - } + override value = 1; override load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/updaters/opacity/src/Options/Classes/OpacityAnimation.ts b/updaters/opacity/src/Options/Classes/OpacityAnimation.ts index 5d2a9c05dfa..439a5ee3e35 100644 --- a/updaters/opacity/src/Options/Classes/OpacityAnimation.ts +++ b/updaters/opacity/src/Options/Classes/OpacityAnimation.ts @@ -4,6 +4,7 @@ import { RangedAnimationOptions, type RecursivePartial, isNull, + loadProperty, } from "@tsparticles/engine"; import type { IOpacityAnimation } from "../Interfaces/IOpacityAnimation.js"; @@ -14,13 +15,7 @@ export class OpacityAnimation extends RangedAnimationOptions implements IOpacityAnimation, IOptionLoader { - destroy: DestroyType | keyof typeof DestroyType; - - constructor() { - super(); - this.destroy = DestroyType.none; - this.speed = 2; - } + destroy: DestroyType | keyof typeof DestroyType = DestroyType.none; override load(data?: RecursivePartial): void { super.load(data); @@ -29,8 +24,6 @@ export class OpacityAnimation return; } - if (data.destroy !== undefined) { - this.destroy = data.destroy; - } + loadProperty(this, "destroy", data.destroy); } } diff --git a/updaters/orbit/CHANGELOG.md b/updaters/orbit/CHANGELOG.md index 32cec2643e2..715fc1f4d68 100644 --- a/updaters/orbit/CHANGELOG.md +++ b/updaters/orbit/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-orbit diff --git a/updaters/orbit/package.dist.json b/updaters/orbit/package.dist.json index b838f936c5e..9771bf8581e 100644 --- a/updaters/orbit/package.dist.json +++ b/updaters/orbit/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-orbit", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles orbit updater", "homepage": "https://particles.js.org", "repository": { @@ -107,7 +107,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/orbit/package.json b/updaters/orbit/package.json index 22ac9c36db9..d714ce66183 100644 --- a/updaters/orbit/package.json +++ b/updaters/orbit/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-orbit", - "version": "4.1.3", - "description": "tsParticles particles orbit updater", + "version": "4.2.0", + "description": "tsParticles updater for creating orbital and satellite particle animations — particles revolve around a center point", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-orbit" ], "author": "Matteo Bruni ", "license": "MIT", @@ -117,7 +82,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/orbit/src/Options/Classes/Orbit.ts b/updaters/orbit/src/Options/Classes/Orbit.ts index 77e0d6e46f2..828d8c2a9db 100644 --- a/updaters/orbit/src/Options/Classes/Orbit.ts +++ b/updaters/orbit/src/Options/Classes/Orbit.ts @@ -6,7 +6,8 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IOrbit } from "../Interfaces/IOrbit.js"; import { OrbitRotation } from "./OrbitRotation.js"; @@ -16,32 +17,24 @@ import { OrbitRotation } from "./OrbitRotation.js"; */ export class Orbit implements IOrbit, IOptionLoader, IAnimatable { /** Orbit animation options */ - animation; + readonly animation = new AnimationOptions(); /** Orbit color */ color?: OptionsColor; /** Enables the orbit */ - enable: boolean; + enable = false; /** Orbit opacity */ - opacity: RangeValue; + opacity: RangeValue = 1; /** Orbit radius */ radius?: RangeValue; /** Orbit rotation */ - rotation; + readonly rotation = new OrbitRotation(); /** Orbit width */ - width: RangeValue; - + width: RangeValue = 1; /** Orbit constructor */ - constructor() { - this.animation = new AnimationOptions(); - this.enable = false; - this.opacity = 1; - this.rotation = new OrbitRotation(); - this.width = 1; - } /** * Loads the orbit options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { @@ -52,18 +45,10 @@ export class Orbit implements IOrbit, IOptionLoader, IAnimatable): void { if (isNull(data)) { diff --git a/updaters/orbit/src/OrbitUpdater.ts b/updaters/orbit/src/OrbitUpdater.ts index 97ff611cb11..c24f4c81d39 100644 --- a/updaters/orbit/src/OrbitUpdater.ts +++ b/updaters/orbit/src/OrbitUpdater.ts @@ -7,6 +7,7 @@ import { doublePI, getRangeValue, half, + loadOptionProperty, rangeColorToHsl, } from "@tsparticles/engine"; import type { IOrbitParticlesOptions, OrbitContainer, OrbitParticle, OrbitParticlesOptions } from "./Types.js"; @@ -30,8 +31,8 @@ export class OrbitUpdater implements IParticleUpdater { /** * OrbitUpdater constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: OrbitContainer) { this.#pluginManager = pluginManager; @@ -40,7 +41,7 @@ export class OrbitUpdater implements IParticleUpdater { /** * Draws the orbit after particle rendering - * @param particle + * @param particle - The particle to process */ afterDraw(particle: OrbitParticle): void { const orbitOptions = particle.options.orbit; @@ -52,7 +53,7 @@ export class OrbitUpdater implements IParticleUpdater { /** * Draws the orbit before particle rendering - * @param particle + * @param particle - The particle to process */ beforeDraw(particle: OrbitParticle): void { const orbitOptions = particle.options.orbit; @@ -64,8 +65,8 @@ export class OrbitUpdater implements IParticleUpdater { /** * Draws the orbit ellipse - * @param particle - * @param type + * @param particle - The particle to process + * @param type - The type */ drawOrbit(particle: OrbitParticle, type: OrbitType): void { const container = this.#container; @@ -104,7 +105,7 @@ export class OrbitUpdater implements IParticleUpdater { /** * Initializes the particle orbit - * @param particle + * @param particle - The particle to process */ init(particle: OrbitParticle): void { /* orbit */ @@ -130,7 +131,8 @@ export class OrbitUpdater implements IParticleUpdater { /** * Checks if orbit is enabled for the particle - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: OrbitParticle): boolean { const orbitAnimations = particle.options.orbit?.animation; @@ -140,24 +142,20 @@ export class OrbitUpdater implements IParticleUpdater { /** * Loads the orbit options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: OrbitParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.orbit ??= new Orbit(); - - for (const source of sources) { - options.orbit.load(source?.orbit); - } + loadOptionProperty(options, "orbit", Orbit, ...sources); } /** * Updates the particle orbit rotation - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: OrbitParticle, delta: IDelta): void { if (!this.isEnabled(particle)) { diff --git a/updaters/orbit/src/index.lazy.ts b/updaters/orbit/src/index.lazy.ts index ccfe30bbc7c..5484a16d0e1 100644 --- a/updaters/orbit/src/index.lazy.ts +++ b/updaters/orbit/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOrbitUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/orbit/src/index.ts b/updaters/orbit/src/index.ts index 4f97cc9f663..e1d9d0c2e72 100644 --- a/updaters/orbit/src/index.ts +++ b/updaters/orbit/src/index.ts @@ -4,7 +4,7 @@ import { OrbitUpdater } from "./OrbitUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadOrbitUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/outModes/CHANGELOG.md b/updaters/outModes/CHANGELOG.md index 46f0d16d19a..43dd1c312c0 100644 --- a/updaters/outModes/CHANGELOG.md +++ b/updaters/outModes/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-out-modes diff --git a/updaters/outModes/package.dist.json b/updaters/outModes/package.dist.json index 729bb5408b9..3be5275b2c5 100644 --- a/updaters/outModes/package.dist.json +++ b/updaters/outModes/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-out-modes", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles out modes updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/outModes/package.json b/updaters/outModes/package.json index af1b34cfb2c..d3e414bfdd9 100644 --- a/updaters/outModes/package.json +++ b/updaters/outModes/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-out-modes", - "version": "4.1.3", - "description": "tsParticles particles out modes updater", + "version": "4.2.0", + "description": "tsParticles updater for controlling particle behavior when they exit the canvas — bounce, destroy, or loop", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-out-modes" ], "author": "Matteo Bruni ", "license": "MIT", @@ -100,7 +65,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/outModes/src/BounceOutMode.ts b/updaters/outModes/src/BounceOutMode.ts index c6d1e8e6b0d..4aca01f702c 100644 --- a/updaters/outModes/src/BounceOutMode.ts +++ b/updaters/outModes/src/BounceOutMode.ts @@ -21,7 +21,7 @@ export class BounceOutMode implements IOutModeManager { /** * BounceOutMode constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -34,10 +34,10 @@ export class BounceOutMode implements IOutModeManager { /** * Updates the particle bouncing off the canvas edges - * @param particle - * @param direction - * @param delta - * @param outMode + * @param particle - The particle to process + * @param direction - The direction + * @param delta - The delta time + * @param outMode - The out mode */ update( particle: Particle, diff --git a/updaters/outModes/src/DestroyOutMode.ts b/updaters/outModes/src/DestroyOutMode.ts index 8b6f8ce3b64..9757b73dad1 100644 --- a/updaters/outModes/src/DestroyOutMode.ts +++ b/updaters/outModes/src/DestroyOutMode.ts @@ -6,11 +6,10 @@ import { type Particle, ParticleOutType, getDistances, + minVelocity, } from "@tsparticles/engine"; import type { IOutModeManager } from "./IOutModeManager.js"; -const minVelocity = 0; - export class DestroyOutMode implements IOutModeManager { modes: (OutMode | keyof typeof OutMode)[]; diff --git a/updaters/outModes/src/NoneOutMode.ts b/updaters/outModes/src/NoneOutMode.ts index ed83c7afd56..b32bab5fbd4 100644 --- a/updaters/outModes/src/NoneOutMode.ts +++ b/updaters/outModes/src/NoneOutMode.ts @@ -5,12 +5,11 @@ import { OutModeDirection, type Particle, isPointInside, + minVelocity, originPoint, } from "@tsparticles/engine"; import type { IOutModeManager } from "./IOutModeManager.js"; -const minVelocity = 0; - export class NoneOutMode implements IOutModeManager { modes: (OutMode | keyof typeof OutMode)[]; readonly #container: Container; diff --git a/updaters/outModes/src/OutOfCanvasUpdater.ts b/updaters/outModes/src/OutOfCanvasUpdater.ts index 8211b8d72c7..f1ed2d3394e 100644 --- a/updaters/outModes/src/OutOfCanvasUpdater.ts +++ b/updaters/outModes/src/OutOfCanvasUpdater.ts @@ -33,7 +33,7 @@ export class OutOfCanvasUpdater implements IParticleUpdater { /** * OutOfCanvasUpdater constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -42,7 +42,7 @@ export class OutOfCanvasUpdater implements IParticleUpdater { /** * Initializes particle out mode handlers - * @param particle + * @param particle - The particle to process */ init(particle: Particle): void { this.#addUpdaterIfMissing(particle, OutMode.bounce, container => new BounceOutMode(container)); @@ -53,7 +53,8 @@ export class OutOfCanvasUpdater implements IParticleUpdater { /** * Checks if out of canvas handling is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: Particle): boolean { return !particle.destroyed && !particle.spawning; @@ -61,8 +62,8 @@ export class OutOfCanvasUpdater implements IParticleUpdater { /** * Updates particle out mode handling - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: Particle, delta: IDelta): void { const outModes = particle.options.move.outModes; @@ -75,26 +76,26 @@ export class OutOfCanvasUpdater implements IParticleUpdater { this.#updateOutMode(particle, delta, outModes.top ?? outModes.default, OutModeDirection.top); } - readonly #addUpdaterIfMissing = ( + #addUpdaterIfMissing( particle: Particle, outMode: OutMode, getUpdater: (container: Container) => IOutModeManager, - ): void => { + ): void { const outModes = particle.options.move.outModes; if (!this.updaters.has(outMode) && checkOutMode(outModes, outMode)) { this.updaters.set(outMode, getUpdater(this.#container)); } - }; + } - readonly #updateOutMode = ( + #updateOutMode( particle: Particle, delta: IDelta, outMode: OutMode | keyof typeof OutMode, direction: OutModeDirection, - ): void => { + ): void { for (const updater of this.updaters.values()) { updater.update(particle, direction, delta, outMode); } - }; + } } diff --git a/updaters/outModes/src/OutOutMode.ts b/updaters/outModes/src/OutOutMode.ts index 34195d6e736..7840252e053 100644 --- a/updaters/outModes/src/OutOutMode.ts +++ b/updaters/outModes/src/OutOutMode.ts @@ -9,14 +9,14 @@ import { calculateBounds, getDistances, getRandom, + minDistance, + minVelocity, originPoint, randomInRangeValue, } from "@tsparticles/engine"; import type { IOutModeManager } from "./IOutModeManager.js"; -const minVelocity = 0, - minDistance = 0, - updateVector = Vector.origin; +const updateVector = Vector.origin; export class OutOutMode implements IOutModeManager { modes: (OutMode | keyof typeof OutMode)[]; diff --git a/updaters/outModes/src/Utils.ts b/updaters/outModes/src/Utils.ts index 14e7822a30c..2067b0e6518 100644 --- a/updaters/outModes/src/Utils.ts +++ b/updaters/outModes/src/Utils.ts @@ -1,11 +1,10 @@ -import { OutMode, OutModeDirection, getRangeValue } from "@tsparticles/engine"; +import { OutMode, OutModeDirection, getRangeValue, minVelocity } from "@tsparticles/engine"; import type { IBounceData } from "./IBounceData.js"; -const minVelocity = 0, - boundsMin = 0; +const boundsMin = 0; /** - * @param data - + * @param data - The data to handle */ export function bounceHorizontal(data: IBounceData): void { if ( @@ -54,7 +53,7 @@ export function bounceHorizontal(data: IBounceData): void { } /** - * @param data - + * @param data - The data to handle */ export function bounceVertical(data: IBounceData): void { if ( diff --git a/updaters/paint/CHANGELOG.md b/updaters/paint/CHANGELOG.md index db646c5cdb8..c1c0ab61fcb 100644 --- a/updaters/paint/CHANGELOG.md +++ b/updaters/paint/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-paint diff --git a/updaters/paint/package.dist.json b/updaters/paint/package.dist.json index 3a904dc7194..2d67e3fd7f2 100644 --- a/updaters/paint/package.dist.json +++ b/updaters/paint/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-paint", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles paint updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/paint/package.json b/updaters/paint/package.json index b975f97dbb4..d7064fc1a7c 100644 --- a/updaters/paint/package.json +++ b/updaters/paint/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-paint", - "version": "4.1.3", - "description": "tsParticles particles paint updater", + "version": "4.2.0", + "description": "tsParticles updater for creating paint-like particle animations where particles leave colored trails on the canvas", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-paint" ], "publishConfig": { "access": "public", @@ -105,7 +70,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "type": "module" diff --git a/updaters/paint/src/PaintUpdater.ts b/updaters/paint/src/PaintUpdater.ts index 3491dcc5243..34c661783ea 100644 --- a/updaters/paint/src/PaintUpdater.ts +++ b/updaters/paint/src/PaintUpdater.ts @@ -24,8 +24,8 @@ export class PaintUpdater implements IParticleUpdater { /** * PaintUpdater constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#container = container; @@ -34,7 +34,7 @@ export class PaintUpdater implements IParticleUpdater { /** * Initializes paint-related particle properties - * @param particle + * @param particle - The particle to process */ init(particle: PaintParticle): void { const container = this.#container, @@ -100,7 +100,8 @@ export class PaintUpdater implements IParticleUpdater { /** * Checks if paint animation is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: PaintParticle): boolean { const { fillAnimation, fillColor, strokeAnimation, strokeColor } = particle, @@ -120,8 +121,8 @@ export class PaintUpdater implements IParticleUpdater { /** * Updates the particle paint colors - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: Particle, delta: IDelta): void { if (!this.isEnabled(particle)) { diff --git a/updaters/paint/src/index.lazy.ts b/updaters/paint/src/index.lazy.ts index 2acebdf984a..ea8269dda87 100644 --- a/updaters/paint/src/index.lazy.ts +++ b/updaters/paint/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPaintUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/paint/src/index.ts b/updaters/paint/src/index.ts index 606fe870931..6d3e8fc8dfd 100644 --- a/updaters/paint/src/index.ts +++ b/updaters/paint/src/index.ts @@ -4,7 +4,7 @@ import { PaintUpdater } from "./PaintUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadPaintUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/roll/CHANGELOG.md b/updaters/roll/CHANGELOG.md index b81be79f9fe..d12e7acb687 100644 --- a/updaters/roll/CHANGELOG.md +++ b/updaters/roll/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-roll diff --git a/updaters/roll/package.dist.json b/updaters/roll/package.dist.json index b468c6dbcd9..1f39f068822 100644 --- a/updaters/roll/package.dist.json +++ b/updaters/roll/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-roll", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles roll updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/roll/package.json b/updaters/roll/package.json index bb6d369f06e..9438986bcbd 100644 --- a/updaters/roll/package.json +++ b/updaters/roll/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-roll", - "version": "4.1.3", - "description": "tsParticles particles roll updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle rolling motion over time, rotating along the direction of travel", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-roll" ], "author": "Matteo Bruni ", "license": "MIT", @@ -103,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/roll/src/Options/Classes/Roll.ts b/updaters/roll/src/Options/Classes/Roll.ts index 8ccbfcd8329..2941246b25f 100644 --- a/updaters/roll/src/Options/Classes/Roll.ts +++ b/updaters/roll/src/Options/Classes/Roll.ts @@ -4,7 +4,8 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IRoll } from "../Interfaces/IRoll.js"; import { RollLight } from "./RollLight.js"; @@ -18,28 +19,20 @@ export class Roll implements IRoll, IOptionLoader { /** Roll back color */ backColor?: OptionsColor; /** Roll darken options */ - darken; + readonly darken = new RollLight(); /** Enables the roll */ - enable; + enable = false; /** Roll enlighten options */ - enlighten; + readonly enlighten = new RollLight(); /** Roll mode */ - mode: RollMode | keyof typeof RollMode; + mode: RollMode | keyof typeof RollMode = RollMode.vertical; /** Roll speed */ - speed: RangeValue; - + speed: RangeValue = 25; /** Roll constructor */ - constructor() { - this.darken = new RollLight(); - this.enable = false; - this.enlighten = new RollLight(); - this.mode = RollMode.vertical; - this.speed = 25; - } /** * Loads the roll options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { @@ -52,18 +45,12 @@ export class Roll implements IRoll, IOptionLoader { this.darken.load(data.darken); - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); this.enlighten.load(data.enlighten); - if (data.mode !== undefined) { - this.mode = data.mode; - } + loadProperty(this, "mode", data.mode); - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } + loadRangeProperty(this, "speed", data.speed); } } diff --git a/updaters/roll/src/Options/Classes/RollLight.ts b/updaters/roll/src/Options/Classes/RollLight.ts index 0d78889ee7e..446e4e63312 100644 --- a/updaters/roll/src/Options/Classes/RollLight.ts +++ b/updaters/roll/src/Options/Classes/RollLight.ts @@ -1,34 +1,31 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadProperty, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IRollLight } from "../Interfaces/IRollLight.js"; /** Roll light options class */ export class RollLight implements IRollLight, IOptionLoader { /** Enables the roll light effect */ - enable; + enable = false; /** Roll light value */ - value: RangeValue; - + value: RangeValue = 0; /** RollLight constructor */ - constructor() { - this.enable = false; - this.value = 0; - } /** * Loads the roll light from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.value !== undefined) { - this.value = setRangeValue(data.value); - } + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "value", data.value); } } diff --git a/updaters/roll/src/RollUpdater.ts b/updaters/roll/src/RollUpdater.ts index 216d2a935ce..169e0ee36e8 100644 --- a/updaters/roll/src/RollUpdater.ts +++ b/updaters/roll/src/RollUpdater.ts @@ -5,6 +5,7 @@ import { type Particle, type PluginManager, type RecursivePartial, + loadOptionProperty, } from "@tsparticles/engine"; import type { IRollParticlesOptions, RollParticle, RollParticlesOptions } from "./Types.js"; import { initParticle, updateRoll } from "./Utils.js"; @@ -17,7 +18,7 @@ export class RollUpdater implements IParticleUpdater { /** * RollUpdater constructor - * @param pluginManager + * @param pluginManager - The plugin manager */ constructor(pluginManager: PluginManager) { this.#pluginManager = pluginManager; @@ -25,7 +26,8 @@ export class RollUpdater implements IParticleUpdater { /** * Gets the transform values for the roll effect - * @param particle + * @param particle - The particle to process + * @returns The result */ getTransformValues(particle: Particle): Partial { const roll = particle.roll?.enable && particle.roll, @@ -40,7 +42,7 @@ export class RollUpdater implements IParticleUpdater { /** * Initializes the particle roll - * @param particle + * @param particle - The particle to process */ init(particle: RollParticle): void { initParticle(this.#pluginManager, particle); @@ -48,7 +50,8 @@ export class RollUpdater implements IParticleUpdater { /** * Checks if roll is enabled for the particle - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: RollParticle): boolean { const roll = particle.options.roll; @@ -58,24 +61,20 @@ export class RollUpdater implements IParticleUpdater { /** * Loads the roll options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: RollParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.roll ??= new Roll(); - - for (const source of sources) { - options.roll.load(source?.roll); - } + loadOptionProperty(options, "roll", Roll, ...sources); } /** * Updates the particle roll - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: Particle, delta: IDelta): void { if (!this.isEnabled(particle)) { diff --git a/updaters/roll/src/Utils.ts b/updaters/roll/src/Utils.ts index 9511e2b0776..a9eaf90ba91 100644 --- a/updaters/roll/src/Utils.ts +++ b/updaters/roll/src/Utils.ts @@ -14,8 +14,8 @@ import type { RollParticle } from "./Types.js"; const maxAngle = 360; /** - * @param pluginManager - - * @param particle - + * @param pluginManager - The plugin manager + * @param particle - The particle to process */ export function initParticle(pluginManager: PluginManager, particle: RollParticle): void { const rollOpt = particle.options.roll; @@ -63,8 +63,8 @@ export function initParticle(pluginManager: PluginManager, particle: RollParticl } /** - * @param particle - - * @param delta - + * @param particle - The particle to process + * @param delta - The delta time */ export function updateRoll(particle: RollParticle, delta: IDelta): void { const roll = particle.options.roll, diff --git a/updaters/rotate/CHANGELOG.md b/updaters/rotate/CHANGELOG.md index a136d275821..9504b8fc1c4 100644 --- a/updaters/rotate/CHANGELOG.md +++ b/updaters/rotate/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-rotate diff --git a/updaters/rotate/package.dist.json b/updaters/rotate/package.dist.json index 7c0c3a2f13c..5e1c75db532 100644 --- a/updaters/rotate/package.dist.json +++ b/updaters/rotate/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-rotate", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles rotate updater", "homepage": "https://particles.js.org", "repository": { @@ -92,8 +92,11 @@ }, "./package.json": "./package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "4.2.0" + }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/rotate/package.json b/updaters/rotate/package.json index fd1fc7210cc..ba8705dbffd 100644 --- a/updaters/rotate/package.json +++ b/updaters/rotate/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-rotate", - "version": "4.1.3", - "description": "tsParticles particles rotate updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle rotation over time with configurable speed, direction, and acceleration", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-rotation" ], "author": "Matteo Bruni ", "license": "MIT", @@ -99,11 +64,15 @@ }, "./package.json": "./dist/package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "workspace:*" + }, "peerDependencies": { "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/rotate/src/Options/Classes/Rotate.ts b/updaters/rotate/src/Options/Classes/Rotate.ts index be82414c84b..42f0fd001db 100644 --- a/updaters/rotate/src/Options/Classes/Rotate.ts +++ b/updaters/rotate/src/Options/Classes/Rotate.ts @@ -5,6 +5,7 @@ import { type RotateDirectionAlt, ValueWithRandom, isNull, + loadProperty, } from "@tsparticles/engine"; import type { IRotate } from "../Interfaces/IRotate.js"; import { RotateAnimation } from "./RotateAnimation.js"; @@ -14,24 +15,14 @@ import { RotateAnimation } from "./RotateAnimation.js"; */ export class Rotate extends ValueWithRandom implements IRotate, IOptionLoader { /** Rotate animation options */ - animation; + readonly animation = new RotateAnimation(); /** Rotate direction */ - direction: RotateDirection | keyof typeof RotateDirection | RotateDirectionAlt; + direction: RotateDirection | keyof typeof RotateDirection | RotateDirectionAlt = RotateDirection.clockwise; /** Enables path rotation */ - path; - - /** Rotate constructor */ - constructor() { - super(); - this.animation = new RotateAnimation(); - this.direction = RotateDirection.clockwise; - this.path = false; - this.value = 0; - } - + path = false; /** * Loads the rotate options from data - * @param data + * @param data - The data to handle */ override load(data?: RecursivePartial): void { if (isNull(data)) { @@ -40,14 +31,10 @@ export class Rotate extends ValueWithRandom implements IRotate, IOptionLoader { /** Animation decay */ - decay: RangeValue; + decay: RangeValue = 0; /** Enables the animation */ - enable; + enable = false; /** Animation speed */ - speed: RangeValue; + speed: RangeValue = 0; /** Enables animation sync */ - sync; - + sync = false; /** RotateAnimation constructor */ - constructor() { - this.enable = false; - this.speed = 0; - this.decay = 0; - this.sync = false; - } /** * Loads the rotate animation from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } - - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.sync !== undefined) { - this.sync = data.sync; - } + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "speed", data.speed); + loadRangeProperty(this, "decay", data.decay); + loadProperty(this, "sync", data.sync); } } diff --git a/updaters/rotate/src/RotateUpdater.ts b/updaters/rotate/src/RotateUpdater.ts index 7940046be30..24ab1ff2c2a 100644 --- a/updaters/rotate/src/RotateUpdater.ts +++ b/updaters/rotate/src/RotateUpdater.ts @@ -16,10 +16,11 @@ import { getRandom, getRangeValue, identity, - updateAnimation, + loadOptionProperty, } from "@tsparticles/engine"; import type { IRotate } from "./Options/Interfaces/IRotate.js"; import { Rotate } from "./Options/Classes/Rotate.js"; +import { updateAnimation } from "@tsparticles/animation-utils"; /** * Rotate particle extension type @@ -55,7 +56,7 @@ export class RotateUpdater implements IParticleUpdater { /** * RotateUpdater constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -63,7 +64,7 @@ export class RotateUpdater implements IParticleUpdater { /** * Initializes the particle rotation - * @param particle + * @param particle - The particle to process */ init(particle: RotateParticle): void { const rotateOptions = particle.options.rotate; @@ -120,7 +121,8 @@ export class RotateUpdater implements IParticleUpdater { /** * Checks if rotation is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: RotateParticle): boolean { const rotate = particle.options.rotate; @@ -134,24 +136,20 @@ export class RotateUpdater implements IParticleUpdater { /** * Loads the rotate options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: RotateParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.rotate ??= new Rotate(); - - for (const source of sources) { - options.rotate.load(source?.rotate); - } + loadOptionProperty(options, "rotate", Rotate, ...sources); } /** * Updates the particle rotation - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: RotateParticle, delta: IDelta): void { if (!this.isEnabled(particle)) { diff --git a/updaters/rotate/src/index.lazy.ts b/updaters/rotate/src/index.lazy.ts index 6c604ee33bb..fbd4657160f 100644 --- a/updaters/rotate/src/index.lazy.ts +++ b/updaters/rotate/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRotateUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/rotate/src/index.ts b/updaters/rotate/src/index.ts index 33e32b63e92..6476d8d851e 100644 --- a/updaters/rotate/src/index.ts +++ b/updaters/rotate/src/index.ts @@ -4,7 +4,7 @@ import { RotateUpdater } from "./RotateUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadRotateUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/size/CHANGELOG.md b/updaters/size/CHANGELOG.md index a9365d88778..cfdb33abe91 100644 --- a/updaters/size/CHANGELOG.md +++ b/updaters/size/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-size diff --git a/updaters/size/package.dist.json b/updaters/size/package.dist.json index a98f7cba0fd..e63cdba93e2 100644 --- a/updaters/size/package.dist.json +++ b/updaters/size/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-size", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles size updater", "homepage": "https://particles.js.org", "repository": { @@ -92,8 +92,11 @@ }, "./package.json": "./package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "4.2.0" + }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/size/package.json b/updaters/size/package.json index 50cac2c4d74..c75c95180b7 100644 --- a/updaters/size/package.json +++ b/updaters/size/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-size", - "version": "4.1.3", - "description": "tsParticles particles size updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle size over time — grow, shrink, or pulse particle sizes with customizable animation curves", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-size" ], "author": "Matteo Bruni ", "license": "MIT", @@ -96,11 +61,15 @@ }, "./package.json": "./dist/package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "workspace:*" + }, "peerDependencies": { "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/size/src/Options/Classes/Size.ts b/updaters/size/src/Options/Classes/Size.ts index 52c2f0d5f15..33e34054446 100644 --- a/updaters/size/src/Options/Classes/Size.ts +++ b/updaters/size/src/Options/Classes/Size.ts @@ -6,13 +6,9 @@ import { SizeAnimation } from "./SizeAnimation.js"; * [[include:Options/Particles/Size.md]] */ export class Size extends RangedAnimationValueWithRandom implements ISize, IOptionLoader { - override readonly animation; + override readonly animation = new SizeAnimation(); - constructor() { - super(); - this.animation = new SizeAnimation(); - this.value = 3; - } + override value = 3; override load(data?: RecursivePartial): void { super.load(data); diff --git a/updaters/size/src/Options/Classes/SizeAnimation.ts b/updaters/size/src/Options/Classes/SizeAnimation.ts index 1683f22c8f1..25660a65843 100644 --- a/updaters/size/src/Options/Classes/SizeAnimation.ts +++ b/updaters/size/src/Options/Classes/SizeAnimation.ts @@ -4,6 +4,7 @@ import { RangedAnimationOptions, type RecursivePartial, isNull, + loadProperty, } from "@tsparticles/engine"; import type { ISizeAnimation } from "../Interfaces/ISizeAnimation.js"; @@ -11,14 +12,7 @@ import type { ISizeAnimation } from "../Interfaces/ISizeAnimation.js"; * Size animation options. */ export class SizeAnimation extends RangedAnimationOptions implements ISizeAnimation, IOptionLoader { - destroy: DestroyType | keyof typeof DestroyType; - - constructor() { - super(); - - this.destroy = DestroyType.none; - this.speed = 5; - } + destroy: DestroyType | keyof typeof DestroyType = DestroyType.none; override load(data?: RecursivePartial): void { super.load(data); @@ -27,8 +21,6 @@ export class SizeAnimation extends RangedAnimationOptions implements ISizeAnimat return; } - if (data.destroy !== undefined) { - this.destroy = data.destroy; - } + loadProperty(this, "destroy", data.destroy); } } diff --git a/updaters/size/src/SizeUpdater.ts b/updaters/size/src/SizeUpdater.ts index b1f4ab8fe18..903acad3b32 100644 --- a/updaters/size/src/SizeUpdater.ts +++ b/updaters/size/src/SizeUpdater.ts @@ -5,11 +5,11 @@ import { type RecursivePartial, getRandom, getRangeValue, - initParticleNumericAnimationValue, + loadOptionProperty, percentDenominator, - updateAnimation, } from "@tsparticles/engine"; import type { ISizeParticlesOptions, SizeParticle, SizeParticlesOptions } from "./Types.js"; +import { initParticleNumericAnimationValue, updateAnimation } from "@tsparticles/animation-utils"; import { Size } from "./Options/Classes/Size.js"; const minLoops = 0; @@ -21,7 +21,7 @@ export class SizeUpdater implements IParticleUpdater { /** * SizeUpdater constructor - * @param container - + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -29,7 +29,7 @@ export class SizeUpdater implements IParticleUpdater { /** * Initializes the particle size animation velocity - * @param particle - + * @param particle - The particle to process */ init(particle: SizeParticle): void { const container = this.#container, @@ -56,7 +56,7 @@ export class SizeUpdater implements IParticleUpdater { /** * Checks if size animation is enabled - * @param particle - + * @param particle - The particle to process * @returns true if size animation is enabled, false otherwise */ isEnabled(particle: SizeParticle): boolean { @@ -72,23 +72,19 @@ export class SizeUpdater implements IParticleUpdater { /** * Loads the size options - * @param options - - * @param sources - + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: SizeParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.size ??= new Size(); - - for (const source of sources) { - options.size.load(source?.size); - } + loadOptionProperty(options, "size", Size, ...sources); } /** * Pre-initializes the particle size - * @param particle - + * @param particle - The particle to process */ preInit(particle: SizeParticle): void { const pxRatio = this.#container.retina.pixelRatio, @@ -107,7 +103,7 @@ export class SizeUpdater implements IParticleUpdater { /** * Resets the particle size state - * @param particle - + * @param particle - The particle to process */ reset(particle: SizeParticle): void { particle.size.time = 0; @@ -116,8 +112,8 @@ export class SizeUpdater implements IParticleUpdater { /** * Updates the particle size - * @param particle - - * @param delta - + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: SizeParticle, delta: IDelta): void { if (!this.isEnabled(particle) || !particle.options.size) { diff --git a/updaters/size/src/index.lazy.ts b/updaters/size/src/index.lazy.ts index 4cc3792b480..1327aa656a5 100644 --- a/updaters/size/src/index.lazy.ts +++ b/updaters/size/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSizeUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/size/src/index.ts b/updaters/size/src/index.ts index ba82dcc0883..52aa734b068 100644 --- a/updaters/size/src/index.ts +++ b/updaters/size/src/index.ts @@ -4,7 +4,7 @@ import { SizeUpdater } from "./SizeUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadSizeUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/tilt/CHANGELOG.md b/updaters/tilt/CHANGELOG.md index 244dec9f0c1..09a4e02c2e0 100644 --- a/updaters/tilt/CHANGELOG.md +++ b/updaters/tilt/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-tilt diff --git a/updaters/tilt/package.dist.json b/updaters/tilt/package.dist.json index 48b8d933b0c..e7d26cc245a 100644 --- a/updaters/tilt/package.dist.json +++ b/updaters/tilt/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-tilt", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles tilt updater", "homepage": "https://particles.js.org", "repository": { @@ -92,8 +92,11 @@ }, "./package.json": "./package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "4.2.0" + }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/tilt/package.json b/updaters/tilt/package.json index 5aebd93bfd7..8e5d95d8052 100644 --- a/updaters/tilt/package.json +++ b/updaters/tilt/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-tilt", - "version": "4.1.3", - "description": "tsParticles particles tilt updater", + "version": "4.2.0", + "description": "tsParticles updater for animating particle tilt angle over time, enabling 3D-like perspective effects", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-tilt" ], "author": "Matteo Bruni ", "license": "MIT", @@ -99,11 +64,15 @@ }, "./package.json": "./dist/package.json" }, + "dependencies": { + "@tsparticles/animation-utils": "workspace:*" + }, "peerDependencies": { "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/animation-utils": "workspace:*", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/tilt/src/Options/Classes/Tilt.ts b/updaters/tilt/src/Options/Classes/Tilt.ts index e51e7871878..f1fca303436 100644 --- a/updaters/tilt/src/Options/Classes/Tilt.ts +++ b/updaters/tilt/src/Options/Classes/Tilt.ts @@ -1,4 +1,4 @@ -import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull } from "@tsparticles/engine"; +import { type IOptionLoader, type RecursivePartial, ValueWithRandom, isNull, loadProperty } from "@tsparticles/engine"; import { TiltDirection, type TiltDirectionAlt } from "../../TiltDirection.js"; import type { ITilt } from "../Interfaces/ITilt.js"; import { TiltAnimation } from "./TiltAnimation.js"; @@ -8,24 +8,14 @@ import { TiltAnimation } from "./TiltAnimation.js"; */ export class Tilt extends ValueWithRandom implements ITilt, IOptionLoader { /** Tilt animation options */ - animation; + readonly animation = new TiltAnimation(); /** Tilt direction */ - direction: TiltDirection | keyof typeof TiltDirection | TiltDirectionAlt; + direction: TiltDirection | keyof typeof TiltDirection | TiltDirectionAlt = TiltDirection.clockwise; /** Enables the tilt */ - enable; - - /** Tilt constructor */ - constructor() { - super(); - this.animation = new TiltAnimation(); - this.direction = TiltDirection.clockwise; - this.enable = false; - this.value = 0; - } - + enable = false; /** * Loads the tilt options from data - * @param data + * @param data - The data to handle */ override load(data?: RecursivePartial): void { super.load(data); @@ -36,12 +26,7 @@ export class Tilt extends ValueWithRandom implements ITilt, IOptionLoader this.animation.load(data.animation); - if (data.direction !== undefined) { - this.direction = data.direction; - } - - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "direction", data.direction); + loadProperty(this, "enable", data.enable); } } diff --git a/updaters/tilt/src/Options/Classes/TiltAnimation.ts b/updaters/tilt/src/Options/Classes/TiltAnimation.ts index 636f116464f..42001640451 100644 --- a/updaters/tilt/src/Options/Classes/TiltAnimation.ts +++ b/updaters/tilt/src/Options/Classes/TiltAnimation.ts @@ -1,48 +1,37 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadProperty, + loadRangeProperty, +} from "@tsparticles/engine"; import type { ITiltAnimation } from "../Interfaces/ITiltAnimation.js"; /** Tilt animation options class */ export class TiltAnimation implements ITiltAnimation, IOptionLoader { /** Animation decay */ - decay: RangeValue; + decay: RangeValue = 0; /** Enables the animation */ - enable; + enable = false; /** Animation speed */ - speed: RangeValue; + speed: RangeValue = 0; /** Enables animation sync */ - sync; - + sync = false; /** TiltAnimation constructor */ - constructor() { - this.enable = false; - this.speed = 0; - this.decay = 0; - this.sync = false; - } /** * Loads the tilt animation from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.speed !== undefined) { - this.speed = setRangeValue(data.speed); - } - - if (data.decay !== undefined) { - this.decay = setRangeValue(data.decay); - } - - if (data.sync !== undefined) { - this.sync = data.sync; - } + loadProperty(this, "enable", data.enable); + loadRangeProperty(this, "speed", data.speed); + loadRangeProperty(this, "decay", data.decay); + loadProperty(this, "sync", data.sync); } } diff --git a/updaters/tilt/src/TiltUpdater.ts b/updaters/tilt/src/TiltUpdater.ts index 38ce550fe51..6c2fbb3668b 100644 --- a/updaters/tilt/src/TiltUpdater.ts +++ b/updaters/tilt/src/TiltUpdater.ts @@ -13,11 +13,12 @@ import { getRangeValue, half, identity, - updateAnimation, + loadOptionProperty, } from "@tsparticles/engine"; import type { ITiltParticlesOptions, TiltParticle, TiltParticlesOptions } from "./Types.js"; import { Tilt } from "./Options/Classes/Tilt.js"; import { TiltDirection } from "./TiltDirection.js"; +import { updateAnimation } from "@tsparticles/animation-utils"; const maxAngle = 360; @@ -28,7 +29,7 @@ export class TiltUpdater implements IParticleUpdater { /** * TiltUpdater constructor - * @param container + * @param container - The container to handle */ constructor(container: Container) { this.#container = container; @@ -36,7 +37,8 @@ export class TiltUpdater implements IParticleUpdater { /** * Gets the transform values for the tilt effect - * @param particle + * @param particle - The particle to process + * @returns The result */ getTransformValues(particle: TiltParticle): Partial { const tilt = particle.tilt?.enable && particle.tilt; @@ -49,7 +51,7 @@ export class TiltUpdater implements IParticleUpdater { /** * Initializes the particle tilt - * @param particle + * @param particle - The particle to process */ init(particle: TiltParticle): void { const tiltOptions = particle.options.tilt; @@ -103,7 +105,8 @@ export class TiltUpdater implements IParticleUpdater { /** * Checks if tilt animation is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: TiltParticle): boolean { const tiltAnimation = particle.options.tilt?.animation; @@ -113,24 +116,20 @@ export class TiltUpdater implements IParticleUpdater { /** * Loads the tilt options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: TiltParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.tilt ??= new Tilt(); - - for (const source of sources) { - options.tilt.load(source?.tilt); - } + loadOptionProperty(options, "tilt", Tilt, ...sources); } /** * Updates the particle tilt - * @param particle - * @param delta + * @param particle - The particle to process + * @param delta - The delta time */ update(particle: TiltParticle, delta: IDelta): void { if (!this.isEnabled(particle) || !particle.tilt) { diff --git a/updaters/twinkle/CHANGELOG.md b/updaters/twinkle/CHANGELOG.md index 91d4a8c6462..d0fa2cd370f 100644 --- a/updaters/twinkle/CHANGELOG.md +++ b/updaters/twinkle/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-twinkle diff --git a/updaters/twinkle/package.dist.json b/updaters/twinkle/package.dist.json index eb5cbec3565..df69c2fb859 100644 --- a/updaters/twinkle/package.dist.json +++ b/updaters/twinkle/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-twinkle", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles twinkle updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/twinkle/package.json b/updaters/twinkle/package.json index c55960a4f47..6c8aaa57fe7 100644 --- a/updaters/twinkle/package.json +++ b/updaters/twinkle/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-twinkle", - "version": "4.1.3", - "description": "tsParticles particles twinkle updater", + "version": "4.2.0", + "description": "tsParticles updater for creating twinkling, flickering, or blinking particle opacity effects, similar to stars", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-twinkle" ], "author": "Matteo Bruni ", "license": "MIT", @@ -103,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/twinkle/src/Options/Classes/Twinkle.ts b/updaters/twinkle/src/Options/Classes/Twinkle.ts index e000c16415f..5dc323d3998 100644 --- a/updaters/twinkle/src/Options/Classes/Twinkle.ts +++ b/updaters/twinkle/src/Options/Classes/Twinkle.ts @@ -8,19 +8,14 @@ import { TwinkleParticlesValues } from "./TwinkleParticlesValues.js"; */ export class Twinkle implements ITwinkle, IOptionLoader { /** Twinkle links values */ - links; + readonly links = new TwinkleLinksValues(); /** Twinkle particles values */ - particles; - + readonly particles = new TwinkleParticlesValues(); /** Twinkle constructor */ - constructor() { - this.links = new TwinkleLinksValues(); - this.particles = new TwinkleParticlesValues(); - } /** * Loads the twinkle options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { diff --git a/updaters/twinkle/src/Options/Classes/TwinkleLinksValues.ts b/updaters/twinkle/src/Options/Classes/TwinkleLinksValues.ts index a21cc946f6d..445fe17b13c 100644 --- a/updaters/twinkle/src/Options/Classes/TwinkleLinksValues.ts +++ b/updaters/twinkle/src/Options/Classes/TwinkleLinksValues.ts @@ -4,7 +4,8 @@ import { type RangeValue, type RecursivePartial, isNull, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { ITwinkleLinksValues } from "../Interfaces/ITwinkleLinksValues.js"; @@ -13,22 +14,16 @@ export class TwinkleLinksValues implements ITwinkleLinksValues, IOptionLoader): void { if (isNull(data)) { @@ -39,16 +34,8 @@ export class TwinkleLinksValues implements ITwinkleLinksValues, IOptionLoader { /** Enables the twinkle particles */ - enable; + enable = false; /** Twinkle particles fill color */ fillColor?: OptionsColor; /** Twinkle particles frequency */ - frequency; + frequency = 0.05; /** Twinkle particles opacity */ - opacity: RangeValue; + opacity: RangeValue = 1; /** Twinkle particles stroke color */ strokeColor?: OptionsColor; /** TwinkleParticlesValues constructor */ - constructor() { - this.enable = false; - this.frequency = 0.05; - this.opacity = 1; - } /** * Loads the twinkle particles values from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { @@ -45,16 +41,8 @@ export class TwinkleParticlesValues implements ITwinkleParticlesValues, IOptionL this.strokeColor = OptionsColor.create(this.strokeColor, data.strokeColor); } - if (data.enable !== undefined) { - this.enable = data.enable; - } - - if (data.frequency !== undefined) { - this.frequency = data.frequency; - } - - if (data.opacity !== undefined) { - this.opacity = setRangeValue(data.opacity); - } + loadProperty(this, "enable", data.enable); + loadProperty(this, "frequency", data.frequency); + loadRangeProperty(this, "opacity", data.opacity); } } diff --git a/updaters/twinkle/src/TwinkleUpdater.ts b/updaters/twinkle/src/TwinkleUpdater.ts index 50b6702fb9f..b5bd174888a 100644 --- a/updaters/twinkle/src/TwinkleUpdater.ts +++ b/updaters/twinkle/src/TwinkleUpdater.ts @@ -8,6 +8,7 @@ import { getRandom, getRangeValue, getStyleFromHsl, + loadOptionProperty, rangeColorToHsl, } from "@tsparticles/engine"; import type { ITwinkleParticlesOptions, TwinkeParticle, TwinkleParticlesOptions } from "./Types.js"; @@ -22,8 +23,8 @@ export class TwinkleUpdater implements IParticleUpdater { /** * TwinkleUpdater constructor - * @param pluginManager - * @param container + * @param pluginManager - The plugin manager + * @param container - The container to handle */ constructor(pluginManager: PluginManager, container: Container) { this.#pluginManager = pluginManager; @@ -32,10 +33,11 @@ export class TwinkleUpdater implements IParticleUpdater { /** * Gets the twinkle color styles - * @param particle - * @param _context - * @param _radius - * @param opacity + * @param particle - The particle to process + * @param _context - The rendering context + * @param _radius - The radius + * @param opacity - The opacity value + * @returns The color styles */ getColorStyles( particle: Particle, @@ -91,7 +93,8 @@ export class TwinkleUpdater implements IParticleUpdater { /** * Checks if twinkle is enabled - * @param particle + * @param particle - The particle to process + * @returns The boolean value */ isEnabled(particle: TwinkeParticle): boolean { const pOptions = particle.options, @@ -106,18 +109,14 @@ export class TwinkleUpdater implements IParticleUpdater { /** * Loads the twinkle options - * @param options - * @param sources + * @param options - The options to handle + * @param sources - The sources */ loadOptions( options: TwinkleParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.twinkle ??= new Twinkle(); - - for (const source of sources) { - options.twinkle.load(source?.twinkle); - } + loadOptionProperty(options, "twinkle", Twinkle, ...sources); } /** Updates the twinkle (no-op) */ diff --git a/updaters/twinkle/src/index.lazy.ts b/updaters/twinkle/src/index.lazy.ts index e9dd33c5da6..7463f59aea1 100644 --- a/updaters/twinkle/src/index.lazy.ts +++ b/updaters/twinkle/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTwinkleUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/twinkle/src/index.ts b/updaters/twinkle/src/index.ts index fef79382a5c..98849111827 100644 --- a/updaters/twinkle/src/index.ts +++ b/updaters/twinkle/src/index.ts @@ -4,7 +4,7 @@ import { TwinkleUpdater } from "./TwinkleUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadTwinkleUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/wobble/CHANGELOG.md b/updaters/wobble/CHANGELOG.md index 9dfd9790b51..c721402ca2d 100644 --- a/updaters/wobble/CHANGELOG.md +++ b/updaters/wobble/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/updater-wobble diff --git a/updaters/wobble/package.dist.json b/updaters/wobble/package.dist.json index bb2abc4ff36..94b7011b3d2 100644 --- a/updaters/wobble/package.dist.json +++ b/updaters/wobble/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/updater-wobble", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles particles wobble updater", "homepage": "https://particles.js.org", "repository": { @@ -93,7 +93,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/updaters/wobble/package.json b/updaters/wobble/package.json index 99b86919043..cbb28fc9ed0 100644 --- a/updaters/wobble/package.json +++ b/updaters/wobble/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/updater-wobble", - "version": "4.1.3", - "description": "tsParticles particles wobble updater", + "version": "4.2.0", + "description": "tsParticles updater for adding wobbly, swaying motion animation to particles with configurable frequency and amplitude", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -17,56 +17,21 @@ "front-end", "frontend", "tsparticles", - "particles.js", - "particlesjs", "particles", "particle", "canvas", - "jsparticles", - "xparticles", - "particles-js", - "particles-bg", - "particles-bg-vue", - "particles-ts", - "particles.ts", - "react-particles-js", - "react-particles.js", - "react-particles", - "react", - "reactjs", - "vue-particles", - "ngx-particles", - "angular-particles", - "particleground", - "vue", - "vuejs", - "preact", - "preactjs", - "jquery", - "angularjs", - "angular", - "typescript", - "javascript", "animation", "web", "html5", - "web-design", - "webdesign", - "css", - "html", "css3", "animated", "background", "confetti", - "canvas", "fireworks", - "fireworks-js", - "confetti-js", - "confettijs", - "fireworksjs", - "canvas-confetti", - "tsparticles-plugin", - "@tsparticles/updater" + "typescript", + "javascript", + "tsparticles-updater", + "particle-wobble" ], "author": "Matteo Bruni ", "license": "MIT", @@ -103,7 +68,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/updaters/wobble/src/Options/Classes/Wobble.ts b/updaters/wobble/src/Options/Classes/Wobble.ts index 2da7add5a07..f8b8c397eab 100644 --- a/updaters/wobble/src/Options/Classes/Wobble.ts +++ b/updaters/wobble/src/Options/Classes/Wobble.ts @@ -5,7 +5,8 @@ import { type RecursivePartial, isNull, isNumber, - setRangeValue, + loadProperty, + loadRangeProperty, } from "@tsparticles/engine"; import type { IWobble } from "../Interfaces/IWobble.js"; import type { IWobbleSpeed } from "../Interfaces/IWobbleSpeed.js"; @@ -17,35 +18,25 @@ import { WobbleSpeed } from "./WobbleSpeed.js"; */ export class Wobble implements IWobble, IOptionLoader { /** Wobble distance */ - distance: RangeValue; + distance: RangeValue = 5; /** Enables the wobble */ - enable: boolean; + enable = false; /** Wobble speed */ - speed: WobbleSpeed; - + readonly speed: WobbleSpeed = new WobbleSpeed(); /** Wobble constructor */ - constructor() { - this.distance = 5; - this.enable = false; - this.speed = new WobbleSpeed(); - } /** * Loads the wobble options from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.distance !== undefined) { - this.distance = setRangeValue(data.distance); - } + loadRangeProperty(this, "distance", data.distance); - if (data.enable !== undefined) { - this.enable = data.enable; - } + loadProperty(this, "enable", data.enable); if (data.speed !== undefined) { if (isNumber(data.speed)) { diff --git a/updaters/wobble/src/Options/Classes/WobbleSpeed.ts b/updaters/wobble/src/Options/Classes/WobbleSpeed.ts index f6d076ce1b9..39224b53c3f 100644 --- a/updaters/wobble/src/Options/Classes/WobbleSpeed.ts +++ b/updaters/wobble/src/Options/Classes/WobbleSpeed.ts @@ -1,34 +1,30 @@ -import { type IOptionLoader, type RangeValue, type RecursivePartial, isNull, setRangeValue } from "@tsparticles/engine"; +import { + type IOptionLoader, + type RangeValue, + type RecursivePartial, + isNull, + loadRangeProperty, +} from "@tsparticles/engine"; import type { IWobbleSpeed } from "../Interfaces/IWobbleSpeed.js"; /** Wobble speed options class */ export class WobbleSpeed implements IWobbleSpeed, IOptionLoader { /** Wobble speed angle */ - angle: RangeValue; + angle: RangeValue = 50; /** Wobble speed movement */ - move: RangeValue; - + move: RangeValue = 10; /** WobbleSpeed constructor */ - constructor() { - this.angle = 50; - this.move = 10; - } /** * Loads the wobble speed from data - * @param data + * @param data - The data to handle */ load(data?: RecursivePartial): void { if (isNull(data)) { return; } - if (data.angle !== undefined) { - this.angle = setRangeValue(data.angle); - } - - if (data.move !== undefined) { - this.move = setRangeValue(data.move); - } + loadRangeProperty(this, "angle", data.angle); + loadRangeProperty(this, "move", data.move); } } diff --git a/updaters/wobble/src/WobbleUpdater.ts b/updaters/wobble/src/WobbleUpdater.ts index f2c48ae9a4f..36edcfe922f 100644 --- a/updaters/wobble/src/WobbleUpdater.ts +++ b/updaters/wobble/src/WobbleUpdater.ts @@ -6,6 +6,7 @@ import { doublePI, getRandom, getRangeValue, + loadOptionProperty, } from "@tsparticles/engine"; import type { IWobbleParticlesOptions, WobbleParticle, WobbleParticlesOptions } from "./Types.js"; import { Wobble } from "./Options/Classes/Wobble.js"; @@ -56,7 +57,7 @@ export class WobbleUpdater implements IParticleUpdater { /** * Checks if the given particle needs the wobble animation - * @param particle - + * @param particle - The particle to process * @returns true if the particle needs the wobble animation, false otherwise */ isEnabled(particle: WobbleParticle): boolean { @@ -67,11 +68,7 @@ export class WobbleUpdater implements IParticleUpdater { options: WobbleParticlesOptions, ...sources: (RecursivePartial | undefined)[] ): void { - options.wobble ??= new Wobble(); - - for (const source of sources) { - options.wobble.load(source?.wobble); - } + loadOptionProperty(options, "wobble", Wobble, ...sources); } /** diff --git a/updaters/wobble/src/index.lazy.ts b/updaters/wobble/src/index.lazy.ts index b2921b48b53..a30661a68e7 100644 --- a/updaters/wobble/src/index.lazy.ts +++ b/updaters/wobble/src/index.lazy.ts @@ -3,7 +3,7 @@ import { type Engine } from "@tsparticles/engine/lazy"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWobbleUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/updaters/wobble/src/index.ts b/updaters/wobble/src/index.ts index 607a142b130..ba46722c321 100644 --- a/updaters/wobble/src/index.ts +++ b/updaters/wobble/src/index.ts @@ -4,7 +4,7 @@ import { WobbleUpdater } from "./WobbleUpdater.js"; declare const __VERSION__: string; /** - * @param engine - + * @param engine - The engine to load the shape in */ export async function loadWobbleUpdater(engine: Engine): Promise { engine.checkVersion(__VERSION__); diff --git a/utils/animationUtils/.npmignore b/utils/animationUtils/.npmignore new file mode 100644 index 00000000000..5826e1fa8f3 --- /dev/null +++ b/utils/animationUtils/.npmignore @@ -0,0 +1,6 @@ +.cache/ +src/ +tsconfig*.json +eslint.config.js +rollup.config.js +node_modules/ diff --git a/utils/animationUtils/CHANGELOG.md b/utils/animationUtils/CHANGELOG.md new file mode 100644 index 00000000000..ad2581b20ab --- /dev/null +++ b/utils/animationUtils/CHANGELOG.md @@ -0,0 +1,10 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) diff --git a/utils/animationUtils/LICENSE b/utils/animationUtils/LICENSE new file mode 100644 index 00000000000..655c0445f0c --- /dev/null +++ b/utils/animationUtils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/utils/animationUtils/README.md b/utils/animationUtils/README.md new file mode 100644 index 00000000000..c9fa1bf08de --- /dev/null +++ b/utils/animationUtils/README.md @@ -0,0 +1,3 @@ +# tsParticles Animation Utils + +Shared animation utilities for tsParticles updaters. diff --git a/utils/animationUtils/eslint.config.js b/utils/animationUtils/eslint.config.js new file mode 100644 index 00000000000..a461ddbce48 --- /dev/null +++ b/utils/animationUtils/eslint.config.js @@ -0,0 +1,6 @@ +import tsParticlesESLintConfig from "@tsparticles/eslint-config"; +import { defineConfig } from "eslint/config"; + +export default defineConfig([ + tsParticlesESLintConfig, +]); diff --git a/utils/animationUtils/package.dist.json b/utils/animationUtils/package.dist.json new file mode 100644 index 00000000000..e763e7f2e12 --- /dev/null +++ b/utils/animationUtils/package.dist.json @@ -0,0 +1,115 @@ +{ + "name": "@tsparticles/animation-utils", + "version": "4.2.0", + "description": "tsParticles animation utils library", + "homepage": "https://particles.js.org", + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "utils/animationUtils" + }, + "keywords": [ + "front-end", + "frontend", + "tsparticles", + "particles.js", + "particlesjs", + "particles", + "particle", + "animation", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", + "typescript", + "javascript", + "animation", + "web", + "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", + "animated", + "background", + "confetti", + "canvas", + "fireworks", + "fireworks-js", + "confetti-js", + "confettijs", + "fireworksjs", + "canvas-confetti", + "tsparticles-plugin" + ], + "publishConfig": { + "access": "public" + }, + "author": "Matteo Bruni ", + "license": "MIT", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "sideEffects": false, + "jsdelivr": "tsparticles.animation.utils.min.js", + "unpkg": "tsparticles.animation.utils.min.js", + "browser": "browser/index.js", + "main": "cjs/index.js", + "module": "esm/index.js", + "types": "types/index.d.ts", + "exports": { + ".": { + "types": "./types/index.d.ts", + "browser": "./browser/index.js", + "import": "./esm/index.js", + "require": "./cjs/index.js", + "default": "./esm/index.js" + }, + "./lazy": { + "types": "./types/index.lazy.d.ts", + "browser": "./browser/index.lazy.js", + "import": "./esm/index.lazy.js", + "require": "./cjs/index.lazy.js", + "default": "./esm/index.lazy.js" + }, + "./package.json": "./package.json" + }, + "peerDependencies": { + "@tsparticles/engine": "4.2.0" + }, + "type": "module" +} diff --git a/utils/animationUtils/package.json b/utils/animationUtils/package.json new file mode 100644 index 00000000000..ba3b4c6c41b --- /dev/null +++ b/utils/animationUtils/package.json @@ -0,0 +1,128 @@ +{ + "name": "@tsparticles/animation-utils", + "version": "4.2.0", + "description": "tsParticles animation utils path", + "homepage": "https://particles.js.org", + "scripts": { + "build": "tsparticles-build", + "version": "tsparticles-build -d && git add package.dist.json && tsparticles-build -p -l && git add .", + "prepack": "pnpm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "utils/animationUtils" + }, + "keywords": [ + "front-end", + "frontend", + "tsparticles", + "particles.js", + "particlesjs", + "particles", + "particle", + "animation", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", + "typescript", + "javascript", + "animation", + "web", + "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", + "animated", + "background", + "confetti", + "canvas", + "fireworks", + "fireworks-js", + "confetti-js", + "confettijs", + "fireworksjs", + "canvas-confetti", + "tsparticles-plugin" + ], + "author": "Matteo Bruni ", + "license": "MIT", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "files": [ + "dist" + ], + "sideEffects": false, + "browser": "dist/browser/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "browser": "./dist/browser/index.js", + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js", + "default": "./dist/esm/index.js" + }, + "./lazy": { + "types": "./dist/types/index.lazy.d.ts", + "browser": "./dist/browser/index.lazy.js", + "import": "./dist/esm/index.lazy.js", + "require": "./dist/cjs/index.lazy.js", + "default": "./dist/esm/index.lazy.js" + }, + "./package.json": "./dist/package.json" + }, + "peerDependencies": { + "@tsparticles/engine": "workspace:*" + }, + "devDependencies": { + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/engine": "workspace:*" + }, + "publishConfig": { + "access": "public", + "directory": "dist", + "linkDirectory": true + }, + "type": "module" +} diff --git a/utils/animationUtils/rollup.config.js b/utils/animationUtils/rollup.config.js new file mode 100644 index 00000000000..a01119fc44c --- /dev/null +++ b/utils/animationUtils/rollup.config.js @@ -0,0 +1,19 @@ +import { loadParticlesUtil } from "@tsparticles/rollup-plugin"; +import { fileURLToPath } from "node:url"; +import fs from "fs-extra"; +import path from "node:path"; + +const __filename = fileURLToPath(import.meta.url), + __dirname = path.dirname(__filename), + rootPkgPath = path.join(__dirname, "package.json"), + pkg = await fs.readJson(rootPkgPath), + version = pkg.version; + +export default loadParticlesUtil({ + moduleName: "animation.utils", + bundle: false, + bundleName: "Animation Utils", + version, + dir: __dirname, + progress: false, +}); diff --git a/utils/animationUtils/src/Utils.ts b/utils/animationUtils/src/Utils.ts new file mode 100644 index 00000000000..ffaa2bb6238 --- /dev/null +++ b/utils/animationUtils/src/Utils.ts @@ -0,0 +1,230 @@ +import { + AnimationMode, + AnimationStatus, + DestroyType, + type IDelta, + type IParticleNumericValueAnimation, + type Particle, + type RangedAnimationValueWithRandom, + StartValueType, + clamp, + getRandom, + getRangeMax, + getRangeMin, + getRangeValue, + half, + millisecondsToSeconds, + randomInRangeValue, +} from "@tsparticles/engine"; + +/** + * @param particle - The particle to process + * @param destroyType - The destroyType + * @param value - The value + * @param minValue - The minValue + * @param maxValue - The maxValue + */ +function checkDestroy( + particle: Particle, + destroyType: DestroyType | keyof typeof DestroyType, + value: number, + minValue: number, + maxValue: number, +): void { + switch (destroyType) { + case DestroyType.max: + if (value >= maxValue) { + particle.destroy(); + } + + break; + case DestroyType.min: + if (value <= minValue) { + particle.destroy(); + } + + break; + default: + break; + } +} + +/** + * @param options - The options to handle + * @param pxRatio - The pxRatio + * @returns the animation init object + */ +export function initParticleNumericAnimationValue( + options: RangedAnimationValueWithRandom, + pxRatio: number, +): IParticleNumericValueAnimation { + const valueRange = options.value, + animationOptions = options.animation, + res: IParticleNumericValueAnimation = { + delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds, + enable: animationOptions.enable, + value: getRangeValue(options.value) * pxRatio, + max: getRangeMax(valueRange) * pxRatio, + min: getRangeMin(valueRange) * pxRatio, + loops: 0, + maxLoops: getRangeValue(animationOptions.count), + time: 0, + }, + decayOffset = 1; + + if (animationOptions.enable) { + res.decay = decayOffset - getRangeValue(animationOptions.decay); + + switch (animationOptions.mode) { + case AnimationMode.increase: + res.status = AnimationStatus.increasing; + + break; + case AnimationMode.decrease: + res.status = AnimationStatus.decreasing; + + break; + + case AnimationMode.random: + res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing; + + break; + default: + break; + } + + const autoStatus = animationOptions.mode === AnimationMode.auto; + + switch (animationOptions.startValue) { + case StartValueType.min: + res.value = res.min; + + if (autoStatus) { + res.status = AnimationStatus.increasing; + } + + break; + + case StartValueType.max: + res.value = res.max; + + if (autoStatus) { + res.status = AnimationStatus.decreasing; + } + + break; + + case StartValueType.random: + default: + res.value = randomInRangeValue(res); + + if (autoStatus) { + res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing; + } + + break; + } + } + + res.initialValue = res.value; + + return res; +} + +/** + * Updates a numeric particle animation state. + * @param particle - Particle owning the animated value. + * @param data - Numeric animation state. + * @param changeDirection - Whether the animation should ping-pong. + * @param destroyType - Destroy behavior applied at bounds. + * @param delta - Frame delta data. + */ +export function updateAnimation( + particle: Particle, + data: IParticleNumericValueAnimation, + changeDirection: boolean, + destroyType: DestroyType | keyof typeof DestroyType, + delta: IDelta, +): void { + const minLoops = 0, + minDelay = 0, + identity = 1, + minVelocity = 0, + minDecay = 1; + + if ( + particle.destroyed || + !data.enable || + ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) + ) { + return; + } + + const velocity = (data.velocity ?? minVelocity) * delta.factor, + minValue = data.min, + maxValue = data.max, + decay = data.decay ?? minDecay; + + data.time ??= 0; + + const delayTime = data.delayTime ?? minDelay; + + if (delayTime > minDelay && data.time < delayTime) { + data.time += delta.value; + + if (data.time < delayTime) { + return; + } + } + + switch (data.status) { + case AnimationStatus.increasing: + data.value += velocity; + break; + case AnimationStatus.decreasing: + data.value -= velocity; + break; + default: + break; + } + + if (data.velocity && decay !== identity) { + data.velocity *= decay; + } + + switch (data.status) { + case AnimationStatus.increasing: + if (data.value >= maxValue) { + if (changeDirection) { + data.status = AnimationStatus.decreasing; + } else { + data.value -= maxValue; + } + + data.loops ??= minLoops; + data.loops++; + } + break; + case AnimationStatus.decreasing: + if (data.value <= minValue) { + if (changeDirection) { + data.status = AnimationStatus.increasing; + } else { + data.value += maxValue; + } + + data.loops ??= minLoops; + data.loops++; + } + break; + default: + break; + } + + checkDestroy(particle, destroyType, data.value, minValue, maxValue); + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!particle.destroyed) { + data.value = clamp(data.value, minValue, maxValue); + } +} diff --git a/utils/animationUtils/src/browser.ts b/utils/animationUtils/src/browser.ts new file mode 100644 index 00000000000..f6874998b9f --- /dev/null +++ b/utils/animationUtils/src/browser.ts @@ -0,0 +1,6 @@ +const globalObject = globalThis as typeof globalThis & { + __tsParticlesInternals?: Record; +}; +globalObject.__tsParticlesInternals = globalObject.__tsParticlesInternals ?? {}; + +export * from "./index.js"; diff --git a/utils/animationUtils/src/index.lazy.ts b/utils/animationUtils/src/index.lazy.ts new file mode 100644 index 00000000000..b47298de3b6 --- /dev/null +++ b/utils/animationUtils/src/index.lazy.ts @@ -0,0 +1 @@ +export * from "./Utils.js"; diff --git a/utils/animationUtils/src/index.ts b/utils/animationUtils/src/index.ts new file mode 100644 index 00000000000..b47298de3b6 --- /dev/null +++ b/utils/animationUtils/src/index.ts @@ -0,0 +1 @@ +export * from "./Utils.js"; diff --git a/utils/animationUtils/tsconfig.base.json b/utils/animationUtils/tsconfig.base.json new file mode 100644 index 00000000000..2b489b6aa1c --- /dev/null +++ b/utils/animationUtils/tsconfig.base.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsparticles/tsconfig/dist/tsconfig.base.json", + "compilerOptions": { + "rootDir": "./src" + }, + "include": [ + "./src" + ] +} diff --git a/utils/animationUtils/tsconfig.browser.json b/utils/animationUtils/tsconfig.browser.json new file mode 100644 index 00000000000..d114ea7d433 --- /dev/null +++ b/utils/animationUtils/tsconfig.browser.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.browser.json"], + "compilerOptions": { + "outDir": "./dist/browser" + } +} diff --git a/utils/animationUtils/tsconfig.json b/utils/animationUtils/tsconfig.json new file mode 100644 index 00000000000..4ebb3ae88eb --- /dev/null +++ b/utils/animationUtils/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.json"], + "compilerOptions": { + "outDir": "./dist/cjs" + } +} diff --git a/utils/animationUtils/tsconfig.module.json b/utils/animationUtils/tsconfig.module.json new file mode 100644 index 00000000000..7faa233aa42 --- /dev/null +++ b/utils/animationUtils/tsconfig.module.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.module.json"], + "compilerOptions": { + "outDir": "./dist/esm" + } +} diff --git a/utils/animationUtils/tsconfig.types.json b/utils/animationUtils/tsconfig.types.json new file mode 100644 index 00000000000..01755624ba5 --- /dev/null +++ b/utils/animationUtils/tsconfig.types.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.types.json"], + "compilerOptions": { + "outDir": "./dist/types" + } +} diff --git a/utils/animationUtils/typedoc.json b/utils/animationUtils/typedoc.json new file mode 100644 index 00000000000..8ca67be7add --- /dev/null +++ b/utils/animationUtils/typedoc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "@tsparticles/tsconfig/dist/typedoc.json" + ] +} diff --git a/utils/canvasUtils/CHANGELOG.md b/utils/canvasUtils/CHANGELOG.md index d1d8036afd7..1f77416ffef 100644 --- a/utils/canvasUtils/CHANGELOG.md +++ b/utils/canvasUtils/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/canvas-utils diff --git a/utils/canvasUtils/package.dist.json b/utils/canvasUtils/package.dist.json index 40720fd870b..9cbe41da537 100644 --- a/utils/canvasUtils/package.dist.json +++ b/utils/canvasUtils/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/canvas-utils", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles canvas utils library", "homepage": "https://particles.js.org", "repository": { @@ -109,7 +109,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module" } diff --git a/utils/canvasUtils/package.json b/utils/canvasUtils/package.json index b977e96fe9f..7937466631d 100644 --- a/utils/canvasUtils/package.json +++ b/utils/canvasUtils/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/canvas-utils", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles canvas utils path", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/utils/canvasUtils/src/Utils.ts b/utils/canvasUtils/src/Utils.ts index 96854cb1f12..acb55fac0b9 100644 --- a/utils/canvasUtils/src/Utils.ts +++ b/utils/canvasUtils/src/Utils.ts @@ -35,10 +35,10 @@ export function drawLine(context: OffscreenCanvasRenderingContext2D, begin: ICoo } /** - * @param ctx - - * @param size - - * @param offset - - * @param clear - + * @param ctx - The rendering context + * @param size - The size + * @param offset - The offset + * @param clear - The clear * @returns the canvas pixel data */ export function getCanvasImageData( @@ -86,9 +86,9 @@ export function getCanvasImageData( } /** - * @param src - - * @param offset - - * @param canvasSettings - + * @param src - The src + * @param offset - The offset + * @param canvasSettings - The canvasSettings * @returns the canvas pixel data */ export function getImageData( @@ -138,10 +138,10 @@ export function getImageData( } /** - * @param textOptions - - * @param offset - - * @param fill - - * @param canvasSettings - + * @param textOptions - The textOptions + * @param offset - The offset + * @param fill - The fill flag + * @param canvasSettings - The canvasSettings * @returns the canvas pixel data */ export function getTextData( diff --git a/utils/configs/CHANGELOG.md b/utils/configs/CHANGELOG.md index b6194ad1e82..be6fb212f82 100644 --- a/utils/configs/CHANGELOG.md +++ b/utils/configs/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Features + +- added new meteors config ([f659e05](https://github.com/tsparticles/tsparticles/commit/f659e051d0cc31034250110773d9f719d4333518)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/configs diff --git a/utils/configs/package.dist.json b/utils/configs/package.dist.json index c4ee2af734f..34c20f83cfc 100644 --- a/utils/configs/package.dist.json +++ b/utils/configs/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/configs", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles demo configurations", "homepage": "https://particles.js.org", "repository": { @@ -105,7 +105,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "publishConfig": { "access": "public" diff --git a/utils/configs/package.json b/utils/configs/package.json index cf3378c22ed..5c1b2b2d4cd 100644 --- a/utils/configs/package.json +++ b/utils/configs/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/configs", - "version": "4.1.3", + "version": "4.2.0", "homepage": "https://particles.js.org", "scripts": { "build": "tsparticles-build", @@ -117,7 +117,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/utils/configs/src/e/effectFilter.ts b/utils/configs/src/e/effectFilter.ts index 2d9ebf1ffe4..8ea0d6f329c 100644 --- a/utils/configs/src/e/effectFilter.ts +++ b/utils/configs/src/e/effectFilter.ts @@ -5,7 +5,7 @@ const options: ISourceOptions = { name: "Effect Filter", particles: { number: { - value: 80, + value: 30, density: { enable: true, }, @@ -27,7 +27,7 @@ const options: ISourceOptions = { type: "filter", options: { filter: { - blur: 4, + blur: 10, }, }, }, @@ -36,7 +36,7 @@ const options: ISourceOptions = { }, size: { value: { - min: 5, + min: 20, max: 50, }, }, diff --git a/utils/fractalNoise/CHANGELOG.md b/utils/fractalNoise/CHANGELOG.md index 29b9d0a082e..25834942e76 100644 --- a/utils/fractalNoise/CHANGELOG.md +++ b/utils/fractalNoise/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/fractal-noise + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/fractal-noise diff --git a/utils/fractalNoise/package.dist.json b/utils/fractalNoise/package.dist.json index 3cc7c810056..f8adc3416f8 100644 --- a/utils/fractalNoise/package.dist.json +++ b/utils/fractalNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/fractal-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fractal noise library", "homepage": "https://particles.js.org", "repository": { @@ -110,6 +110,6 @@ }, "type": "module", "dependencies": { - "@tsparticles/smooth-value-noise": "4.1.3" + "@tsparticles/smooth-value-noise": "4.2.0" } } diff --git a/utils/fractalNoise/package.json b/utils/fractalNoise/package.json index 81486627803..763c00b1549 100644 --- a/utils/fractalNoise/package.json +++ b/utils/fractalNoise/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/fractal-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles fractal noise path", "homepage": "https://particles.js.org", "scripts": { @@ -113,7 +113,7 @@ "./package.json": "./dist/package.json" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/smooth-value-noise": "workspace:*" }, diff --git a/utils/noiseField/CHANGELOG.md b/utils/noiseField/CHANGELOG.md index 15c582d05f6..dc5719f18cd 100644 --- a/utils/noiseField/CHANGELOG.md +++ b/utils/noiseField/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/noise-field + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/noise-field diff --git a/utils/noiseField/package.dist.json b/utils/noiseField/package.dist.json index d0fb72c4c81..60d8b2b7d92 100644 --- a/utils/noiseField/package.dist.json +++ b/utils/noiseField/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/noise-field", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles noise field library", "homepage": "https://particles.js.org", "repository": { @@ -92,8 +92,8 @@ "module": "esm/index.js", "types": "types/index.d.ts", "peerDependencies": { - "@tsparticles/engine": "4.1.3", - "@tsparticles/plugin-move": "4.1.3" + "@tsparticles/engine": "4.2.0", + "@tsparticles/plugin-move": "4.2.0" }, "exports": { ".": { diff --git a/utils/noiseField/package.json b/utils/noiseField/package.json index a61ed3987f1..e3b437f17fb 100644 --- a/utils/noiseField/package.json +++ b/utils/noiseField/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/noise-field", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles noise field library", "homepage": "https://particles.js.org", "scripts": { @@ -117,7 +117,7 @@ "@tsparticles/plugin-move": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*", "@tsparticles/plugin-move": "workspace:*" }, diff --git a/utils/pathUtils/CHANGELOG.md b/utils/pathUtils/CHANGELOG.md index c2db4a20b29..5d979ba2bea 100644 --- a/utils/pathUtils/CHANGELOG.md +++ b/utils/pathUtils/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/path-utils diff --git a/utils/pathUtils/package.dist.json b/utils/pathUtils/package.dist.json index d6c10920045..03b8e830dcb 100644 --- a/utils/pathUtils/package.dist.json +++ b/utils/pathUtils/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-utils", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles path utils library", "homepage": "https://particles.js.org", "repository": { @@ -109,7 +109,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@tsparticles/engine": "4.1.3" + "@tsparticles/engine": "4.2.0" }, "type": "module" } diff --git a/utils/pathUtils/package.json b/utils/pathUtils/package.json index e653b068298..1c52097ba7d 100644 --- a/utils/pathUtils/package.json +++ b/utils/pathUtils/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/path-utils", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles path utils path", "homepage": "https://particles.js.org", "scripts": { @@ -116,7 +116,7 @@ "@tsparticles/engine": "workspace:*" }, "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" }, "publishConfig": { diff --git a/utils/pathUtils/src/Utils.ts b/utils/pathUtils/src/Utils.ts index e0b78cc5826..cf49233af06 100644 --- a/utils/pathUtils/src/Utils.ts +++ b/utils/pathUtils/src/Utils.ts @@ -7,9 +7,9 @@ const firstIndex = 0, index4 = 3; /** - * @param ctx - - * @param radius - - * @param path - + * @param ctx - The rendering context + * @param radius - The radius + * @param path - The path */ export function drawPath(ctx: OffscreenCanvasRenderingContext2D, radius: number, path: IPathData): void { const firstSegment = path.segments[firstIndex]; diff --git a/utils/perlinNoise/CHANGELOG.md b/utils/perlinNoise/CHANGELOG.md index 231e613e5d2..1e49db13657 100644 --- a/utils/perlinNoise/CHANGELOG.md +++ b/utils/perlinNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/perlin-noise diff --git a/utils/perlinNoise/package.dist.json b/utils/perlinNoise/package.dist.json index b3de12b3255..ac7a26744ad 100644 --- a/utils/perlinNoise/package.dist.json +++ b/utils/perlinNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/perlin-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles perlin noise library", "homepage": "https://particles.js.org", "repository": { diff --git a/utils/perlinNoise/package.json b/utils/perlinNoise/package.json index 4400c575c13..0cbb5e1a4e3 100644 --- a/utils/perlinNoise/package.json +++ b/utils/perlinNoise/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/perlin-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles perlin noise path", "homepage": "https://particles.js.org", "scripts": { @@ -119,7 +119,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" } } diff --git a/utils/perlinNoise/src/PerlinNoise.ts b/utils/perlinNoise/src/PerlinNoise.ts index 11608a03d69..56e2267bfd5 100644 --- a/utils/perlinNoise/src/PerlinNoise.ts +++ b/utils/perlinNoise/src/PerlinNoise.ts @@ -471,7 +471,7 @@ export class PerlinNoise { } /** - * @param t - + * @param t - The t * @returns the fade value */ #fade(t: number): number { @@ -479,9 +479,9 @@ export class PerlinNoise { } /** - * @param a - - * @param b - - * @param t - + * @param a - The alpha component + * @param b - The blue component + * @param t - The t * @returns the linear interpolation value */ #lerp(a: number, b: number, t: number): number { diff --git a/utils/simplexNoise/CHANGELOG.md b/utils/simplexNoise/CHANGELOG.md index 37d8663864b..77c8181d5ed 100644 --- a/utils/simplexNoise/CHANGELOG.md +++ b/utils/simplexNoise/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/simplex-noise diff --git a/utils/simplexNoise/package.dist.json b/utils/simplexNoise/package.dist.json index 8bf7aba1e20..aa04ceed30f 100644 --- a/utils/simplexNoise/package.dist.json +++ b/utils/simplexNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/simplex-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles simplex noise library", "homepage": "https://particles.js.org", "repository": { diff --git a/utils/simplexNoise/package.json b/utils/simplexNoise/package.json index 59f604c4b08..d0e9b4e6d5f 100644 --- a/utils/simplexNoise/package.json +++ b/utils/simplexNoise/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/simplex-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles simplex noise library", "homepage": "https://particles.js.org", "scripts": { @@ -105,7 +105,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" } } diff --git a/utils/simplexNoise/src/Classes/SimplexNoise4D.ts b/utils/simplexNoise/src/Classes/SimplexNoise4D.ts index 62d069bbbe5..3ef03eed636 100644 --- a/utils/simplexNoise/src/Classes/SimplexNoise4D.ts +++ b/utils/simplexNoise/src/Classes/SimplexNoise4D.ts @@ -2800,10 +2800,10 @@ export class SimplexNoise4D { } /** - * @param x - - * @param y - - * @param z - - * @param w - + * @param x - The x coordinate + * @param y - The y coordinate + * @param z - The z coordinate + * @param w - The width * @returns the noise value */ noise(x: number, y: number, z: number, w: number): number { @@ -2953,11 +2953,11 @@ export class SimplexNoise4D { } /** - * @param multiplier - - * @param xsb - - * @param ysb - - * @param zsb - - * @param wsb - + * @param multiplier - The multiplier + * @param xsb - The xsb + * @param ysb - The ysb + * @param zsb - The zsb + * @param wsb - The wsb * @returns the contribution matrix */ #contribution4D(multiplier: number, xsb: number, ysb: number, zsb: number, wsb: number): Contribution4D { diff --git a/utils/simplexNoise/src/utils.ts b/utils/simplexNoise/src/utils.ts index 5024552b090..9138e302bb7 100644 --- a/utils/simplexNoise/src/utils.ts +++ b/utils/simplexNoise/src/utils.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ /** - * @param seed - + * @param seed - The seed * @returns the new seed */ export function shuffleSeed(seed: Uint32Array): Uint32Array { diff --git a/utils/smoothValueNoise/CHANGELOG.md b/utils/smoothValueNoise/CHANGELOG.md index d34a2fc67d4..365ab947127 100644 --- a/utils/smoothValueNoise/CHANGELOG.md +++ b/utils/smoothValueNoise/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +**Note:** Version bump only for package @tsparticles/smooth-value-noise + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/smooth-value-noise diff --git a/utils/smoothValueNoise/package.dist.json b/utils/smoothValueNoise/package.dist.json index d2c8e2f858f..b4a0288330d 100644 --- a/utils/smoothValueNoise/package.dist.json +++ b/utils/smoothValueNoise/package.dist.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/smooth-value-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smooth value noise library", "homepage": "https://particles.js.org", "repository": { diff --git a/utils/smoothValueNoise/package.json b/utils/smoothValueNoise/package.json index 55d539cf278..fba0f79e594 100644 --- a/utils/smoothValueNoise/package.json +++ b/utils/smoothValueNoise/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/smooth-value-noise", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles smooth value noise path", "homepage": "https://particles.js.org", "scripts": { @@ -119,7 +119,7 @@ }, "type": "module", "devDependencies": { - "@tsparticles/cli-build": "workspace:^", + "@tsparticles/cli-build": "workspace:*", "@tsparticles/engine": "workspace:*" } } diff --git a/utils/tests/CHANGELOG.md b/utils/tests/CHANGELOG.md index ab83fd59875..9dadd7cc1f9 100644 --- a/utils/tests/CHANGELOG.md +++ b/utils/tests/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed some eslint configs and circular deps ([93d7b8b](https://github.com/tsparticles/tsparticles/commit/93d7b8b766e2d13a4e2c8c18c6ac66f5b460e71b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/tests diff --git a/utils/tests/LICENSE b/utils/tests/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/utils/tests/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/utils/tests/package.json b/utils/tests/package.json index 2743dcd6dc7..cde5287f3bf 100644 --- a/utils/tests/package.json +++ b/utils/tests/package.json @@ -1,7 +1,7 @@ { "name": "@tsparticles/tests", "private": true, - "version": "4.1.3", + "version": "4.2.0", "repository": { "type": "git", "url": "git+https://github.com/tsparticles/tsparticles.git", @@ -29,12 +29,12 @@ }, "devDependencies": { "@types/jsdom": "^28.0.3", - "@vitest/coverage-v8": "^4.1.6", - "@vitest/ui": "^4.1.6", + "@vitest/coverage-v8": "^4.1.9", + "@vitest/ui": "^4.1.9", "canvas": "^3.2.3", "jsdom": "^29.1.1", "jsdom-global": "^3.0.2", - "vitest": "^4.1.6" + "vitest": "^4.1.9" }, "type": "module" } diff --git a/utils/tests/src/Fixture/CustomCanvas.ts b/utils/tests/src/Fixture/CustomCanvas.ts index 7c9582d40fa..ee2b61563ab 100644 --- a/utils/tests/src/Fixture/CustomCanvas.ts +++ b/utils/tests/src/Fixture/CustomCanvas.ts @@ -5,8 +5,8 @@ import { installTransferControlToOffscreen } from "./OffscreenCanvas.js"; /** * - * @param width - - * @param height - + * @param width - The width + * @param height - The height * @returns the custom canvas */ export function createCustomCanvas(width: number, height: number): Canvas { diff --git a/utils/tests/src/Fixture/OffscreenCanvas.ts b/utils/tests/src/Fixture/OffscreenCanvas.ts index 41c3719c929..6db0d9a111e 100644 --- a/utils/tests/src/Fixture/OffscreenCanvas.ts +++ b/utils/tests/src/Fixture/OffscreenCanvas.ts @@ -35,8 +35,9 @@ export class TestOffscreenCanvas { /** * - * @param width - * @param height + * @param width - The width + * @param height - The height + * @returns The result */ export function createTestOffscreenCanvas(width: number, height: number): TestOffscreenCanvas { return new TestOffscreenCanvas(width, height); @@ -44,7 +45,7 @@ export function createTestOffscreenCanvas(width: number, height: number): TestOf /** * - * @param target + * @param target - The target */ export function installTransferControlToOffscreen(target: object): void { Object.defineProperty(target, "transferControlToOffscreen", { diff --git a/utils/tests/src/Fixture/Utils.ts b/utils/tests/src/Fixture/Utils.ts index 3e419aefe18..ddbf386b11c 100644 --- a/utils/tests/src/Fixture/Utils.ts +++ b/utils/tests/src/Fixture/Utils.ts @@ -11,8 +11,8 @@ import { /** * - * @param container - - * @param direction - + * @param container - The container to handle + * @param direction - The direction * @returns the particle created */ export function buildParticleWithDirection(container: Container, direction: MoveDirection): Particle | undefined { @@ -23,9 +23,9 @@ export function buildParticleWithDirection(container: Container, direction: Move /** * - * @param start - - * @param stop - - * @param velocity - + * @param start - The start value + * @param stop - The stop + * @param velocity - The velocity */ export function segmentBounce(start: ICoordinates, stop: ICoordinates, velocity: Vector): void { const { dx, dy } = getDistances(start, stop), diff --git a/utils/tests/src/tests/Utils.ts b/utils/tests/src/tests/Utils.ts index c2f3d31918b..0d767657928 100644 --- a/utils/tests/src/tests/Utils.ts +++ b/utils/tests/src/tests/Utils.ts @@ -4,7 +4,6 @@ import { OutModeDirection, Vector, areBoundsInside, - arrayRandomIndex, calculateBounds, clamp, getDistance, @@ -154,18 +153,6 @@ describe("Utils", () => { }); }); - describe("arrayRandomIndex", () => { - it("should always return an index that is not out of the bounds of the array", () => { - const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], - randomIndex = arrayRandomIndex(array); - - expect(randomIndex % 1).to.equal(0); // Make sure it is an integer - expect(randomIndex).to.be.at.least(0); - expect(randomIndex).to.be.at.most(9); - expect(randomIndex).to.equal(array[randomIndex]); // Additional check that index is in bounds - }); - }); - describe("itemFromArray", () => { const numericArray = [1, 2, 3, Math.PI, Math.E], stringArray = ["lorem", "ipsum", "dolor"], diff --git a/utils/tests/src/tests/memoize.test.ts b/utils/tests/src/tests/memoize.test.ts deleted file mode 100644 index 5b798dc2fc6..00000000000 --- a/utils/tests/src/tests/memoize.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable @typescript-eslint/no-magic-numbers */ -import { expect, test } from "vitest"; -import { memoize } from "@tsparticles/engine"; - -test("memoize returns cached value for same primitive args", () => { - let calls = 0; - - const fn = (a: number, b: number): number => { - calls++; - return a + b; - }, - m = memoize(fn), - r1 = m(1, 2), - r2 = m(1, 2); - - expect(r1).toBe(3); - expect(r2).toBe(3); - expect(calls).toBe(1); -}); - -test("memoize differentiates object args by deep key (not by reference only)", () => { - let calls = 0; - - const fn = (obj: Record): number => { - calls++; - return Object.keys(obj).length; - }, - m = memoize(fn), - a = { x: 1, y: { z: 2 } }, - b = { x: 1, y: { z: 2 } }, // different reference, same shape - r1 = m(a), - r2 = m(b); - - expect(r1).toBe(r2); - // depending on keying strategy this should be cached (deep-equal keys) - expect(calls).toBe(1); -}); - -test("bounded cache evicts older entries when maxSize reached", () => { - let calls = 0; - - const fn = (n: number): number => { - calls++; - return n * 2; - }, - // request small cache size to test eviction - m = memoize(fn, { maxSize: 2 }), - a = m(1), - b = m(2), - // cache is full (maxSize=2) - c = m(3), - // Accessing 1 again should cause recompute if it was evicted - _ = m(1); - - expect(a).toBe(2); - expect(b).toBe(4); - expect(c).toBe(6); - - // At least one recompute should have occurred for `1` if eviction happened - expect(calls).toBeGreaterThanOrEqual(3); -}); diff --git a/websites/confetti/CHANGELOG.md b/websites/confetti/CHANGELOG.md index 7a5fee40321..5a1965f73c1 100644 --- a/websites/confetti/CHANGELOG.md +++ b/websites/confetti/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed issue with ribbons and confetti websites ([7ae50f3](https://github.com/tsparticles/tsparticles/commit/7ae50f3c89c2e5bf65750584d4b1535516c66673)) +- various fixes after deeper review ([58b7ef8](https://github.com/tsparticles/tsparticles/commit/58b7ef83b48a4979519349c3cb6fd3cfe2cf6f5b)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/confetti-website diff --git a/websites/confetti/package.json b/websites/confetti/package.json index e5babcb2fa1..c03b688d965 100644 --- a/websites/confetti/package.json +++ b/websites/confetti/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/confetti-website", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles confetti webpage", "private": true, "type": "module", @@ -53,11 +53,15 @@ ], "targets": { "build": { + "cache": false, "inputs": [ "{projectRoot}/vite.config.js", "production", "^production" ] + }, + "build:ci": { + "cache": false } } } diff --git a/websites/ribbons/CHANGELOG.md b/websites/ribbons/CHANGELOG.md index d71a37912c8..4de9a6b3d3f 100644 --- a/websites/ribbons/CHANGELOG.md +++ b/websites/ribbons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- fixed issue with ribbons and confetti websites ([7ae50f3](https://github.com/tsparticles/tsparticles/commit/7ae50f3c89c2e5bf65750584d4b1535516c66673)) +- various fixes after deeper review ([58b7ef8](https://github.com/tsparticles/tsparticles/commit/58b7ef83b48a4979519349c3cb6fd3cfe2cf6f5b)) +- various fixes after deeper review ([49e9af4](https://github.com/tsparticles/tsparticles/commit/49e9af44e178ec460934db8485ed624b09527464)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/ribbons-website diff --git a/websites/ribbons/package.json b/websites/ribbons/package.json index 4ee33bf0f92..ad757ae8822 100644 --- a/websites/ribbons/package.json +++ b/websites/ribbons/package.json @@ -1,6 +1,6 @@ { "name": "@tsparticles/ribbons-website", - "version": "4.1.3", + "version": "4.2.0", "description": "tsParticles ribbons webpage", "private": true, "type": "module", @@ -53,11 +53,15 @@ ], "targets": { "build": { + "cache": false, "inputs": [ "{projectRoot}/vite.config.js", "production", "^production" ] + }, + "build:ci": { + "cache": false } } } diff --git a/websites/ribbons/src/main.js b/websites/ribbons/src/main.js index f568789fa04..d296de82362 100644 --- a/websites/ribbons/src/main.js +++ b/websites/ribbons/src/main.js @@ -312,7 +312,7 @@ const modes = [ ], fn: function () { ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); }, diff --git a/websites/website/.gitignore b/websites/website/.gitignore index 4dd3e60571d..c7ec78dc440 100644 --- a/websites/website/.gitignore +++ b/websites/website/.gitignore @@ -365,6 +365,7 @@ css/*.map docs/.vitepress/cache/ docs/.vitepress/dist/ docs/.vitepress/temp/ +docs/.vitepress/.temp/ # TypeDoc generated API docs (HTML output) typedoc-dist/ @@ -381,4 +382,3 @@ yarn-error.log* # Temporary local check scripts .tmp-check-*.py - diff --git a/websites/website/CHANGELOG.md b/websites/website/CHANGELOG.md index d2a77a71104..9e3df3b583e 100644 --- a/websites/website/CHANGELOG.md +++ b/websites/website/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17) + +### Bug Fixes + +- various fixes after deeper review ([b68a5cb](https://github.com/tsparticles/tsparticles/commit/b68a5cb87c358c6cb32ddaac664eb29b327bcb4a)) +- various fixes after deeper review ([7f39804](https://github.com/tsparticles/tsparticles/commit/7f398048915819a380856bdce4b6b4af4aaab9a4)) +- various fixes after deeper review ([58b7ef8](https://github.com/tsparticles/tsparticles/commit/58b7ef83b48a4979519349c3cb6fd3cfe2cf6f5b)) +- various fixes after deeper review ([49e9af4](https://github.com/tsparticles/tsparticles/commit/49e9af44e178ec460934db8485ed624b09527464)) + +### Features + +- completed adding templates plan ([bce1a7e](https://github.com/tsparticles/tsparticles/commit/bce1a7ee481e2146b04be234923571e6cf16c717)) + ## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03) **Note:** Version bump only for package @tsparticles/website diff --git a/websites/website/docs/.vitepress/config.ts b/websites/website/docs/.vitepress/config.ts index 86d9c079168..65069041f7a 100644 --- a/websites/website/docs/.vitepress/config.ts +++ b/websites/website/docs/.vitepress/config.ts @@ -10,14 +10,30 @@ const gaMeasurementId = loadedEnv.VITE_GA_MEASUREMENT_ID ?? ""; const nav: DefaultTheme.NavItem[] = [ { text: "Start", link: "/guide/getting-started" }, { text: "Playground", link: "/playground/" }, - { text: "Guides", link: "/guides/" }, - { text: "Showcase", link: "/showcase/" }, - { text: "Demos", link: "/demos/" }, - { text: "Wrappers", link: "/guide/wrappers" }, - { text: "Options", link: "/options/" }, - { text: "API", link: "/api/" }, - { text: "Confetti", link: "https://confetti.js.org", target: "_blank" }, - { text: "Ribbons", link: "https://ribbons.js.org", target: "_blank" }, + { + text: "Demos", + items: [ + { text: "Demos", link: "/demos/" }, + { text: "Showcase", link: "/showcase/" }, + ], + }, + { + text: "Docs", + items: [ + { text: "Guides", link: "/guides/" }, + { text: "Wrappers", link: "/guide/wrappers" }, + { text: "Options", link: "/options/" }, + { text: "API", link: "/api/" }, + { text: "Versioning & Migration", link: "/migrations/" }, + ], + }, + { + text: "More", + items: [ + { text: "Confetti", link: "https://confetti.js.org", target: "_blank" }, + { text: "Ribbons", link: "https://ribbons.js.org", target: "_blank" }, + ], + }, { text: "Sponsor", items: [ @@ -25,7 +41,6 @@ const nav: DefaultTheme.NavItem[] = [ { text: "@tsparticles", link: "https://github.com/tsparticles" }, ], }, - { text: "Versioning & Migration", link: "/migrations/" }, ]; const baseSidebar: DefaultTheme.Sidebar = { @@ -107,6 +122,7 @@ const baseSidebar: DefaultTheme.Sidebar = { ], }, { text: "Templates & Resources", link: "/guide/templates-resources" }, + { text: "MCP Server (AI Integration)", link: "/guide/mcp-server" }, { text: "Video Tutorials", link: "/guide/video-tutorials" }, { text: "Dependency Graph", link: "/guide/dependency-graph" }, { text: "Troubleshooting & FAQ", link: "/guide/troubleshooting" }, diff --git a/websites/website/docs/.vitepress/theme/components/RandomDemoHero.vue b/websites/website/docs/.vitepress/theme/components/RandomDemoHero.vue index 2e36fbb051e..1d214293452 100644 --- a/websites/website/docs/.vitepress/theme/components/RandomDemoHero.vue +++ b/websites/website/docs/.vitepress/theme/components/RandomDemoHero.vue @@ -94,7 +94,7 @@ interface HeroAction { .main { position: relative; z-index: 10; - order: 2; + order: 1; flex-grow: 1; flex-shrink: 0; } @@ -291,7 +291,7 @@ interface HeroAction { } .image { - order: 1; + order: 2; margin: -76px -24px -48px; } diff --git a/websites/website/docs/de/demos/recipes/ribbons.md b/websites/website/docs/de/demos/recipes/ribbons.md index 0b31f3e6d37..80e6d575489 100644 --- a/websites/website/docs/de/demos/recipes/ribbons.md +++ b/websites/website/docs/de/demos/recipes/ribbons.md @@ -57,7 +57,7 @@ Standardmäßig wird jedes Ribbon-Partikel an einer zufälligen x-Position über import { ribbons } from "@tsparticles/ribbons"; await ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); ``` diff --git a/websites/website/docs/de/guide/getting-started.md b/websites/website/docs/de/guide/getting-started.md index 8d4caf275e4..2206e95b01d 100644 --- a/websites/website/docs/de/guide/getting-started.md +++ b/websites/website/docs/de/guide/getting-started.md @@ -2,6 +2,19 @@ tsParticles ist eine JavaScript/TypeScript-Bibliothek zum Erstellen von Partikelanimationen, Konfetti, Feuerwerk und mehr. Sie funktioniert in jedem modernen Browser und ist sowohl als npm-Paket als auch über CDN mit ` + +``` + ## Praktische Regeln - Halte Erweiterungsnamen eindeutig (zum Beispiel `app-*` oder Firmenprefix). diff --git a/websites/website/docs/de/guide/templates-resources.md b/websites/website/docs/de/guide/templates-resources.md index b71692f84c6..405377faaf2 100644 --- a/websites/website/docs/de/guide/templates-resources.md +++ b/websites/website/docs/de/guide/templates-resources.md @@ -1,32 +1,97 @@ # Vorlagen und Ressourcen -Vorlagen werden im Hauptmonorepo im Ordner `templates` verwaltet. +tsParticles bietet zwei Kategorien von Vorlagen: **Scaffold-Vorlagen** (Framework-Gerüste) und **Anwendungsfall-Vorlagen** (vollständige Beispielanwendungen). -## Offizielle Vorlagen +## Schnellstart mit der CLI -- Vorlagenordner: - - Enthält Starter-Setups für Vanilla-JavaScript und mehrere Frameworks. +Der einfachste Weg, eine Vorlage zu verwenden, ist über die CLI: -## Wann Vorlagen verwendet werden sollten +```bash +npm create tsparticles@latest +``` -- Sie möchten eine fertige Basislinie mit bereits verdrahteter Projektstruktur. - - Sie benötigen Framework-spezifische Beispiele, bevor Sie benutzerdefinierte Wrapper schreiben. -- Sie möchten die Bundle-Auswahl (`basic`, `slim`, `full`, `all`) schnell vergleichen. +Oder verwenden Sie direkt ein bestimmtes Bundle: -## Beitragsfluss +```bash +npm create particles@latest +npm create confetti@latest +npm create ribbons@latest +``` -Wenn Sie ein wiederverwendbares Design- oder Integrationsrezept erstellen: +Für die nicht-interaktive Nutzung: -1. Forken Sie das Hauptmonorepo. -2. Fügen Sie Ihre Vorlage mit klaren Einrichtungs- und Ausführungsanweisungen hinzu. -3. Öffnen Sie eine Pull-Anfrage und fügen Sie Screenshots/GIFs und Paketversionen hinzu. +```bash +npx tsparticles-create app my-project --template scaffold --framework react +npx tsparticles-create app my-project --template confetti --framework vanilla +``` -## Verwandte Ordner +## Scaffold-Vorlagen -- Hauptmonorepo: -- Vorlagen: -- Voreinstellungen: -- Paletten: +Scaffold-Vorlagen bieten ein minimales Vite + TypeScript-Projektgerüst mit vorinstalliertem tsParticles. Sie sind für die folgenden Frameworks verfügbar: + +| Framework | CLI-Option | Paket | +| --------- | --------------------- | -------------------------------- | +| Vanilla | `--framework vanilla` | `@tsparticles/template-scaffold` | +| React | `--framework react` | `@tsparticles/template-scaffold` | +| Vue 3 | `--framework vue3` | `@tsparticles/template-scaffold` | +| Angular | `--framework angular` | `@tsparticles/template-scaffold` | +| Svelte | `--framework svelte` | `@tsparticles/template-scaffold` | +| Solid | `--framework solid` | `@tsparticles/template-scaffold` | + +Beispiel: + +```bash +npx tsparticles-create app my-react-app --template scaffold --framework react +cd my-react-app +npm install +npm run dev +``` + +## Anwendungsfall-Vorlagen + +Anwendungsfall-Vorlagen sind vollständige Beispielanwendungen, die die praktische Verwendung von tsParticles demonstrieren. + +| Vorlage | Beschreibung | CLI-Vorlagenname | Paket | +| ----------- | -------------------------------------------------- | ---------------- | --------------------------------- | +| Login | Login-/Registrierungsseite mit Partikelhintergrund | `login` | `@tsparticles/template-login` | +| Portfolio | Persönliches Portfolio mit animiertem Hero-Bereich | `portfolio` | `@tsparticles/template-portfolio` | +| Landing | Marketing-Landingpage mit wirkungsvollen Partikeln | `landing` | `@tsparticles/template-landing` | +| Tic Tac Toe | Tic-Tac-Toe-Spiel mit Konfetti-Feier | `tictactoe` | `@tsparticles/template-tictactoe` | +| Confetti | Konfetti-Kanonen-Demo | `confetti` | `@tsparticles/template-confetti` | +| Ribbons | Bandanimations-Demo | `ribbons` | `@tsparticles/template-ribbons` | +| Particles | Klassisches particles.js-ähnliches Demo | `particles` | `@tsparticles/template-particles` | + +Beispiel: + +```bash +npx tsparticles-create app my-portfolio --template portfolio --framework vanilla +cd my-portfolio +npm install +npm run dev +``` + +## npm create-Wrapper + +Für bundlespezifische Vorlagen können Sie dedizierte npm create-Wrapper verwenden: + +| Befehl | Vorlage | Framework | Installiertes Bundle | +| ------------------------------- | ----------- | ---------- | ------------------------ | +| `npm create tsparticles@latest` | Interaktiv | Interaktiv | Benutzerwahl | +| `npm create particles@latest` | `particles` | Vanilla | `@tsparticles/particles` | +| `npm create confetti@latest` | `confetti` | Vanilla | `@tsparticles/confetti` | +| `npm create ribbons@latest` | `ribbons` | Vanilla | `@tsparticles/ribbons` | + +## CLI-Referenz + +```bash +tsparticles-create app [destination] [options] + +Options: + --template Template to use (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles) + --framework Framework (vanilla|react|vue3|angular|svelte|solid) + --skip-install Skip npm install after scaffolding + -h, --help Display help +``` ## Verwandte Seiten diff --git a/websites/website/docs/de/guides/angular.md b/websites/website/docs/de/guides/angular.md index ab979aba5c9..6dc800d7567 100644 --- a/websites/website/docs/de/guides/angular.md +++ b/websites/website/docs/de/guides/angular.md @@ -609,11 +609,12 @@ export class AppComponent implements OnInit { ### `ngx-particles` Eingaben -| Eingabe | Typ | Standard | Beschreibung | -| --------- | ---------------- | --------------- | ------------------------------ | -| `id` | `string` | `"tsparticles"` | Canvas-Element-ID | -| `options` | `ISourceOptions` | `{}` | Partikel-Konfiguration | -| `url` | `string` | — | Remote-JSON-Konfigurations-URL | +| Eingabe | Typ | Standard | Beschreibung | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | Canvas-Element-ID | +| `options` | `ISourceOptions` | `{}` | Partikel-Konfiguration | +| `url` | `string` | — | Remote-JSON-Konfigurations-URL | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | ### `ngx-particles` Ausgaben @@ -623,6 +624,15 @@ export class AppComponent implements OnInit { --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Fehlerbehebung - **Leere / unsichtbare Canvas** — Stellen Sie sicher, dass das übergeordnete Element eine definierte Höhe hat (z. B. `height: 100vh`). Die Canvas übernimmt die Container-Abmessungen. diff --git a/websites/website/docs/de/guides/astro.md b/websites/website/docs/de/guides/astro.md index 59a0f7ee3dc..c237c66ee07 100644 --- a/websites/website/docs/de/guides/astro.md +++ b/websites/website/docs/de/guides/astro.md @@ -373,12 +373,22 @@ const options: ISourceOptions = { ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Komponenten-Eigenschaften -| Eigenschaft | Typ | Standard | Beschreibung | -| -------------------- | ---------------- | ------------------------- | ------------------------------------------------ | -| `id` | `string` | `"tsparticles"` | DOM-Element-ID für den Container | -| `options` | `ISourceOptions` | `{}` | Vollständiges tsParticles-Konfigurationsobjekt | -| `url` | `string` | — | Konfiguration von einer Remote-JSON-URL laden | -| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | CSS-Klasse für das Canvas-Element | -| `container` | `object` | — | Vorhandene `Container`-Instanz (fortgeschritten) | +| Eigenschaft | Typ | Standard | Beschreibung | +| -------------------- | ---------------- | ------------------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | DOM-Element-ID für den Container | +| `options` | `ISourceOptions` | `{}` | Vollständiges tsParticles-Konfigurationsobjekt | +| `url` | `string` | — | Konfiguration von einer Remote-JSON-URL laden | +| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | CSS-Klasse für das Canvas-Element | +| `container` | `object` | — | Vorhandene `Container`-Instanz (fortgeschritten) | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | diff --git a/websites/website/docs/de/guides/ember.md b/websites/website/docs/de/guides/ember.md index fa8e00bcdf6..b8f13f57d97 100644 --- a/websites/website/docs/de/guides/ember.md +++ b/websites/website/docs/de/guides/ember.md @@ -180,7 +180,7 @@ export default class ApplicationController extends Controller { @action loadedCallback(container: Container) { - console.log("Partikel geladen", container.id); + console.log("Partikel geladen", container?.id); // Beispiel für programmatische Steuerung: setTimeout(() => { @@ -251,6 +251,15 @@ Der `@tracked`-Dekorator stellt sicher, dass die Vorlage automatisch neu gerende --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## TypeScript-Beispiel Nachfolgend ein vollständiger, typisierter Ember-Anwendungs-Controller, der das vollständige Integrationsmuster mit Slim-Preset, Interaktivität und Lebenszyklus-Management demonstriert. @@ -319,9 +328,9 @@ export default class ApplicationController extends Controller { } @action - private handleParticlesLoaded(container: Container): void { + private handleParticlesLoaded(container?: Container): void { this.container = container; - console.log("Partikel geladen in Container:", container.id); + console.log("Partikel geladen in Container:", container?.id); } } ``` diff --git a/websites/website/docs/de/guides/inferno.md b/websites/website/docs/de/guides/inferno.md index a8065d1d4be..0e81b0e0620 100644 --- a/websites/website/docs/de/guides/inferno.md +++ b/websites/website/docs/de/guides/inferno.md @@ -298,6 +298,15 @@ render(, document.getElementById("app")); --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## TypeScript-Beispiel Hier ist eine vollständige, typisierte Inferno-Anwendung mit einer responsiven Partikel-Konfiguration und Vollbild-Hintergrund. diff --git a/websites/website/docs/de/guides/jquery.md b/websites/website/docs/de/guides/jquery.md index fd9c3254ad6..452b45cc5b8 100644 --- a/websites/website/docs/de/guides/jquery.md +++ b/websites/website/docs/de/guides/jquery.md @@ -263,6 +263,15 @@ Nachfolgend eine vollständige, in sich geschlossene HTML-Seite, die tsParticles ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## API-Referenz | Methode | Beschreibung | diff --git a/websites/website/docs/de/guides/lit.md b/websites/website/docs/de/guides/lit.md index 9af3712a9f3..2c0e7288dc4 100644 --- a/websites/website/docs/de/guides/lit.md +++ b/websites/website/docs/de/guides/lit.md @@ -258,6 +258,15 @@ class ParticlesBackground extends LitElement { } ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Dynamische Aktualisierungen Da `` Lits reaktive Eigenschaften verwendet, führt eine Änderung der `options`-Eigenschaft automatisch zu einer Aktualisierung der Partikel: diff --git a/websites/website/docs/de/guides/nextjs.md b/websites/website/docs/de/guides/nextjs.md index 6e314e3edd5..a1319cab5aa 100644 --- a/websites/website/docs/de/guides/nextjs.md +++ b/websites/website/docs/de/guides/nextjs.md @@ -476,6 +476,15 @@ export default function ParticlesComponent() { Beachten Sie, dass der Pages Router **nicht** `"use client"` erfordert, da Seitenkomponenten standardmäßig bereits clientseitig gerendert werden. +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Fehlerbehebung | Symptom | Ursache | Lösung | diff --git a/websites/website/docs/de/guides/nuxt.md b/websites/website/docs/de/guides/nuxt.md index c160da72b7f..5aa86a37cd7 100644 --- a/websites/website/docs/de/guides/nuxt.md +++ b/websites/website/docs/de/guides/nuxt.md @@ -236,13 +236,7 @@ Die ``-Komponente sendet mehrere Lebenszyklus-Ereignisse: ```vue @@ -258,25 +252,15 @@ const options = { }, }; -const onInit = (engine: Engine) => { - console.log("Engine initialisiert", engine); -}; - -const onLoaded = (container: Container) => { - console.log("Container geladen", container.id); -}; - -const onDestroy = () => { - console.log("Container zerstört"); +const onLoaded = (container?: Container) => { + console.log("Container geladen", container?.id); }; ``` -| Ereignis | Payload | Beschreibung | -| -------------------- | ----------- | ------------------------------------------------------------------------------- | -| `@particles-init` | `Engine` | Wird einmal ausgelöst, wenn die tsParticles-Engine initialisiert wird | -| `@particles-loaded` | `Container` | Wird jedes Mal ausgelöst, wenn der Container das Laden oder Neuladen abschließt | -| `@particles-destroy` | keins | Wird ausgelöst, wenn der Container zerstört wird | +| Ereignis | Payload | Beschreibung | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------- | +| `@particles-loaded` | `Container \| undefined` | Wird jedes Mal ausgelöst, wenn der Container das Laden oder Neuladen abschließt | ## Vollständiges TypeScript-Beispiel @@ -286,12 +270,7 @@ Eine vollständige, typisierte Komponente mit expliziten Importen und Lebenszykl ``` -Alternativ verwenden Sie die integrierte [themes](https://particles.js.org/docs/interfaces/Options_Interfaces_IOptions.IOptions.html#themes)-Option und die `theme`-Eigenschaft am Container für eine konfigurationsloses Umschalten. +Die ``-Komponente unterstützt auch eine `theme`-Prop für konfigurationsloses Umschalten. Wenn sich die `theme`-Prop ändert, wendet die Komponente das neue Theme an, ohne den Container zu zerstören und neu zu erstellen: + +```vue + +``` + +> **Hinweis:** Die `theme`-Prop erfordert das optionale Paket `@tsparticles/plugin-themes`. Ohne dieses ist die `theme`-Prop ein sicherer No-op — es wird kein Fehler ausgelöst, aber die Theme-Änderung wird ignoriert. --- @@ -422,14 +400,9 @@ npm install @tsparticles/configs ```vue + +> **Hinweis:** Registrieren Sie `loadLinksPreset` im Einstiegspunkt Ihrer App über den `init`-Callback des Plugins +(siehe [Grundlegende Verwendung](#grundlegende-verwendung)). ``` Durchstöbern Sie die verfügbaren Konfigurationen im `@tsparticles/configs`-Paket für sofort einsatzbereite Layouts. @@ -472,27 +448,16 @@ createApp(App) Die Engine ist dann global verfügbar und alle ``-Instanzen teilen sie. -### 2. Init auf Komponentenebene - -Übergeben Sie einen `:init`-Callback an jede ``-Instanz. Nützlich, wenn verschiedene Komponenten unterschiedliche Pluginsätze benötigen: - -```vue - -``` - -### 3. Particles Provider (Composition API) +### 2. Particles Provider (Composition API) -Verwenden Sie den Provider, um programmatisch auf die Engine zuzugreifen: +Use the provider to access the engine programmatically: ```vue ``` @@ -600,17 +560,16 @@ const particlesLoaded = async (container: Container): Promise => { ## API-Referenz -| Eigenschaft | Typ | Standard | Beschreibung | -| ----------- | ----------------------------------- | --------------- | -------------------------------------- | -| `id` | `string` | `"tsparticles"` | Canvas-Element-ID | -| `options` | `ISourceOptions` | `{}` | Partikel-Konfiguration | -| `init` | `(engine: Engine) => Promise` | — | Engine-Initialisierungs-Callback | -| `url` | `string` | — | URL zum Laden einer JSON-Konfiguration | +| Prop | Type | Default | Description | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | Canvas-Element-ID | +| `options` | `ISourceOptions` | `{}` | Partikel-Konfiguration | +| `url` | `string` | — | URL zum Laden einer JSON-Konfiguration | +| `theme` | `string` | — | Name des anzuwendenden Themes (erfordert `@tsparticles/plugin-themes`; sicherer No-op, falls nicht vorhanden) | | Ereignis | Payload | Beschreibung | | ------------------- | ----------- | ---------------------------------------------------------------- | | `@particles-loaded` | `Container` | Wird ausgelöst, wenn der Container vollständig initialisiert ist | -| `@particles-init` | `Engine` | Wird ausgelöst, nachdem die Engine initialisiert wurde | --- diff --git a/websites/website/docs/de/guides/webcomponents.md b/websites/website/docs/de/guides/webcomponents.md index 6cc9446f597..aeccf170889 100644 --- a/websites/website/docs/de/guides/webcomponents.md +++ b/websites/website/docs/de/guides/webcomponents.md @@ -347,6 +347,15 @@ Eine vollständige HTML-Seite mit dem Web Components-Modul und CDN-Skripten: ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## API-Referenz | Export / Eigenschaft | Typ | Beschreibung | diff --git a/websites/website/docs/demos/recipes/ribbons.md b/websites/website/docs/demos/recipes/ribbons.md index 4b76f63f0f2..383441193b9 100644 --- a/websites/website/docs/demos/recipes/ribbons.md +++ b/websites/website/docs/demos/recipes/ribbons.md @@ -55,7 +55,7 @@ By default each ribbon particle spawns at a random x position across the full ca import { ribbons } from "@tsparticles/ribbons"; await ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); ``` diff --git a/websites/website/docs/es/demos/recipes/ribbons.md b/websites/website/docs/es/demos/recipes/ribbons.md index 344fde984c0..c0d367cf588 100644 --- a/websites/website/docs/es/demos/recipes/ribbons.md +++ b/websites/website/docs/es/demos/recipes/ribbons.md @@ -57,7 +57,7 @@ Por defecto, cada partícula de ribbon aparece en una posición x aleatoria en t import { ribbons } from "@tsparticles/ribbons"; await ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); ``` diff --git a/websites/website/docs/es/guide/getting-started.md b/websites/website/docs/es/guide/getting-started.md index ae6a4d00dc8..5060944ab97 100644 --- a/websites/website/docs/es/guide/getting-started.md +++ b/websites/website/docs/es/guide/getting-started.md @@ -2,6 +2,19 @@ tsParticles es una librería JavaScript/TypeScript para crear animaciones de partículas, confeti, fuegos artificiales y mucho más. Funciona en cualquier navegador moderno y está disponible como paquete npm o vía CDN con etiquetas ` + +``` + ## Reglas practicas - Manten nombres de extension unicos (por ejemplo `app-*` o prefijo de empresa). diff --git a/websites/website/docs/es/guide/templates-resources.md b/websites/website/docs/es/guide/templates-resources.md index 714d4a63e45..b27a42efd13 100644 --- a/websites/website/docs/es/guide/templates-resources.md +++ b/websites/website/docs/es/guide/templates-resources.md @@ -1,35 +1,100 @@ # Plantillas y recursos -Las plantillas se mantienen en el monorepo principal en la carpeta `templates`. +tsParticles proporciona dos categorías de plantillas: **plantillas de andamio** (esqueletos de framework) y **plantillas de caso de uso** (aplicaciones de ejemplo completas). -## Plantillas oficiales +## Inicio rápido con CLI -- Carpeta de plantillas: -- Incluye configuraciones iniciales para JavaScript básico y múltiples marcos. +La forma más fácil de usar cualquier plantilla es a través de la CLI: -## Cuándo usar plantillas +```bash +npm create tsparticles@latest +``` -- Quiere una línea base lista con la estructura del proyecto ya cableada. -- Necesita ejemplos específicos del framework antes de crear wrappers personalizados. -- Quiere comparar opciones de paquetes (`basic`, `slim`, `full`, `all`) rápidamente. +O use un bundle específico directamente: -## Flujo de contribución +```bash +npm create particles@latest +npm create confetti@latest +npm create ribbons@latest +``` -Si crea un diseño reutilizable o una receta de integración: +Para uso no interactivo: -1. Bifurca el monorepo principal. -2. Agregue su plantilla con instrucciones claras de configuración y ejecución. -3. Abra una solicitud de extracción e incluya capturas de pantalla/gif y versiones del paquete. +```bash +npx tsparticles-create app my-project --template scaffold --framework react +npx tsparticles-create app my-project --template confetti --framework vanilla +``` -## Carpetas relacionadas +## Plantillas de andamio -- Monorrepo principal: -- Plantillas: -- Preajustes: -- Paletas: +Las plantillas de andamio proporcionan un esqueleto de proyecto mínimo con Vite + TypeScript y tsParticles preconfigurado. Están disponibles para los siguientes frameworks: + +| Framework | Opción CLI | Paquete | +| --------- | --------------------- | -------------------------------- | +| Vanilla | `--framework vanilla` | `@tsparticles/template-scaffold` | +| React | `--framework react` | `@tsparticles/template-scaffold` | +| Vue 3 | `--framework vue3` | `@tsparticles/template-scaffold` | +| Angular | `--framework angular` | `@tsparticles/template-scaffold` | +| Svelte | `--framework svelte` | `@tsparticles/template-scaffold` | +| Solid | `--framework solid` | `@tsparticles/template-scaffold` | + +Ejemplo: + +```bash +npx tsparticles-create app my-react-app --template scaffold --framework react +cd my-react-app +npm install +npm run dev +``` + +## Plantillas de caso de uso + +Las plantillas de caso de uso son aplicaciones de ejemplo completas que demuestran el uso real de tsParticles. + +| Plantilla | Descripción | Nombre CLI de plantilla | Paquete | +| ----------- | ------------------------------------------------------------ | ----------------------- | --------------------------------- | +| Login | Página de inicio de sesión/registro con fondo de partículas | `login` | `@tsparticles/template-login` | +| Portfolio | Portafolio personal con héroe animado | `portfolio` | `@tsparticles/template-portfolio` | +| Landing | Página de aterrizaje de marketing con partículas impactantes | `landing` | `@tsparticles/template-landing` | +| Tic Tac Toe | Juego de tres en raya con celebración de confeti | `tictactoe` | `@tsparticles/template-tictactoe` | +| Confetti | Demo de cañón de confeti | `confetti` | `@tsparticles/template-confetti` | +| Ribbons | Demo de animación de cintas | `ribbons` | `@tsparticles/template-ribbons` | +| Particles | Demo clásico al estilo particles.js | `particles` | `@tsparticles/template-particles` | + +Ejemplo: + +```bash +npx tsparticles-create app my-portfolio --template portfolio --framework vanilla +cd my-portfolio +npm install +npm run dev +``` + +## Wrappers de npm create + +Para plantillas específicas de un bundle, puede usar wrappers dedicados de npm create: + +| Comando | Plantilla | Framework | Bundle instalado | +| ------------------------------- | ----------- | ----------- | ------------------------ | +| `npm create tsparticles@latest` | Interactiva | Interactivo | Elección del usuario | +| `npm create particles@latest` | `particles` | Vanilla | `@tsparticles/particles` | +| `npm create confetti@latest` | `confetti` | Vanilla | `@tsparticles/confetti` | +| `npm create ribbons@latest` | `ribbons` | Vanilla | `@tsparticles/ribbons` | + +## Referencia de CLI + +```bash +tsparticles-create app [destination] [options] + +Options: + --template Plantilla a usar (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles) + --framework Framework (vanilla|react|vue3|angular|svelte|solid) + --skip-install Omitir npm install después del andamiaje + -h, --help Mostrar ayuda +``` ## Páginas relacionadas -- [`/guide/frameworks`](/es/guide/frameworks) -- [`/guide/wrappers`](/es/guide/wrappers) -- [`/demos/`](/es/demos/) +- [`/guide/frameworks`](/guide/frameworks) +- [`/guide/wrappers`](/guide/wrappers) +- [`/demos/`](/demos/) diff --git a/websites/website/docs/es/guides/angular.md b/websites/website/docs/es/guides/angular.md index bdaa2c5fb3d..c67baa67243 100644 --- a/websites/website/docs/es/guides/angular.md +++ b/websites/website/docs/es/guides/angular.md @@ -609,11 +609,12 @@ export class AppComponent implements OnInit { ### Entradas de `ngx-particles` -| Entrada | Tipo | Por Defecto | Descripción | -| --------- | ---------------- | --------------- | -------------------------------- | -| `id` | `string` | `"tsparticles"` | ID del elemento canvas | -| `options` | `ISourceOptions` | `{}` | Configuración de partículas | -| `url` | `string` | — | URL remota de configuración JSON | +| Entrada | Tipo | Por Defecto | Descripción | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID del elemento canvas | +| `options` | `ISourceOptions` | `{}` | Configuración de partículas | +| `url` | `string` | — | URL remota de configuración JSON | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | ### Salidas de `ngx-particles` @@ -623,6 +624,15 @@ export class AppComponent implements OnInit { --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Solución de Problemas - **Canvas en blanco / invisible** — Asegúrate de que el elemento padre tenga una altura definida (ej., `height: 100vh`). El canvas toma las dimensiones del contenedor. diff --git a/websites/website/docs/es/guides/astro.md b/websites/website/docs/es/guides/astro.md index 0eda59b744a..4b75b5396b6 100644 --- a/websites/website/docs/es/guides/astro.md +++ b/websites/website/docs/es/guides/astro.md @@ -373,12 +373,22 @@ const options: ISourceOptions = { ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Propiedades del Componente -| Propiedad | Tipo | Por Defecto | Descripción | -| -------------------- | ---------------- | ------------------------- | ------------------------------------------------ | -| `id` | `string` | `"tsparticles"` | ID del elemento DOM para el contenedor | -| `options` | `ISourceOptions` | `{}` | Objeto completo de configuración de tsParticles | -| `url` | `string` | — | Cargar configuración desde una URL JSON remota | -| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | Clase CSS para el elemento canvas | -| `container` | `object` | — | Instancia de `Container` preexistente (avanzado) | +| Propiedad | Tipo | Por Defecto | Descripción | +| -------------------- | ---------------- | ------------------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID del elemento DOM para el contenedor | +| `options` | `ISourceOptions` | `{}` | Objeto completo de configuración de tsParticles | +| `url` | `string` | — | Cargar configuración desde una URL JSON remota | +| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | Clase CSS para el elemento canvas | +| `container` | `object` | — | Instancia de `Container` preexistente (avanzado) | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | diff --git a/websites/website/docs/es/guides/ember.md b/websites/website/docs/es/guides/ember.md index ea7cc64342c..15b154c1add 100644 --- a/websites/website/docs/es/guides/ember.md +++ b/websites/website/docs/es/guides/ember.md @@ -180,7 +180,7 @@ export default class ApplicationController extends Controller { @action loadedCallback(container: Container) { - console.log("Partículas cargadas", container.id); + console.log("Partículas cargadas", container?.id); // Ejemplo de control programático: setTimeout(() => { @@ -251,6 +251,15 @@ El decorador `@tracked` asegura que la plantilla se vuelva a renderizar automát --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Ejemplo TypeScript A continuación se muestra un controlador de aplicación Ember tipado completo que demuestra el patrón de integración completo con preset slim, interactividad y gestión del ciclo de vida. @@ -319,9 +328,9 @@ export default class ApplicationController extends Controller { } @action - private handleParticlesLoaded(container: Container): void { + private handleParticlesLoaded(container?: Container): void { this.container = container; - console.log("Partículas cargadas en el contenedor:", container.id); + console.log("Partículas cargadas en el contenedor:", container?.id); } } ``` diff --git a/websites/website/docs/es/guides/inferno.md b/websites/website/docs/es/guides/inferno.md index 91fda6c6d62..9bea948a3da 100644 --- a/websites/website/docs/es/guides/inferno.md +++ b/websites/website/docs/es/guides/inferno.md @@ -298,6 +298,15 @@ render(, document.getElementById("app")); --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Ejemplo TypeScript Aquí hay una aplicación Inferno completa y tipada con una configuración de partículas adaptable y fondo de pantalla completa. diff --git a/websites/website/docs/es/guides/jquery.md b/websites/website/docs/es/guides/jquery.md index 07abb8f6619..92a87b955ab 100644 --- a/websites/website/docs/es/guides/jquery.md +++ b/websites/website/docs/es/guides/jquery.md @@ -263,6 +263,15 @@ A continuación se muestra una página HTML completa y autónoma que carga tsPar ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Referencia de API | Método | Descripción | diff --git a/websites/website/docs/es/guides/lit.md b/websites/website/docs/es/guides/lit.md index d6b4a74ee79..9b220f62aa4 100644 --- a/websites/website/docs/es/guides/lit.md +++ b/websites/website/docs/es/guides/lit.md @@ -258,6 +258,15 @@ class ParticlesBackground extends LitElement { } ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Actualizaciones Dinámicas Debido a que `` usa las propiedades reactivas de Lit, cambiar la propiedad `options` actualiza automáticamente las partículas: diff --git a/websites/website/docs/es/guides/nextjs.md b/websites/website/docs/es/guides/nextjs.md index 1a9982a6334..a19255f61a0 100644 --- a/websites/website/docs/es/guides/nextjs.md +++ b/websites/website/docs/es/guides/nextjs.md @@ -476,6 +476,15 @@ export default function ParticlesComponent() { Ten en cuenta que el Pages Router **no** requiere `"use client"` porque los componentes de página ya se renderizan en el cliente por defecto. +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Solución de Problemas | Síntoma | Causa | Solución | diff --git a/websites/website/docs/es/guides/nuxt.md b/websites/website/docs/es/guides/nuxt.md index c06c1b75597..402750b3fce 100644 --- a/websites/website/docs/es/guides/nuxt.md +++ b/websites/website/docs/es/guides/nuxt.md @@ -236,13 +236,7 @@ El componente `` emite varios eventos del ciclo de vida: ```vue @@ -258,25 +252,15 @@ const options = { }, }; -const onInit = (engine: Engine) => { - console.log("Motor inicializado", engine); -}; - -const onLoaded = (container: Container) => { - console.log("Contenedor cargado", container.id); -}; - -const onDestroy = () => { - console.log("Contenedor destruido"); +const onLoaded = (container?: Container) => { + console.log("Contenedor cargado", container?.id); }; ``` -| Evento | Carga | Descripción | -| -------------------- | ----------- | ---------------------------------------------------------------------- | -| `@particles-init` | `Engine` | Se dispara una vez cuando el motor tsParticles se inicializa | -| `@particles-loaded` | `Container` | Se dispara cada vez que el contenedor termina de cargarse o recargarse | -| `@particles-destroy` | ninguno | Se dispara cuando el contenedor se destruye | +| Evento | Carga | Descripción | +| ------------------- | ------------------------ | ---------------------------------------------------------------------- | +| `@particles-loaded` | `Container \| undefined` | Se dispara cada vez que el contenedor termina de cargarse o recargarse | ## Ejemplo TypeScript Completo @@ -286,12 +270,7 @@ Un componente tipado completo con importaciones explícitas y conocimiento del c ``` -Alternativamente, usa la opción incorporada [themes](https://particles.js.org/docs/interfaces/Options_Interfaces_IOptions.IOptions.html#themes) y la propiedad `theme` en el contenedor para un cambio sin configuración. +El componente `` también soporta una prop `theme` para el cambio sin configuración. Cuando la prop `theme` cambia, el componente aplica el nuevo tema sin destruir y recrear el contenedor: + +```vue + +``` + +> **Nota:** La prop `theme` requiere el paquete opcional `@tsparticles/plugin-themes`. Sin él, la prop `theme` es un no-op seguro — no se lanza ningún error, pero el cambio de tema se ignora. --- @@ -422,14 +400,9 @@ npm install @tsparticles/configs ```vue + +> **Nota:** Registra el `loadLinksPreset` en el punto de entrada de tu aplicación a través del callback `init` del +plugin (consulta [Uso Básico](#uso-básico)). ``` Explora las configuraciones disponibles en el paquete `@tsparticles/configs` para diseños listos para usar. @@ -472,27 +448,16 @@ createApp(App) El motor está entonces disponible globalmente y todas las instancias de `` lo comparten. -### 2. Init a Nivel de Componente - -Pasa un callback `:init` a cada instancia de ``. Útil cuando diferentes componentes necesitan diferentes conjuntos de plugins: - -```vue - -``` - -### 3. Particles Provider (Composition API) +### 2. Particles Provider (Composition API) -Usa el provider para acceder al motor programáticamente: +Use the provider to access the engine programmatically: ```vue ``` @@ -600,17 +560,16 @@ const particlesLoaded = async (container: Container): Promise => { ## Referencia de API -| Prop | Tipo | Por Defecto | Descripción | -| --------- | ----------------------------------- | --------------- | ------------------------------------ | -| `id` | `string` | `"tsparticles"` | ID del elemento canvas | -| `options` | `ISourceOptions` | `{}` | Configuración de partículas | -| `init` | `(engine: Engine) => Promise` | — | Callback de inicialización del motor | -| `url` | `string` | — | URL para cargar configuración JSON | +| Prop | Type | Default | Description | +| --------- | ---------------- | --------------- | --------------------------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID del elemento canvas | +| `options` | `ISourceOptions` | `{}` | Configuración de partículas | +| `url` | `string` | — | URL para cargar configuración JSON | +| `theme` | `string` | — | Nombre del tema a aplicar (requiere `@tsparticles/plugin-themes`; seguro si no está presente) | | Evento | Carga | Descripción | | ------------------- | ----------- | --------------------------------------------------------------- | | `@particles-loaded` | `Container` | Se dispara cuando el contenedor está completamente inicializado | -| `@particles-init` | `Engine` | Se dispara después de que el motor se inicializa | --- diff --git a/websites/website/docs/es/guides/webcomponents.md b/websites/website/docs/es/guides/webcomponents.md index 303f88c3d65..38eeaaa05af 100644 --- a/websites/website/docs/es/guides/webcomponents.md +++ b/websites/website/docs/es/guides/webcomponents.md @@ -347,6 +347,15 @@ Una página HTML completa usando el módulo de Web Components con scripts CDN: ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Referencia de API | Export / Propiedad | Tipo | Descripción | diff --git a/websites/website/docs/fr/demos/recipes/ribbons.md b/websites/website/docs/fr/demos/recipes/ribbons.md index 8dc7815b5a5..e15eb60fdcb 100644 --- a/websites/website/docs/fr/demos/recipes/ribbons.md +++ b/websites/website/docs/fr/demos/recipes/ribbons.md @@ -57,7 +57,7 @@ Par défaut, chaque particule de ribbon apparaît à une position x aléatoire s import { ribbons } from "@tsparticles/ribbons"; await ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); ``` diff --git a/websites/website/docs/fr/guide/getting-started.md b/websites/website/docs/fr/guide/getting-started.md index 4821e3caeb3..c52d2f6f4d7 100644 --- a/websites/website/docs/fr/guide/getting-started.md +++ b/websites/website/docs/fr/guide/getting-started.md @@ -2,6 +2,19 @@ tsParticles est une bibliothèque JavaScript/TypeScript pour créer des animations de particules, confettis, feux d'artifice et bien plus. Elle fonctionne dans tous les navigateurs modernes et est disponible en package npm ou via CDN avec une balise ` + +``` + ## Regles pratiques - Gardez des noms d'extension uniques (par exemple `app-*` ou un prefixe d'entreprise). diff --git a/websites/website/docs/fr/guide/templates-resources.md b/websites/website/docs/fr/guide/templates-resources.md index d9e23625782..0690fe3388f 100644 --- a/websites/website/docs/fr/guide/templates-resources.md +++ b/websites/website/docs/fr/guide/templates-resources.md @@ -1,32 +1,97 @@ # Modèles et ressources -Les modèles sont conservés dans le monorepo principal sous le dossier `templates`. +tsParticles propose deux catégories de modèles : les **modèles d'échafaudage** (squelettes de framework) et les **modèles d'usage** (applications d'exemple complètes). -## Modèles officiels +## Démarrage rapide avec la CLI -- Dossier Modèles : -- Comprend des configurations de démarrage pour JavaScript Vanilla et plusieurs frameworks. +Le moyen le plus simple d'utiliser un modèle est via la CLI : -## Quand utiliser des modèles +```bash +npm create tsparticles@latest +``` -- Vous voulez une base de référence prête à l'emploi avec une structure de projet déjà câblée. -- Vous avez besoin d'exemples spécifiques au framework avant d'écrire des wrappers personnalisés. -- Vous souhaitez comparer rapidement les choix de bundles (`basic`, `slim`, `full`, `all`). +Ou utilisez directement un bundle spécifique : -## Flux de contribution +```bash +npm create particles@latest +npm create confetti@latest +npm create ribbons@latest +``` -Si vous créez une conception réutilisable ou une recette d'intégration : +Pour une utilisation non interactive : -1. Forkez le monorepo principal. -2. Ajoutez votre modèle avec des instructions claires de configuration et d'exécution. -3. Ouvrez une pull request et incluez des captures d'écran/gif et des versions de package. +```bash +npx tsparticles-create app my-project --template scaffold --framework react +npx tsparticles-create app my-project --template confetti --framework vanilla +``` -## Dossiers associés +## Modèles d'échafaudage -- Monorepo principal : -- Modèles : -- Préréglages : - -Palettes : +Les modèles d'échafaudage fournissent un squelette de projet Vite + TypeScript minimal avec tsParticles préconfiguré. Ils sont disponibles pour les frameworks suivants : + +| Framework | Option CLI | Package | +| --------- | --------------------- | -------------------------------- | +| Vanilla | `--framework vanilla` | `@tsparticles/template-scaffold` | +| React | `--framework react` | `@tsparticles/template-scaffold` | +| Vue 3 | `--framework vue3` | `@tsparticles/template-scaffold` | +| Angular | `--framework angular` | `@tsparticles/template-scaffold` | +| Svelte | `--framework svelte` | `@tsparticles/template-scaffold` | +| Solid | `--framework solid` | `@tsparticles/template-scaffold` | + +Exemple : + +```bash +npx tsparticles-create app my-react-app --template scaffold --framework react +cd my-react-app +npm install +npm run dev +``` + +## Modèles d'usage + +Les modèles d'usage sont des applications d'exemple complètes qui illustrent une utilisation réelle de tsParticles. + +| Modèle | Description | Nom du modèle CLI | Package | +| ----------- | --------------------------------------------------------- | ----------------- | --------------------------------- | +| Login | Page de connexion/inscription avec fond de particules | `login` | `@tsparticles/template-login` | +| Portfolio | Portfolio personnel avec hero animé | `portfolio` | `@tsparticles/template-portfolio` | +| Landing | Page d'atterrissage marketing avec particules percutantes | `landing` | `@tsparticles/template-landing` | +| Tic Tac Toe | Jeu de morpion avec célébration en confettis | `tictactoe` | `@tsparticles/template-tictactoe` | +| Confetti | Démo de canon à confettis | `confetti` | `@tsparticles/template-confetti` | +| Ribbons | Démo d'animation de rubans | `ribbons` | `@tsparticles/template-ribbons` | +| Particles | Démo classique style particles.js | `particles` | `@tsparticles/template-particles` | + +Exemple : + +```bash +npx tsparticles-create app my-portfolio --template portfolio --framework vanilla +cd my-portfolio +npm install +npm run dev +``` + +## Raccourcis npm create + +Pour les modèles spécifiques à un bundle, vous pouvez utiliser des raccourcis dédiés npm create : + +| Commande | Modèle | Framework | Bundle installé | +| ------------------------------- | ----------- | ---------- | ------------------------ | +| `npm create tsparticles@latest` | Interactif | Interactif | Choix de l'utilisateur | +| `npm create particles@latest` | `particles` | Vanilla | `@tsparticles/particles` | +| `npm create confetti@latest` | `confetti` | Vanilla | `@tsparticles/confetti` | +| `npm create ribbons@latest` | `ribbons` | Vanilla | `@tsparticles/ribbons` | + +## Référence CLI + +```bash +tsparticles-create app [destination] [options] + +Options: + --template Modèle à utiliser (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles) + --framework Framework (vanilla|react|vue3|angular|svelte|solid) + --skip-install Ignorer npm install après l'échafaudage + -h, --help Afficher l'aide +``` ## Pages connexes diff --git a/websites/website/docs/fr/guides/angular.md b/websites/website/docs/fr/guides/angular.md index c9c13f22f79..37c0f3f5822 100644 --- a/websites/website/docs/fr/guides/angular.md +++ b/websites/website/docs/fr/guides/angular.md @@ -609,11 +609,12 @@ export class AppComponent implements OnInit { ### Entrées `ngx-particles` -| Entrée | Type | Défaut | Description | -| --------- | ---------------- | --------------- | ---------------------------------- | -| `id` | `string` | `"tsparticles"` | ID de l'élément canvas | -| `options` | `ISourceOptions` | `{}` | Configuration des particules | -| `url` | `string` | — | URL de configuration JSON distante | +| Entrée | Type | Défaut | Description | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID de l'élément canvas | +| `options` | `ISourceOptions` | `{}` | Configuration des particules | +| `url` | `string` | — | URL de configuration JSON distante | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | ### Sorties `ngx-particles` @@ -623,6 +624,15 @@ export class AppComponent implements OnInit { --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Dépannage - **Canvas blanc / invisible** — Assurez-vous que l'élément parent a une hauteur définie (ex. `height: 100vh`). Le canvas prend les dimensions du conteneur. diff --git a/websites/website/docs/fr/guides/astro.md b/websites/website/docs/fr/guides/astro.md index 3601166740a..9d86ce8e9b3 100644 --- a/websites/website/docs/fr/guides/astro.md +++ b/websites/website/docs/fr/guides/astro.md @@ -373,12 +373,22 @@ const options: ISourceOptions = { ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Props du composant -| Prop | Type | Défaut | Description | -| -------------------- | ---------------- | ------------------------- | ----------------------------------------------------- | -| `id` | `string` | `"tsparticles"` | ID de l'élément DOM pour le conteneur | -| `options` | `ISourceOptions` | `{}` | Objet de configuration complet tsParticles | -| `url` | `string` | — | Charger la configuration depuis une URL JSON distante | -| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | Classe CSS pour l'élément canvas | -| `container` | `object` | — | Instance `Container` préexistante (avancé) | +| Prop | Type | Défaut | Description | +| -------------------- | ---------------- | ------------------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID de l'élément DOM pour le conteneur | +| `options` | `ISourceOptions` | `{}` | Objet de configuration complet tsParticles | +| `url` | `string` | — | Charger la configuration depuis une URL JSON distante | +| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | Classe CSS pour l'élément canvas | +| `container` | `object` | — | Instance `Container` préexistante (avancé) | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | diff --git a/websites/website/docs/fr/guides/ember.md b/websites/website/docs/fr/guides/ember.md index 9010de1e76a..89f99d05959 100644 --- a/websites/website/docs/fr/guides/ember.md +++ b/websites/website/docs/fr/guides/ember.md @@ -180,7 +180,7 @@ export default class ApplicationController extends Controller { @action loadedCallback(container: Container) { - console.log("Particules chargées", container.id); + console.log("Particules chargées", container?.id); // Exemple de contrôle programmatique : setTimeout(() => { @@ -251,6 +251,15 @@ Le décorateur `@tracked` garantit que le template se ré-affiche automatiquemen --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Exemple TypeScript Voici un contrôleur d'application Ember complet et typé démontrant le modèle d'intégration complet avec le préréglage slim, l'interactivité et la gestion du cycle de vie. @@ -319,9 +328,9 @@ export default class ApplicationController extends Controller { } @action - private handleParticlesLoaded(container: Container): void { + private handleParticlesLoaded(container?: Container): void { this.container = container; - console.log("Particules chargées dans le conteneur :", container.id); + console.log("Particules chargées dans le conteneur :", container?.id); } } ``` diff --git a/websites/website/docs/fr/guides/inferno.md b/websites/website/docs/fr/guides/inferno.md index 1075b41a084..ed00b0ca803 100644 --- a/websites/website/docs/fr/guides/inferno.md +++ b/websites/website/docs/fr/guides/inferno.md @@ -298,6 +298,15 @@ render(, document.getElementById("app")); --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Exemple TypeScript Voici une application Inferno complète et typée avec une configuration de particules réactive et un arrière-plan plein écran. diff --git a/websites/website/docs/fr/guides/jquery.md b/websites/website/docs/fr/guides/jquery.md index 420a49d1169..b7c8ef73d9c 100644 --- a/websites/website/docs/fr/guides/jquery.md +++ b/websites/website/docs/fr/guides/jquery.md @@ -263,6 +263,15 @@ Voici une page HTML complète et autonome qui charge tsParticles via CDN et affi ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Référence API | Méthode | Description | diff --git a/websites/website/docs/fr/guides/lit.md b/websites/website/docs/fr/guides/lit.md index 67a140d3efb..853b8654ca5 100644 --- a/websites/website/docs/fr/guides/lit.md +++ b/websites/website/docs/fr/guides/lit.md @@ -258,6 +258,15 @@ class ParticlesBackground extends LitElement { } ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Mises à jour dynamiques Comme `` utilise les propriétés réactives de Lit, changer la propriété `options` met automatiquement à jour les particules : diff --git a/websites/website/docs/fr/guides/nextjs.md b/websites/website/docs/fr/guides/nextjs.md index c406af8b971..f8ed6109c84 100644 --- a/websites/website/docs/fr/guides/nextjs.md +++ b/websites/website/docs/fr/guides/nextjs.md @@ -476,6 +476,15 @@ export default function ParticlesComponent() { Notez que le Pages Router ne nécessite **pas** `"use client"` car les composants de page sont déjà rendus côté client par défaut. +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Dépannage | Symptôme | Cause | Solution | diff --git a/websites/website/docs/fr/guides/nuxt.md b/websites/website/docs/fr/guides/nuxt.md index a79ba307783..2dde05740ac 100644 --- a/websites/website/docs/fr/guides/nuxt.md +++ b/websites/website/docs/fr/guides/nuxt.md @@ -236,13 +236,7 @@ Le composant `` émet plusieurs événements du cycle de vie : ```vue @@ -258,25 +252,15 @@ const options = { }, }; -const onInit = (engine: Engine) => { - console.log("Moteur initialisé", engine); -}; - -const onLoaded = (container: Container) => { - console.log("Conteneur chargé", container.id); -}; - -const onDestroy = () => { - console.log("Conteneur détruit"); +const onLoaded = (container?: Container) => { + console.log("Conteneur chargé", container?.id); }; ``` -| Événement | Payload | Description | -| -------------------- | ----------- | ----------------------------------------------------------------------- | -| `@particles-init` | `Engine` | Se déclenche une fois lorsque le moteur tsParticles s'initialise | -| `@particles-loaded` | `Container` | Se déclenche chaque fois que le conteneur finit de charger ou recharger | -| `@particles-destroy` | aucun | Se déclenche lorsque le conteneur est détruit | +| Événement | Payload | Description | +| ------------------- | ------------------------ | ----------------------------------------------------------------------- | +| `@particles-loaded` | `Container \| undefined` | Se déclenche chaque fois que le conteneur finit de charger ou recharger | ## Exemple TypeScript complet @@ -286,12 +270,7 @@ Un composant typé complet avec des importations explicites et la gestion du cyc ``` -Alternativement, utilisez l'option intégrée [themes](https://particles.js.org/docs/interfaces/Options_Interfaces_IOptions.IOptions.html#themes) et la propriété `theme` du conteneur pour un changement sans configuration. +Le composant `` supporte également une prop `theme` pour une commutation sans configuration. Lorsque la prop `theme` change, le composant applique le nouveau thème sans détruire et recréer le conteneur : + +```vue + +``` + +> **Note :** La prop `theme` nécessite le paquet optionnel `@tsparticles/plugin-themes`. Sans lui, la prop `theme` est un no-op sans danger — aucune erreur n'est générée, mais le changement de thème est ignoré. --- @@ -422,14 +400,9 @@ npm install @tsparticles/configs ```vue + +> **Note :** Enregistrez le `loadLinksPreset` dans le point d'entrée de votre application via le callback `init` du +plugin (voir [Utilisation de base](#utilisation-de-base)). ``` Parcourez les configurations disponibles dans le package `@tsparticles/configs` pour des mises en page prêtes à l'emploi. @@ -472,27 +448,16 @@ createApp(App) Le moteur est alors disponible globalement et toutes les instances `` le partagent. -### 2. Init au niveau du composant - -Passez un callback `:init` à chaque instance ``. Utile lorsque différents composants ont besoin de différents ensembles de plugins : - -```vue - -``` - -### 3. Provider Particles (Composition API) +### 2. Particles Provider (Composition API) -Utilisez le provider pour accéder au moteur par programmation : +Use the provider to access the engine programmatically: ```vue ``` @@ -600,17 +560,16 @@ const particlesLoaded = async (container: Container): Promise => { ## Référence API -| Prop | Type | Défaut | Description | -| --------- | ----------------------------------- | --------------- | ----------------------------------- | -| `id` | `string` | `"tsparticles"` | ID de l'élément canvas | -| `options` | `ISourceOptions` | `{}` | Configuration des particules | -| `init` | `(engine: Engine) => Promise` | — | Callback d'initialisation du moteur | -| `url` | `string` | — | URL pour charger une config JSON | +| Prop | Type | Default | Description | +| --------- | ---------------- | --------------- | ----------------------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | ID de l'élément canvas | +| `options` | `ISourceOptions` | `{}` | Configuration des particules | +| `url` | `string` | — | URL pour charger une config JSON | +| `theme` | `string` | — | Nom du thème à appliquer (nécessite `@tsparticles/plugin-themes` ; sans danger si absent) | | Événement | Payload | Description | | ------------------- | ----------- | ---------------------------------------------- | | `@particles-loaded` | `Container` | Se déclenche quand le conteneur est initialisé | -| `@particles-init` | `Engine` | Se déclenche après l'initialisation du moteur | --- diff --git a/websites/website/docs/fr/guides/webcomponents.md b/websites/website/docs/fr/guides/webcomponents.md index 751bf6fce0e..c13825585b8 100644 --- a/websites/website/docs/fr/guides/webcomponents.md +++ b/websites/website/docs/fr/guides/webcomponents.md @@ -347,6 +347,15 @@ Une page HTML complète utilisant le module Web Components avec des scripts CDN ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## Référence API | Export / Propriété | Type | Description | diff --git a/websites/website/docs/guide/getting-started.md b/websites/website/docs/guide/getting-started.md index 6f6095c0d09..3218ae0552b 100644 --- a/websites/website/docs/guide/getting-started.md +++ b/websites/website/docs/guide/getting-started.md @@ -2,6 +2,19 @@ tsParticles is a JavaScript/TypeScript library for creating particle animations, confetti, fireworks, and more. It works in any modern browser and is available as both an npm package and via CDN with ` + +``` + ## Next steps Choose an extension type above for step-by-step guides with inline code and package creation instructions. diff --git a/websites/website/docs/guide/templates-resources.md b/websites/website/docs/guide/templates-resources.md index b006b8f1a63..828aadb73cb 100644 --- a/websites/website/docs/guide/templates-resources.md +++ b/websites/website/docs/guide/templates-resources.md @@ -1,32 +1,97 @@ # Templates and Resources -Templates are maintained in the main monorepo under the `templates` folder. +tsParticles provides two categories of templates: **scaffold templates** (framework skeletons) and **use-case templates** (complete example applications). -## Official templates +## Quick start with CLI -- Templates folder: -- Includes starter setups for vanilla JavaScript and multiple frameworks. +The easiest way to use any template is through the CLI: -## When to use templates +```bash +npm create tsparticles@latest +``` -- You want a ready baseline with project structure already wired. -- You need framework-specific examples before writing custom wrappers. -- You want to compare bundle choices (`basic`, `slim`, `full`, `all`) quickly. +Or use a specific bundle directly: -## Contribution flow +```bash +npm create particles@latest +npm create confetti@latest +npm create ribbons@latest +``` -If you build a reusable design or integration recipe: +For non-interactive usage: -1. Fork the main monorepo. -2. Add your template with clear setup and run instructions. -3. Open a pull request and include screenshots/gif and package versions. +```bash +npx tsparticles-create app my-project --template scaffold --framework react +npx tsparticles-create app my-project --template confetti --framework vanilla +``` -## Related folders +## Scaffold templates -- Main monorepo: -- Templates: -- Presets: -- Palettes: +Scaffold templates provide a minimal Vite + TypeScript project skeleton with tsParticles pre-configured. They are available for the following frameworks: + +| Framework | CLI option | Package | +| --------- | --------------------- | -------------------------------- | +| Vanilla | `--framework vanilla` | `@tsparticles/template-scaffold` | +| React | `--framework react` | `@tsparticles/template-scaffold` | +| Vue 3 | `--framework vue3` | `@tsparticles/template-scaffold` | +| Angular | `--framework angular` | `@tsparticles/template-scaffold` | +| Svelte | `--framework svelte` | `@tsparticles/template-scaffold` | +| Solid | `--framework solid` | `@tsparticles/template-scaffold` | + +Example: + +```bash +npx tsparticles-create app my-react-app --template scaffold --framework react +cd my-react-app +npm install +npm run dev +``` + +## Use-case templates + +Use-case templates are complete example applications that demonstrate real-world tsParticles usage. + +| Template | Description | CLI template name | Package | +| ----------- | ----------------------------------------------- | ----------------- | --------------------------------- | +| Login | Login/register page with particle background | `login` | `@tsparticles/template-login` | +| Portfolio | Personal portfolio with animated hero | `portfolio` | `@tsparticles/template-portfolio` | +| Landing | Marketing landing page with impactful particles | `landing` | `@tsparticles/template-landing` | +| Tic Tac Toe | Tic-tac-toe game with confetti celebration | `tictactoe` | `@tsparticles/template-tictactoe` | +| Confetti | Confetti cannon demo | `confetti` | `@tsparticles/template-confetti` | +| Ribbons | Ribbon animation demo | `ribbons` | `@tsparticles/template-ribbons` | +| Particles | Classic particles.js-style demo | `particles` | `@tsparticles/template-particles` | + +Example: + +```bash +npx tsparticles-create app my-portfolio --template portfolio --framework vanilla +cd my-portfolio +npm install +npm run dev +``` + +## npm create wrappers + +For bundle-specific templates, you can use dedicated npm create wrappers: + +| Command | Template | Framework | Installed bundle | +| ------------------------------- | ----------- | ----------- | ------------------------ | +| `npm create tsparticles@latest` | Interactive | Interactive | User choice | +| `npm create particles@latest` | `particles` | Vanilla | `@tsparticles/particles` | +| `npm create confetti@latest` | `confetti` | Vanilla | `@tsparticles/confetti` | +| `npm create ribbons@latest` | `ribbons` | Vanilla | `@tsparticles/ribbons` | + +## CLI reference + +```bash +tsparticles-create app [destination] [options] + +Options: + --template Template to use (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles) + --framework Framework (vanilla|react|vue3|angular|svelte|solid) + --skip-install Skip npm install after scaffolding + -h, --help Display help +``` ## Related pages diff --git a/websites/website/docs/guides/angular.md b/websites/website/docs/guides/angular.md index a2423ac4ba6..42868ec914b 100644 --- a/websites/website/docs/guides/angular.md +++ b/websites/website/docs/guides/angular.md @@ -108,7 +108,7 @@ export class AppComponent implements OnInit { }, }; - particlesLoaded(container: Container): void { + particlesLoaded(container?: Container): void { console.log("Particles container loaded", container); } } @@ -366,7 +366,7 @@ export class ParticlesComponent implements OnInit { detectRetina: true, }; - particlesLoaded(container: Container): void { + particlesLoaded(container?: Container): void { console.log("Container loaded", container); } } @@ -390,7 +390,8 @@ The `ngx-particles` component emits the `particlesLoaded` event: import type { Container } from "@tsparticles/engine"; // Component method -onParticlesLoaded(container: Container): void { +onParticlesLoaded(container?: Container): void { + if (!container) return; // Access the container API container.pause(); container.play(); @@ -478,7 +479,7 @@ export class ParticlesComponent implements OnInit { }, }; - particlesLoaded(container: Container): void { + particlesLoaded(container?: Container): void { console.log("Loaded", container); } } @@ -562,7 +563,7 @@ export class AppComponent implements OnInit { }, }; - particlesLoaded(container: Container): void { + particlesLoaded(container?: Container): void { console.log("Particles loaded", container); } } @@ -609,17 +610,29 @@ export class AppComponent implements OnInit { ### `ngx-particles` Inputs -| Input | Type | Default | Description | -| --------- | ---------------- | --------------- | ---------------------- | -| `id` | `string` | `"tsparticles"` | Canvas element ID | -| `options` | `ISourceOptions` | `{}` | Particle configuration | -| `url` | `string` | — | Remote JSON config URL | +| Input | Type | Default | Description | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | Canvas element ID. Change triggers destroy+reload. | +| `options` | `ISourceOptions` | `{}` | Particle configuration. Change triggers destroy+reload. | +| `url` | `string` | — | Remote JSON config URL. Change triggers destroy+reload. | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | ### `ngx-particles` Outputs -| Output | Payload | Description | -| ----------------- | ----------- | ----------------------------------------- | -| `particlesLoaded` | `Container` | Emitted when the container is initialised | +| Output | Payload | Description | +| ----------------- | ------------------------ | ----------------------------------------------------------------------- | +| `particlesLoaded` | `Container \| undefined` | Emitted when the container is initialised; may be undefined on failure. | + +### Reactive behavior + +The component detects changes to `id`, `options`, `url`, and `theme` inputs via Angular's `OnChanges` lifecycle hook: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the current container. This requires the optional `@tsparticles/plugin-themes` package to be loaded. + +### Cleanup + +When the component is destroyed, the particles container is automatically destroyed — no orphan animations remain. --- diff --git a/websites/website/docs/guides/astro.md b/websites/website/docs/guides/astro.md index 7690cbdf32f..401c9ee135f 100644 --- a/websites/website/docs/guides/astro.md +++ b/websites/website/docs/guides/astro.md @@ -375,10 +375,23 @@ const options: ISourceOptions = { ## Component Props -| Prop | Type | Default | Description | -| -------------------- | ---------------- | ------------------------- | -------------------------------------------- | -| `id` | `string` | `"tsparticles"` | DOM element id for the container | -| `options` | `ISourceOptions` | `{}` | Full tsParticles configuration object | -| `url` | `string` | — | Load configuration from a remote JSON URL | -| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | CSS class for the canvas element | -| `container` | `object` | — | Pre-existing `Container` instance (advanced) | +| Prop | Type | Default | Description | +| -------------------- | ---------------- | ------------------------- | -------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | DOM element id for the container. Change triggers destroy+reload. | +| `options` | `ISourceOptions` | `{}` | Full tsParticles configuration object. Change triggers destroy+reload. | +| `url` | `string` | — | Load configuration from a remote JSON URL. Change triggers destroy+reload. | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | +| `loaded` | `string` | — | Name of a global callback function called when particles are loaded. | +| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | CSS class for the canvas element | +| `container` | `object` | — | Pre-existing `Container` instance (advanced) | + +### Reactive updates + +The component uses a `connectedCallback` / `attributeChangedCallback` pattern to react to attribute changes: + +- **`id` change** → destroys the current container and reloads particles with the new id. +- **`options` change** → destroys the current container and reloads particles with the new options. +- **`url` change** → destroys the current container and reloads particles from the new url. +- **`theme` change** → applies the theme via `loadTheme` without a full reload (requires `@tsparticles/plugin-themes`; safe no-op when the plugin is missing). + +On component teardown (`disconnectedCallback`) the container is destroyed, preventing orphan animations. diff --git a/websites/website/docs/guides/ember.md b/websites/website/docs/guides/ember.md index fc0d3376bb3..40c5c77f6b3 100644 --- a/websites/website/docs/guides/ember.md +++ b/websites/website/docs/guides/ember.md @@ -179,8 +179,8 @@ export default class ApplicationController extends Controller { }; @action - loadedCallback(container: Container) { - console.log("Particles loaded", container.id); + loadedCallback(container?: Container) { + console.log("Particles loaded", container?.id); // Programmatic control example: setTimeout(() => { @@ -343,4 +343,14 @@ export default class ApplicationController extends Controller { --- +## Reactive Behavior + +The component reloads particles when `@options` or `@url` changes. Changes to `@theme` apply the theme via `loadTheme` without a full reload — this requires the optional `@tsparticles/plugin-themes` package (safe no-op otherwise). + +## Cleanup + +When the element is removed from the DOM, the particles container is automatically destroyed, stopping all animations and freeing resources. + +--- + You now have everything needed to integrate tsParticles into an Ember.js application. Each example is self-contained and ready to be copied into your project. diff --git a/websites/website/docs/guides/inferno.md b/websites/website/docs/guides/inferno.md index 6ab2937e1ea..2b5efbeefaa 100644 --- a/websites/website/docs/guides/inferno.md +++ b/websites/website/docs/guides/inferno.md @@ -370,4 +370,15 @@ render(, document.getElementById("app")); --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + +--- + You now have everything needed to integrate tsParticles into an Inferno application. Each example is self-contained and ready to be copied into your project. diff --git a/websites/website/docs/guides/jquery.md b/websites/website/docs/guides/jquery.md index 1be880b2342..9d223356465 100644 --- a/websites/website/docs/guides/jquery.md +++ b/websites/website/docs/guides/jquery.md @@ -265,10 +265,20 @@ Below is a complete, self-contained HTML page that loads tsParticles via CDN and ## API Reference -| Method | Description | -| ---------------------------------- | -------------------------------------------------------- | -| `$.particles.init(fn)` | Initialize the engine with a loader callback | -| `$(el).particles()` | Create a particles plugin instance on the element | -| `$(el).particles().load(opts)` | Load and start the particle configuration | -| `$(el).particles().destroy()` | Destroy the particle instance and clean up | -| `$(el).particles().getContainer()` | Return the underlying `Container` for imperative control | +| Method | Description | +| ---------------------------------- | --------------------------------------------------------------- | +| `$.particles.init(fn)` | Initialize the engine with a loader callback | +| `$(el).particles()` | Create a particles plugin instance on the element | +| `$(el).particles().load(opts)` | Load and start the particle configuration | +| `$(el).particles().ajax(url)` | Load configuration from a remote JSON URL | +| `$(el).particles().setTheme(name)` | Switch the active theme (requires `@tsparticles/plugin-themes`) | +| `$(el).particles().destroy()` | Destroy the particle instance and clean up | +| `$(el).particles().getContainer()` | Return the underlying `Container` for imperative control | + +### Reactive behavior + +Calling `.load(options)` or `.ajax(url)` again on the same element replaces the previous container — the old one is destroyed automatically. Use `.setTheme(name)` to switch themes at runtime without a full reload (requires `@tsparticles/plugin-themes`). + +### Cleanup + +Call `.destroy()` to remove the particle instance and free resources. Containers are tracked per element via `WeakMap` — when the DOM element is removed, the associated container should be manually destroyed or replaced with an empty `.load({})`. diff --git a/websites/website/docs/guides/lit.md b/websites/website/docs/guides/lit.md index 7ee88894630..42eeb8da114 100644 --- a/websites/website/docs/guides/lit.md +++ b/websites/website/docs/guides/lit.md @@ -298,4 +298,12 @@ class DynamicParticles extends LitElement { } ``` -The component watches the `options` property and calls `refresh()` internally whenever it changes, seamlessly updating the particle configuration at runtime. +The component watches the `options` property and reloads the container whenever it changes, seamlessly updating the particle configuration at runtime. + +## Reactive Behavior + +The `` component reloads particles when the `options` property changes. Changes to the `theme` property apply the theme via `loadTheme` without a full reload — this requires the optional `@tsparticles/plugin-themes` package (safe no-op otherwise). + +## Cleanup + +When the element is removed from the DOM, the `disconnectedCallback` automatically destroys the container, stopping all animations. diff --git a/websites/website/docs/guides/nextjs.md b/websites/website/docs/guides/nextjs.md index 01a06709943..5df1578dc23 100644 --- a/websites/website/docs/guides/nextjs.md +++ b/websites/website/docs/guides/nextjs.md @@ -484,6 +484,16 @@ Note that the Pages Router does **not** require `"use client"` because page comp | Canvas not showing | Container has zero height | Set `fullScreen: { zIndex: -1 }` or give it explicit dimensions | | Options change not reflected | New object reference not created | Use `useMemo` with proper dependency array | | Preset not working | Preset not loaded before container init | Call `loadXPreset(engine)` inside the `init` callback | +| Theme change ignored | `@tsparticles/plugin-themes` not loaded | Install and register the plugin during engine initialization | + +## Reactive Behavior + +The `` component reacts to prop changes: + +- **`id`**, **`options`**, or **`url`** change → destroy current container and reload with new values. +- **`theme`** change → `loadTheme` on the existing container (requires `@tsparticles/plugin-themes`; safe no-op otherwise). + +On component unmount, the particles container is automatically destroyed. ## Next Steps diff --git a/websites/website/docs/guides/nuxt.md b/websites/website/docs/guides/nuxt.md index d573f8d3555..03153315c76 100644 --- a/websites/website/docs/guides/nuxt.md +++ b/websites/website/docs/guides/nuxt.md @@ -29,14 +29,19 @@ Nuxt renders components on the server by default. Since tsParticles needs the br ``` -| Event | Payload | Description | -| -------------------- | ----------- | ------------------------------------------------------------ | -| `@particles-init` | `Engine` | Fires once when the tsParticles engine initializes | -| `@particles-loaded` | `Container` | Fires every time the container finishes loading or reloading | -| `@particles-destroy` | none | Fires when the container is destroyed | +| Event | Payload | Description | +| ------------------- | ------------------------ | ------------------------------------------------------------ | +| `@particles-loaded` | `Container \| undefined` | Fires every time the container finishes loading or reloading | ## Full TypeScript Example @@ -286,12 +275,7 @@ A complete, typed component with explicit imports and lifecycle awareness: ``` -Alternatively, use the built-in [themes](https://particles.js.org/docs/interfaces/Options_Interfaces_IOptions.IOptions.html#themes) option and the `theme` property on the container for zero-config switching. +The `` component also supports a `theme` prop for zero-config switching. When the `theme` prop changes, the component applies the new theme without destroying and recreating the container: + +```vue + +``` + +> **Note:** The `theme` prop requires the optional [`@tsparticles/plugin-themes`](https://www.npmjs.com/package/@tsparticles/plugin-themes) package. Without it, the `theme` prop is a safe no-op — no error is thrown, but the theme change is ignored. --- @@ -422,14 +398,9 @@ npm install @tsparticles/configs ```vue + +> **Note:** Register the `loadLinksPreset` in your app entry point via the plugin's `init` callback (see [Basic +Usage](#basic-usage)). ``` Browse available configs in the `@tsparticles/configs` package for ready-to-use layouts. @@ -472,27 +446,16 @@ createApp(App) The engine is then available globally and all `` instances share it. -### 2. Component-Level Init - -Pass an `:init` callback to each `` instance. Useful when different components need different sets of plugins: - -```vue - -``` - -### 3. Particles Provider (Composition API) +### 2. Particles Provider (Composition API) Use the provider to access the engine programmatically: ```vue ``` @@ -600,17 +558,16 @@ const particlesLoaded = async (container: Container): Promise => { ## API Reference -| Prop | Type | Default | Description | -| --------- | ----------------------------------- | --------------- | ------------------------------ | -| `id` | `string` | `"tsparticles"` | Canvas element ID | -| `options` | `ISourceOptions` | `{}` | Particle configuration | -| `init` | `(engine: Engine) => Promise` | — | Engine initialisation callback | -| `url` | `string` | — | URL to load JSON config from | +| Prop | Type | Default | Description | +| --------- | ---------------- | --------------- | ---------------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | Canvas element ID | +| `options` | `ISourceOptions` | `{}` | Particle configuration | +| `url` | `string` | — | URL to load JSON config from | +| `theme` | `string` | — | Theme name to apply (requires `@tsparticles/plugin-themes`; safe no-op if missing) | | Event | Payload | Description | | ------------------- | ----------- | --------------------------------------------- | | `@particles-loaded` | `Container` | Fires when the container is fully initialised | -| `@particles-init` | `Engine` | Fires after the engine is initialised | --- diff --git a/websites/website/docs/guides/webcomponents.md b/websites/website/docs/guides/webcomponents.md index b07faa6d0b5..78c207a0f9e 100644 --- a/websites/website/docs/guides/webcomponents.md +++ b/websites/website/docs/guides/webcomponents.md @@ -347,6 +347,17 @@ A complete HTML page using the Web Components module with CDN scripts: ``` +## Reactive Behavior + +The `` element reacts to property changes at runtime: + +- **`options`** change → the current container is destroyed and particles are reloaded with the new configuration. +- **`theme`** attribute change → `loadTheme` is called on the existing container (requires `@tsparticles/plugin-themes`; safe no-op otherwise). + +## Cleanup + +Call `element.dispose()` to destroy the container and free resources. When the element is removed from the DOM (`disconnectedCallback`), disposal happens automatically. + ## API Reference | Export / Property | Type | Description | diff --git a/websites/website/docs/hi/demos/recipes/ribbons.md b/websites/website/docs/hi/demos/recipes/ribbons.md index bc63081a08c..afc6dd9468e 100644 --- a/websites/website/docs/hi/demos/recipes/ribbons.md +++ b/websites/website/docs/hi/demos/recipes/ribbons.md @@ -57,7 +57,7 @@ export function resume(): void { import { ribbons } from "@tsparticles/ribbons"; await ribbons({ - position: { x: 50, y: 0 }, + positionX: 50, emitterSize: { width: 0, height: 0 }, }); ``` diff --git a/websites/website/docs/hi/guide/getting-started.md b/websites/website/docs/hi/guide/getting-started.md index 1ce27e9d2d2..698a03d6fa9 100644 --- a/websites/website/docs/hi/guide/getting-started.md +++ b/websites/website/docs/hi/guide/getting-started.md @@ -2,6 +2,19 @@ tsParticles एक JavaScript/TypeScript लाइब्रेरी है जो कण एनिमेशन, कॉनफ़ेटी, आतिशबाज़ी और बहुत कुछ बनाने के लिए है। यह किसी भी आधुनिक ब्राउज़र में काम करता है और npm पैकेज और CDN दोनों के रूप में ` + +``` + ## व्यावहारिक नियम - extension name unique रखें (उदाहरण: `app-*` या company prefix)। diff --git a/websites/website/docs/hi/guide/templates-resources.md b/websites/website/docs/hi/guide/templates-resources.md index 6b5815e0735..6d9e3d43a34 100644 --- a/websites/website/docs/hi/guide/templates-resources.md +++ b/websites/website/docs/hi/guide/templates-resources.md @@ -1,35 +1,100 @@ # टेम्पलेट और संसाधन -टेम्प्लेट मुख्य मोनोरेपो में `templates` फ़ोल्डर के अंतर्गत बनाए रखे जाते हैं। +tsParticles दो श्रेणियों के टेम्पलेट प्रदान करता है: **स्कैफ़ोल्ड टेम्पलेट** (फ्रेमवर्क स्केलेटन) और **उपयोग-केस टेम्पलेट** (पूर्ण उदाहरण अनुप्रयोग)। -## आधिकारिक टेम्पलेट +## CLI के साथ त्वरित आरंभ -- टेम्प्लेट फ़ोल्डर: -- वेनिला जावास्क्रिप्ट और कई फ्रेमवर्क के लिए स्टार्टर सेटअप शामिल हैं। +किसी भी टेम्पलेट का उपयोग करने का सबसे आसान तरीका CLI के माध्यम से है: -## टेम्प्लेट का उपयोग कब करें +```bash +npm create tsparticles@latest +``` -- आप पहले से ही तैयार परियोजना संरचना के साथ एक तैयार आधार रेखा चाहते हैं। -- कस्टम रैपर लिखने से पहले आपको फ्रेमवर्क-विशिष्ट उदाहरणों की आवश्यकता है। -- आप बंडल विकल्पों (`basic`, `slim`, `full`, `all`) की शीघ्रता से तुलना करना चाहते हैं। +या सीधे किसी विशिष्ट बंडल का उपयोग करें: -## योगदान प्रवाह +```bash +npm create particles@latest +npm create confetti@latest +npm create ribbons@latest +``` -यदि आप पुन: प्रयोज्य डिज़ाइन या एकीकरण नुस्खा बनाते हैं: +गैर-इंटरैक्टिव उपयोग के लिए: -1. मुख्य मोनोरेपो को फोर्क करें। -2. स्पष्ट सेटअप और रन निर्देशों के साथ अपना टेम्पलेट जोड़ें। -3. एक पुल अनुरोध खोलें और स्क्रीनशॉट/जीआईएफ और पैकेज संस्करण शामिल करें। +```bash +npx tsparticles-create app my-project --template scaffold --framework react +npx tsparticles-create app my-project --template confetti --framework vanilla +``` -## संबंधित फ़ोल्डर +## स्कैफ़ोल्ड टेम्पलेट -- मुख्य मोनोरेपो: -- टेम्पलेट्स: -- प्रीसेट: -- पैलेट्स: +स्कैफ़ोल्ड टेम्पलेट tsParticles के साथ पूर्व-कॉन्फ़िगर एक न्यूनतम Vite + TypeScript प्रोजेक्ट स्केलेटन प्रदान करते हैं। ये निम्नलिखित फ्रेमवर्क के लिए उपलब्ध हैं: + +| Framework | CLI option | Package | +| --------- | --------------------- | -------------------------------- | +| Vanilla | `--framework vanilla` | `@tsparticles/template-scaffold` | +| React | `--framework react` | `@tsparticles/template-scaffold` | +| Vue 3 | `--framework vue3` | `@tsparticles/template-scaffold` | +| Angular | `--framework angular` | `@tsparticles/template-scaffold` | +| Svelte | `--framework svelte` | `@tsparticles/template-scaffold` | +| Solid | `--framework solid` | `@tsparticles/template-scaffold` | + +उदाहरण: + +```bash +npx tsparticles-create app my-react-app --template scaffold --framework react +cd my-react-app +npm install +npm run dev +``` + +## उपयोग-केस टेम्पलेट + +उपयोग-केस टेम्पलेट पूर्ण उदाहरण अनुप्रयोग हैं जो वास्तविक दुनिया में tsParticles के उपयोग को प्रदर्शित करते हैं। + +| Template | Description | CLI template name | Package | +| ----------- | ----------------------------------------------- | ----------------- | --------------------------------- | +| Login | Login/register page with particle background | `login` | `@tsparticles/template-login` | +| Portfolio | Personal portfolio with animated hero | `portfolio` | `@tsparticles/template-portfolio` | +| Landing | Marketing landing page with impactful particles | `landing` | `@tsparticles/template-landing` | +| Tic Tac Toe | Tic-tac-toe game with confetti celebration | `tictactoe` | `@tsparticles/template-tictactoe` | +| Confetti | Confetti cannon demo | `confetti` | `@tsparticles/template-confetti` | +| Ribbons | Ribbon animation demo | `ribbons` | `@tsparticles/template-ribbons` | +| Particles | Classic particles.js-style demo | `particles` | `@tsparticles/template-particles` | + +उदाहरण: + +```bash +npx tsparticles-create app my-portfolio --template portfolio --framework vanilla +cd my-portfolio +npm install +npm run dev +``` + +## npm create रैपर + +बंडल-विशिष्ट टेम्पलेट के लिए, आप समर्पित npm create रैपर का उपयोग कर सकते हैं: + +| Command | Template | Framework | Installed bundle | +| ------------------------------- | ----------- | ----------- | ------------------------ | +| `npm create tsparticles@latest` | Interactive | Interactive | User choice | +| `npm create particles@latest` | `particles` | Vanilla | `@tsparticles/particles` | +| `npm create confetti@latest` | `confetti` | Vanilla | `@tsparticles/confetti` | +| `npm create ribbons@latest` | `ribbons` | Vanilla | `@tsparticles/ribbons` | + +## CLI संदर्भ + +```bash +tsparticles-create app [destination] [options] + +Options: + --template Template to use (scaffold|login|portfolio|landing|tictactoe|confetti|ribbons|particles) + --framework Framework (vanilla|react|vue3|angular|svelte|solid) + --skip-install Skip npm install after scaffolding + -h, --help Display help +``` ## संबंधित पृष्ठ -- [`/guide/frameworks`](/hi/guide/frameworks) -- [`/guide/wrappers`](/hi/guide/wrappers) -- [`/demos/`](/hi/demos/) +- [`/guide/frameworks`](/guide/frameworks) +- [`/guide/wrappers`](/guide/wrappers) +- [`/demos/`](/demos/) diff --git a/websites/website/docs/hi/guides/angular.md b/websites/website/docs/hi/guides/angular.md index 89366c56812..f00b8e160f9 100644 --- a/websites/website/docs/hi/guides/angular.md +++ b/websites/website/docs/hi/guides/angular.md @@ -609,11 +609,12 @@ export class AppComponent implements OnInit { ### `ngx-particles` इनपुट -| इनपुट | प्रकार | डिफ़ॉल्ट | विवरण | -| --------- | ---------------- | --------------- | ------------------------ | -| `id` | `string` | `"tsparticles"` | कैनवास एलिमेंट आईडी | -| `options` | `ISourceOptions` | `{}` | पार्टिकल कॉन्फ़िगरेशन | -| `url` | `string` | — | दूरस्थ JSON कॉन्फ़िग URL | +| इनपुट | प्रकार | डिफ़ॉल्ट | विवरण | +| --------- | ---------------- | --------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | कैनवास एलिमेंट आईडी | +| `options` | `ISourceOptions` | `{}` | पार्टिकल कॉन्फ़िगरेशन | +| `url` | `string` | — | दूरस्थ JSON कॉन्फ़िग URL | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | ### `ngx-particles` आउटपुट @@ -623,6 +624,15 @@ export class AppComponent implements OnInit { --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## समस्या निवारण - **खाली / अदृश्य कैनवास** — सुनिश्चित करें कि पैरेंट एलिमेंट की एक निश्चित ऊँचाई हो (जैसे, `height: 100vh`)। कैनवास कंटेनर के आयाम लेता है। diff --git a/websites/website/docs/hi/guides/astro.md b/websites/website/docs/hi/guides/astro.md index 5615f3c0f8b..34cececa40f 100644 --- a/websites/website/docs/hi/guides/astro.md +++ b/websites/website/docs/hi/guides/astro.md @@ -373,12 +373,22 @@ const options: ISourceOptions = { ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## कम्पोनेंट प्रॉप्स -| प्रॉप | प्रकार | डिफ़ॉल्ट | विवरण | -| -------------------- | ---------------- | ------------------------- | ---------------------------------------- | -| `id` | `string` | `"tsparticles"` | कंटेनर के लिए DOM एलिमेंट आईडी | -| `options` | `ISourceOptions` | `{}` | पूर्ण tsParticles कॉन्फ़िगरेशन ऑब्जेकट | -| `url` | `string` | — | दूरस्थ JSON URL से कॉन्फ़िगरेशन लोड करें | -| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | कैनवास एलिमेंट के लिए CSS क्लास | -| `container` | `object` | — | पूर्व-मौजूद `Container` इंस्टेंस (उन्नत) | +| प्रॉप | प्रकार | डिफ़ॉल्ट | विवरण | +| -------------------- | ---------------- | ------------------------- | ------------------------------------------------------------------------- | +| `id` | `string` | `"tsparticles"` | कंटेनर के लिए DOM एलिमेंट आईडी | +| `options` | `ISourceOptions` | `{}` | पूर्ण tsParticles कॉन्फ़िगरेशन ऑब्जेकट | +| `url` | `string` | — | दूरस्थ JSON URL से कॉन्फ़िगरेशन लोड करें | +| `particlesClassName` | `string` | `"tsparticles-canvas-el"` | कैनवास एलिमेंट के लिए CSS क्लास | +| `container` | `object` | — | पूर्व-मौजूद `Container` इंस्टेंस (उन्नत) | +| `theme` | `string` | — | Theme name (requires `@tsparticles/plugin-themes`; safe no-op otherwise). | diff --git a/websites/website/docs/hi/guides/ember.md b/websites/website/docs/hi/guides/ember.md index 9fe9db31e6b..a0c6654a151 100644 --- a/websites/website/docs/hi/guides/ember.md +++ b/websites/website/docs/hi/guides/ember.md @@ -180,7 +180,7 @@ export default class ApplicationController extends Controller { @action loadedCallback(container: Container) { - console.log("पार्टिकल्स लोड हुए", container.id); + console.log("पार्टिकल्स लोड हुए", container?.id); // प्रोग्रामेटिक नियंत्रण उदाहरण: setTimeout(() => { @@ -251,6 +251,15 @@ export default class ApplicationController extends Controller { --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## टाइपस्क्रिप्ट उदाहरण नीचे एक पूर्ण, टाइप किया गया एम्बर एप्लिकेशन कंट्रोलर है जो स्लिम प्रीसेट, इंटरैक्टिविटी और लाइफसाइकिल प्रबंधन के साथ पूर्ण एकीकरण पैटर्न प्रदर्शित करता है। @@ -319,9 +328,9 @@ export default class ApplicationController extends Controller { } @action - private handleParticlesLoaded(container: Container): void { + private handleParticlesLoaded(container?: Container): void { this.container = container; - console.log("कंटेनर में पार्टिकल्स लोड हुए:", container.id); + console.log("कंटेनर में पार्टिकल्स लोड हुए:", container?.id); } } ``` diff --git a/websites/website/docs/hi/guides/inferno.md b/websites/website/docs/hi/guides/inferno.md index 88c46413747..bd292adfd94 100644 --- a/websites/website/docs/hi/guides/inferno.md +++ b/websites/website/docs/hi/guides/inferno.md @@ -298,6 +298,15 @@ render(, document.getElementById("app")); --- +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## टाइपस्क्रिप्ट उदाहरण यहाँ एक पूर्ण, टाइप किया गया इन्फेर्नो एप्लिकेशन है जिसमें एक उत्तरदायी पार्टिकल कॉन्फ़िगरेशन और पूर्ण-स्क्रीन पृष्ठभूमि है। diff --git a/websites/website/docs/hi/guides/jquery.md b/websites/website/docs/hi/guides/jquery.md index 0c76258be8d..e74846a705d 100644 --- a/websites/website/docs/hi/guides/jquery.md +++ b/websites/website/docs/hi/guides/jquery.md @@ -263,6 +263,15 @@ setTimeout(() => { ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## API संदर्भ | विधि | विवरण | diff --git a/websites/website/docs/hi/guides/lit.md b/websites/website/docs/hi/guides/lit.md index 9b2449a3f38..690a4d5b46d 100644 --- a/websites/website/docs/hi/guides/lit.md +++ b/websites/website/docs/hi/guides/lit.md @@ -258,6 +258,15 @@ class ParticlesBackground extends LitElement { } ``` +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## डायनामिक अपडेट क्योंकि `` लिट की रिएक्टिव प्रॉपर्टीज़ का उपयोग करता है, `options` प्रॉपर्टी बदलने से पार्टिकल्स स्वचालित रूप से अपडेट हो जाते हैं: diff --git a/websites/website/docs/hi/guides/nextjs.md b/websites/website/docs/hi/guides/nextjs.md index 56b0473bf04..80f62fbc30d 100644 --- a/websites/website/docs/hi/guides/nextjs.md +++ b/websites/website/docs/hi/guides/nextjs.md @@ -476,6 +476,15 @@ export default function ParticlesComponent() { ध्यान दें कि Pages Router को `"use client"` की **आवश्यकता नहीं** है क्योंकि पेज कम्पोनेंट डिफ़ॉल्ट रूप से पहले से ही क्लाइंट-रेंडर होते हैं। +## Reactive Behavior + +The `` component reacts to prop changes at runtime: + +- **`id`**, **`options`**, or **`url`** change → the existing container is destroyed and particles are reloaded with the new values. +- **`theme`** change → `loadTheme` is called on the existing container. This requires the optional `@tsparticles/plugin-themes` package to be loaded (otherwise it is a safe no-op). + +On component unmount, the particles container is automatically destroyed — no orphan animations remain. + ## समस्या निवारण | लक्षण | कारण | समाधान | diff --git a/websites/website/docs/hi/guides/nuxt.md b/websites/website/docs/hi/guides/nuxt.md index a291d7c5a13..953b26654cd 100644 --- a/websites/website/docs/hi/guides/nuxt.md +++ b/websites/website/docs/hi/guides/nuxt.md @@ -236,13 +236,7 @@ const options: ISourceOptions = { ```vue @@ -258,25 +252,15 @@ const options = { }, }; -const onInit = (engine: Engine) => { - console.log("इंजन आरंभ हुआ", engine); -}; - -const onLoaded = (container: Container) => { - console.log("कंटेनर लोड हुआ", container.id); -}; - -const onDestroy = () => { - console.log("कंटेनर नष्ट हुआ"); +const onLoaded = (container?: Container) => { + console.log("कंटेनर लोड हुआ", container?.id); }; ``` -| इवेंट | पेलोड | विवरण | -| -------------------- | ----------- | ------------------------------------------------------------- | -| `@particles-init` | `Engine` | एक बार फायर होता है जब tsParticles इंजन आरंभ होता है | -| `@particles-loaded` | `Container` | हर बार फायर होता है जब कंटेनर लोडिंग या रीलोडिंग पूरी करता है | -| `@particles-destroy` | कोई नहीं | फायर होता है जब कंटेनर नष्ट होता है | +| इवेंट | पेलोड | विवरण | +| ------------------- | ------------------------ | ------------------------------------------------------------- | +| `@particles-loaded` | `Container \| undefined` | हर बार फायर होता है जब कंटेनर लोडिंग या रीलोडिंग पूरी करता है | ## पूर्ण टाइपस्क्रिप्ट उदाहरण @@ -286,12 +270,7 @@ const onDestroy = () => {